Not seeing your question? It may still have been asked before – try () in the top-right of this page. Still can’t find it? Ask it below by hitting the reply button below this post ().
Other FAQs
The following are links to additional questions that our community has asked about this exercise:
This list will contain other frequently asked questions that aren’t quite as popular as the ones above.
Currently there have not been enough questions asked and answered about this exercise to populate this FAQ section.
This FAQ is built and maintained by you, the Codecademy community – help yourself and other learners like you by contributing!
When adding, we would set it to zero so as not to affect the total. When multiplying we set it to unity (1), also so as not to affect the product. If it was set to zero, the outcome would always be zero.
1 * a * b * c => a * b * c
This topic got me to thinking about arithmetic identities and lead me to compose a post on the additive identity, alluded to above, and which brings us to the multiplicative identity, which is as shown, 1. Any number when multiplied by this will yield a product that is the same number.
A finite sequence of multiplied numbers starting with, 1 and not containing any zeroes will be unchanged if that number is removed from the sequence.
1 * 2 * 3 * 4 * 5 == 2 * 3 * 4 * 5
Just as the additive inverse of a number yields zero, the multiplicative inverse of a number yields unity. So it is the reciprocal, 1 / n * n == 1, of that number.
Zero and unity are the basis of number properties so expect to see them a lot moving forward.
i know my code is inefficient after looking at the correct answer, but looking for clarity on why having the ‘result = 1’ line before the while loop gives me a correct answer, while having it after the while loop gives me an incorrect answer?
Correct:
def product(inte):
inte_count = len(inte)-1
result = 1
while inte_count>=0:
result *= inte[inte_count]
inte_count -= 1
return result
print product([1,2,3])
incorrect:
def product(inte):
inte_count = len(inte)-1
while inte_count>=0:
result = 1
result *= inte[inte_count]
inte_count -= 1
return result
print product([1,2,3])
Thanks for sharing your code! In the future, remember to preformat your code with the </>
Correct example:
def product(inte):
inte_count = len(inte)-1
result = 1
#result = 1
while inte_count>=0:
# result keeps multiplying by inte[inte_count]
result *= inte[inte_count]
inte_count -= 1
return result
print product([1,2,3])
Incorrect example:
def product(inte):
inte_count = len(inte)-1
while inte_count>=0:
result = 1
# result = 1 every time it loops over
# result (which is = 1) multiplies by inte[inte_count]... in other words,
# it's like result = inte[inte_count] because multiplying by 1 is the same
result *= inte[inte_count]
inte_count -= 1
return result
print product([1,2,3])