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开始就存在。如果您在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

最新更新