我正在制作一个简单的计算器:
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开始就存在。如果您在python 3.5、3.6、3.7或3.8中需要一个lcm
函数,您可以这样写:
import math
def lcm(a,b):
return (a * b) // math.gcd(a,b)
快速修复,python<3.5
因此lcm
自3.9起在math
中,gcd
自3.5起在math
中。如果你的python版本比这个版本还要旧呢?
在旧版本中,gcd
不在math
中,但在fractions
中。所以这应该有效:
import fractions
def lcm(a,b):
return (a * b) // fractions.gcd(a,b)
我使用的是哪一个python版本
请让我把你介绍给提出确切问题的好心用户:
- StackOverflow:如何检查运行脚本的Python版本
- 在Visual Studio代码中使用python 3.9解释器[感谢用户Jill Cheng提供此链接]
lcm((可以有两个以上的参数,如Python 3.9+中的
from math import gcd
#def lcm(a,b):
# return (a * b) // gcd(a, b)
def lcm(*integers):
a = integers[0]
for b in integers[1:]:
a = (a * b) // gcd (a, b)
return a