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循环中更改程序逻辑.
下面的代码有帮助吗?
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)
每次递增计数后,您都必须检查它的值。