Python 为什么嵌套while循环不工作

Python 为什么嵌套while循环不工作,python,nested,while-loop,Python,Nested,While Loop,用python编写一个程序,打印出前1000个素数(2除外)。我能得到的输出是数字3。不知道我的循环何时何地结束。编程方面非常新。有人能帮忙吗 primeCounter = 1 candidate = 3 while primeCounter < 1000: isPrime = True counter = 2 while counter < candidate: if candidate%counter == 0:

用python编写一个程序,打印出前1000个素数(2除外)。我能得到的输出是数字3。不知道我的循环何时何地结束。编程方面非常新。有人能帮忙吗

primeCounter = 1
candidate = 3

while primeCounter < 1000:
    isPrime = True
    counter = 2
    while counter < candidate:
        if candidate%counter == 0:
            isPrime = False
        else:
            counter = counter + 1

    if isPrime == True:
        print candidate
        primeCounter = primeCounter + 1

     candidate = candidate + 1
primeCounter=1
候选人=3
当primeCounter<1000时:
isPrime=True
计数器=2
而反对者:
如果候选%counter==0:
isPrime=False
其他:
计数器=计数器+1
如果isPrime==True:
印刷候选人
primeCounter=primeCounter+1
候选人=候选人+1
primeCounter=1
候选人=3
当primeCounter<1000时:
isPrime=True
计数器=2
而反对者:
如果候选%counter==0:
isPrime=False
中断#
primeCounter=1
候选人=3
当primeCounter<1000时:
isPrime=True
计数器=2
而反对者:
如果候选%counter==0:
isPrime=False

打破#一旦你将
isPrime
设置为
False
,你就再也不会增加
计数器了,所以你就再也不会在
循环时离开内部

一旦你将
isPrime
设置为
False
,你就再也不会增加
计数器了,所以你永远都无法摆脱内部的
,而
循环。

你的问题在块中

while counter < candidate:
    if candidate%counter == 0:
        isPrime = False
而计数器<候选者:
如果候选%counter==0:
isPrime=False
如果不是候选%计数器,则得到无限循环。

块中的问题

while counter < candidate:
    if candidate%counter == 0:
        isPrime = False
而计数器<候选者:
如果候选%counter==0:
isPrime=False

如果不是候选%计数器,则得到无限循环。

您是否尝试过调试它?也许是让它输出测试条件等的变量值?你试过调试它吗?也许通过让它输出测试条件等的变量值?