5

我今天才开始玩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()功能不起作用。此外,当我在 shell 中输入内容时,它只有在我使用而不是.math.sqrt()import mathmath.sqrt()sqrt()

所以......对于简单的事情来说冗长的问题:#include <math.h>对于shell和程序文件,我可以使用某种 -esque 行(尽管每个行可能不同),这样我就可以避免math.每次都输入 ' ' 部分是时候我想使用数学模块中的函数了?(它是一个模块,对吗?)(因为我发誓我在某处读过程序,sqrt()而不是math.sqrt(). 但也许不是。)

4

2 回答 2

4

好吧,你可以像这样直接导入一个函数:

from math import sqrt
# elsewhere
sqrt(n)

您甚至可以从模块中导入所有内容:

from math import *

这样,您就不必使用模块前缀并说math.sqrt. 但是,建议您这样做,以避免在两个模块定义具有相同名称的函数时可能发生的名称冲突(在实践中经常发生这种情况)。简而言之,这是首选方式:

import math
# elsewhere
math.sqrt(n)
于 2013-08-22T16:03:10.347 回答
1

尝试:

from math import sqrt

或者,如果您想要math模块中的所有名称:

from math import *

现在使用这两种方法中的任何一种都可以让你只做sqrt(n)而不是math.sqrt(n).

但是请注意,第二种方法将导入math模块中的每个名称。通常最好只导入您需要的内容(如第一个示例中)。

于 2013-08-22T16:04:31.023 回答