Python外循环跳过其他每个元素

问题描述:

我正在尝试编写确定性Miller-Rabin测试的基本实现,但我的有限Python背景正在逐渐成型。看起来,在下面粘贴的程序部分中,outer for循环在内部while循环完成之后跳过所有其他元素。有关为什么会出现这种情况的任何想法?Python外循环跳过其他每个元素

for integer in integers: 
    print("The current integer is " + str(integer)) 
    i = 0 
    while i < len(powers): 
     print(str(integer) + "^" + str(powers[i]) + " + 1 mod N =") 
     print((pow(integer,powers[i],N) + 1)%N)  
     if (pow(integer,powers[i],N) + 1)%N == 0: 
      integers.remove(integer) 
      i += 1 
      break 
     else: 
      i += 1 
+0

你忘了后添加一个缩进循环,或当你在这里贴上它没有它得到了删除吗? –

+0

@AquaticallyChallengedFish:对不起,粘贴后失去了缩进。固定。 –

+0

您的代码片段不完整。 “整数”,“权力”等的价值是什么?请参见[如何创建最小,完整和可验证示例](http://*.com/help/mcve)。 –

ifelse声明

i += 1所以

for integer in integers: 
    print("The current integer is " + str(integer)) 
    i = 0 
    while i < len(powers): 
     print(str(integer) + "^" + str(powers[i]) + " + 1 mod N =") 
     print((pow(integer,powers[i],N) + 1)%N)  
     if (pow(integer,powers[i],N) + 1)%N == 0: 
      integers.remove(integer) 

      break 
     i += 1 
+2

这在句法上与OP的代码相同。 – Aaron