首页 > 解决方案 > 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)

给我错误。

标签: pythonmathvisual-studio-code

解决方案


好吧,让我们看一下文档,math.lcm看看为什么它有时存在,有时不存在!

它说什么?3.9 版中的新功能。

看起来您的代码在使用 python 3.9 运行时有效,而在使用 python 3.8 或更早版本运行时不起作用。

快速修复,python 3.5 到 3.8

另一方面,math.gcd从 3.5 版开始存在。如果你需要lcmpython 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 版本比这更旧怎么办?mathgcdmath

在旧版本中,gcd不在 中math,但在fractions. 所以这应该工作:

import fractions

def lcm(a,b):
  return (a * b) // fractions.gcd(a,b)

我使用的是哪个 python 版本?

请让我将您推荐给提出该确切问题的好心用户:


推荐阅读