我正在尝试编写一个程序,在3到9的范围内选择素数.这是我的代码:
primes_list = []
number = 3
while number > 2 and number < 10:
for n in range(2, number):
if number % n == 0:
break
number += 1
else:
primes_list.append(number)
print primes_list
Run Code Online (Sandbox Code Playgroud)
这似乎是一个无限循环,但这只是猜测,因为输出永远不会出现.如果是无限循环,为什么?
此外,我想知道是否有某种列表理解只能挑选素数?也许列表理解是更有效的方法?只有我还没弄清楚如何过滤素数.
任何帮助或评论都非常感谢.
while number > 2 and number < 10:
for n in range(2, number):
if number % n == 0:
break
else:
primes_list.append(number)
number += 1
>>> primes_list
[3, 5, 7]
>>>
Run Code Online (Sandbox Code Playgroud)
这可能是你想到的.
请注意,第一个循环内的数字+ = 1是错误的