python - math.lcm() 给出错误“模块'math'没有'lcm'成员”
问题描述
我正在制作这段代码
import math
number1 = input("Enter a number: ")
number2 = input("Enter a number: ")
result = math.lcm(int(number1), int(number2))
print(result)
当我得到标题中的错误时。这可以在 shell 中工作,甚至代码也很简单
import math
math.lcm(10, 20)
给我错误。
解决方案
好吧,让我们看一下文档,math.lcm
看看为什么它有时存在,有时不存在!
它说什么?3.9 版中的新功能。
看起来您的代码在使用 python 3.9 运行时有效,而在使用 python 3.8 或更早版本运行时不起作用。
快速修复,python 3.5 到 3.8
另一方面,math.gcd
从 3.5 版开始存在。如果你需要lcm
python 3.5、3.6、3.7 或 3.8 中的函数,你可以这样写:
import math
def lcm(a,b):
return (a * b) // math.gcd(a,b)
快速修复,python < 3.5
从 3.9 开始lcm
也是如此,从 3.5 开始也是如此。如果您的 python 版本比这更旧怎么办?math
gcd
math
在旧版本中,gcd
不在 中math
,但在fractions
. 所以这应该工作:
import fractions
def lcm(a,b):
return (a * b) // fractions.gcd(a,b)
我使用的是哪个 python 版本?
请让我将您推荐给提出该确切问题的好心用户:
- StackOverflow:如何检查运行我的脚本的 Python 版本?
- 在 Visual Studio Code 中使用 python 3.9 解释器[感谢用户:Jill Cheng 提供此链接]