Python 中 用while else输出100以内的质数这么写有什么问题吗?

pn = []
for i in range(100):
while i <= 1:
continue
else:
for j in range(2,i):
if i % j == 0:
break
else:
pn.append(i)
print(pn)
这么写有问题吗。

应该还有一个i+=1

  1. while i <= 1:
     continue
    
    这句话会一直在while循环,此处用个if判断一下就行了,即

if i<=1:
    continue

第一,你用while会陷入死循环,根本出不来,改成if的话也不行,会加入很多非质数和重复质数在里面,可以这么写:

pn = []
for i in range(2,100):
    count = 0
    for j in range(2,i):
        if i % j == 0:
            break
        else:
            count += 1
    if count > i-3:
        pn.append(i)
print(pn)