我有一个简短的函数,可以计算所有质数的和,直到一个极限。以下是上下文的完整代码:
def primes_sum(limit):
limitn = limit+1
not_prime = [False] * limitn
primes = []
for i in range(2, limitn):
if not_prime[i]:
continue
for f in xrange(i*2, limitn, i):
not_prime[f] = True
primes.append(i)
return sum(primes)
这对我来说很有意义,但我不明白这一部分:
^{pr2}$这到底是为了什么?它是如何工作的?它如何判断一个数是否是素数?我试着查了一下,但找不到答案。
提前谢谢。
[False]*n
用n个元素初始化列表,这些元素都是False。这种初始化方式通常被用作一种优化方法,当你预先知道列表中包含多少元素时,它比用.append()添加元素要快得多。在它初始化
limitn
False
值的列表。e、 g.:基本上它会阻止你以后得到一个
IndexError
。在您只需创建一个长度为
limitn
的list
,其所有元素都初始化为False
。在*
是一个重复运算符。当应用于以integer
值n
作为right
操作数的List
时,它会重复list
n
次。在也可以在字符串上使用它:
相关问题 更多 >
编程相关推荐