如何在循环时退出此操作?

Abh*_* Cn 5 python loops while-loop

我在退出以下循环时遇到问题.这是一个简单的程序,hello如果随机值大于5则打印.程序运行良好一次但是当我尝试再次运行它时会进入无限循环.

    from random import *

    seed()
    a = randint(0,10)
    b = randint(0,10)
    c = randint(0,10)
    count = 0

    while True:
        if a > 5 :
           print ("aHello")
           count = count + 1
        else : 
           a = randint(0,10)
        if b > 5 : 
           print ("bHello")
           count = count + 1
        else :
           b = randint(0,10)
       if c > 5 :
           print ("cHello")
           count = count + 1
       else :
           c = randint(0,10)

      if count == 20 :
           count = 0
           break

  count = 0
Run Code Online (Sandbox Code Playgroud)

小智 8

您的while循环可能会将变量计数增加0,1,2或3.这可能会导致计数从低于20的值变为超过20的值.

例如,如果count的值为18,则会发生以下情况:

a > 5, count += 1
b > 5, count += 1
c > 5, count += 1
Run Code Online (Sandbox Code Playgroud)

在这些操作之后,count的值将是18 + 3 = 21,而不是20.因此,将永远不会满足条件值== 20.

要修复错误,您可以替换该行

if count == 20
Run Code Online (Sandbox Code Playgroud)

if count >= 20
Run Code Online (Sandbox Code Playgroud)

或者只是在while循环中更改程序逻辑.


Dan*_*Sin 1

下面的代码有帮助吗?

while True:
    if a > 5 :
       print ("aHello")
       count = count + 1
       if count == 20 :
            break
    else : 
       a = randint(0,10)
    if b > 5 : 
       print ("bHello")
       count = count + 1
       if count == 20 :
            break
    else :
       b = randint(0,10)
   if c > 5 :
       print ("cHello")
       count = count + 1
       if count == 20 :
            break
  else :
       c = randint(0,10)
Run Code Online (Sandbox Code Playgroud)

每次递增计数后,您都必须检查它的值。