I'm using Python 3.7 and my editor is PyCharm. When I call prod
method from math
module, it gives the error:
AttributeError: module 'math' has no attribute 'prod'
How can I fix it? (It works for other methods like floor
, sqrt
and etc. The only problem is prod
.)
Here's my piece of code:
import math
numbers = [1, 2, 3, 4]
print(math.prod(numbers))
In general, my question is why this problem happens and how can I handle similar situations?
math.prod
is a new function (from Python 3.8).
If you want to have a more compatible code, you should use the old way:
from functools import reduce
import operator
reduce(operator.mul, [1,2,3,4], 1)
Also module itertools
is often useful (if you look at the documentation, you have many examples on how to implement mathematical operations).
To answer your general question: how to handle such cases:
Python documentation is very good. You should refer much more on it, e.g. if you have errors, but also to check which parameters you need, and the return value. Human memory is limited, so we relay a lot to the documentation, especially checking the special cases (what about if the list is empty?). So I (and many people) have this URL https://docs.python.org/3/library/index.html saved on bookmarks. Note: Just do not trust fully documentation, do also few tests (especially if the function description is long, and there are many special cases: your special case could be handled by a different "special case" switch.