# Something of Value

#1

I need help because I can’t figure out how to print the total thank you for the help.
Heres the code:

``````prices = {
"banana" : 4,
"apple"  : 2,
"orange" : 1.5,
"pear"   : 3,
}
stock = {
"banana" : 6,
"apple"  : 0,
"orange" : 32,
"pear"   : 15,
}

for key in prices:
print key
print "price: %s" % prices[key]
print "stock: %s" % stock[key]

"total" == 0
for key in prices:
print prices[key] * stock[key]
print total
``````

#2

well, first you want to create a variable total and set it 0:

``````total = 0
``````

``````total += prices[key] * stock[key]
``````

then, after the for loop is finished, you want to print the total. If you need further help, post an updated version of your code

#3
``````for key in prices:
total = prices[key] * stock[key]
print("{0} * {1} = {2}".format( prices[key], stock[key], total) )
print "total: "+str(total)
``````

#4

Thank you for the help. I used this, and it worked:

``````total = 0
for value in prices:
print prices[value] * stock[value]
total += prices[value] * stock[value]
``````

Question though: where you used [key] and I used [value], both technically components of a Python dictionary, right? In the loop, Python does not differentiate between calling a key vs a value, correct? It in this case multiplied the values together because they are integers (prices and stock amounts) that can be multiplied, and you can’t multiply strings (the actual keys). Is that correct?

#5

No, it not correct. You can use any word (key, value or even something else, like cost. The trick is here:

``````for value in prices:
``````

value now holds the key (banana, apple, orange and so on), so you can do:

``````for value in prices:
print value
``````

which will print the keys, if you use the bracket notation:

``````for value in prices:
print prices[value]
``````

you use the key (called value, confusing) to access the associated value (so prices[‘banana’] is 4. Does that make sense?

#6

Yep, perfect, thanks!

#7
`````` stock = {
"banana": 6,
"apple": 0,
"orange": 32,
"pear": 15
}
prices = {
"banana": 4,
"apple": 2,
"orange": 1.5,
"pear": 3
}
``````

Each dictionary ( also called object )
has one or more key-value-pair’s ( also called properties)
which are separated from each-other by a comma-,

The prices dictionary / object
has 4 properties
a banana property with property-key banana and its associated number Value 4
an apple property with property-key apple and its associated number Value 2
an orange property with property-key orange and its associated number Value 1.5
a pear property with property-key pear and its associated number Value 3

##### for - in - loop - e x p l a i n e d

With the for-in-loop you have a Method
which will iterate over all properties of a given object.
At each iteration it will assign the property-key as a string
to a variable name of your choice.
Thus for x in prices:
iteration-1 var x = “banana”;
iteration-2 var x = “apple”;
iteration-3 var x = “orange”;
iteration-4 var x = “pear”;
As they want you to display the the associated VALUE of the propery-key you would use
print prices[x]

If they wanted you to _Display the property-key and NOT it’s associated VALUE
you would use
print x

As the stock dictionary / object uses the same property-key’s
you can also use
print stock[x]

#8

Hi, sorry for the late reply it worked perfectly thanks