2017-11-03 37 views
1

如果在for循环中,我有一个变量,它不会改变30次,我会停止循环。如何在变量不再在python中更改时退出for循环?

for i in range(100): 
    if b > a: 
     c= 0 
    if b < a: 
     c = 1 

如果c连续停留30次以上超过30次,我会停止它。 如何编写这部分代码?

我使用列表来记录他们想,如果总和(在C我为我[-30:])为0

有没有表达这种任何其他体面的方式? 谢谢〜

+0

内声明保留的计数,如果突破'计数> 30'? –

回答

1

这样的事情?

misses=0 
THRESHOLD = 30 
for i in range(100): 
    if b > a: 
     misses += 1 
     if misses >= THRESHOLD: 
      break 
     c= 0 
    if b < a: 
     misses = 0 
     c = 1 
+0

如何在需要全部0次停留时停止。我的意思是c总是相同的,并且c的值是0超过30次。 –

+0

对于每一个连续的'c = 0','missses'都会从0增加到'THRESHOLD'(注意真正重要的是'b> a')。一旦失误达到30,你就会跳出循环。 – GPhilo

+0

另外,请注意,如果'b a'的连续出现次数。 – GPhilo

1

简单的事情将是,把另一如果循环

j = 0 
for i in range(100): 
    if b > a: 
    c= 0 
    j+=1 
    if b < a: 
    c = 1 
    j = 0 
    if j>=30: 
    break 
+0

ops,我删除了我的评论对不起 - 我不认为你会回复,这是“'j ++'是无效的语法”只是为了未来。 –

+0

如何显示它是连续的0,就像它可能是0,0,0,1,0,如果我询问什么时候超过了4,我需要它停止,当它不再改变时,它是1,0,1, 0,0,0,0。喜欢这个。 –

+0

@XoyoyuHan这就是为什么'c = 1'后面有'j = 0'的原因。这将使连续计数器'j'在从该值变为0之后。 – theBrainyGeek