我今天刚开始玩python;我完全不知道自己在做什么。下面是我编写的一个用于显示素数的小程序,它似乎运行良好而且非常快:
import math
N = input('List primes up to: ')
N = int(N)
for i in range(3,N,2):
for d in range(2,int(math.sqrt(i))):
if i%d==0:
break
else :
print(str(i))
sqrt()
功能不起作用,除非我同时保留math.sqrt()
部分和import math
部分。此外,当我在shell中输入内容时,只有在我使用math.sqrt()
而不是sqrt()
时才有效。
所以......对于简单的事情来说,这是一个长篇大论的问题:我可以使用某种#include <math.h>
- esque行,对于shell和程序文件(尽管每行可能有不同的行)所以我可以每次我想使用数学模块中的函数时,请避免输入“math.
”部分? (这是一个模块,对吗?)(因为我发誓我已经阅读过某个地方使用sqrt()
代替math.sqrt()
的程序。但也许不是。)
答案 0 :(得分:4)
好吧,你可以像这样直接导入一个函数:
from math import sqrt
# elsewhere
sqrt(n)
您甚至可以从模块中导入所有内容:
from math import *
这样您就不必使用模块前缀并说出math.sqrt
。但是,建议您这样做,以避免可能的名称冲突,以防两个模块定义具有相同名称的函数(在实践中经常发生的事情)。简而言之,这是首选方式:
import math
# elsewhere
math.sqrt(n)
答案 1 :(得分:1)
尝试:
from math import sqrt
或者,如果您想要math
模块中的所有名称:
from math import *
使用这两种方法中的任何一种,现在只允许sqrt(n)
代替math.sqrt(n)
。
但请注意,第二种方法将导入math
模块中的每个名称。通常最好只导入您需要的内容(如第一个示例中所示)。