所以我写一个简单的游戏,在这些线路存在:的Python冻结在While循环
import random
def Start():
print "STEP1.1" #Print statements for debugging
door1 = random.randint(1,3)
door2 = random.randint(1,3)
door3 = random.randint(1,3)
print "STEP1.2"
while door1 == door2:
door2 == random.randint(1,3)
print "STEP1.3"
while door1 == door3 or door2 == door3:
door3 = random.randint(1,3)
print 'STEP1.4'
此代码是为了1号和3之间给door1
,door2
,并且door3
随机唯一值停止对步1.3工作,因为它打印直到步骤1.2,然后用闪烁的光标(不打印STEP1.3
)这个失败冻结,但
x = 0
while x < 100:
print "HI, IM ",x
x = x + 1
打印的一切,直到HI I'M 99
然后停止,有在它前面工作。
我正在使用Python 2.7。有时代码会起作用,并为每个门提供随机唯一的值,但它通常也会崩溃。
在第一while循环使用的是'门2 == random.randint(1,3)'。它会生成一个随机数并检查相等性,但它不会设置'door2'的值。这就是无限循环的原因 – kuro
@kuro为什么它没有设置door2的值?有一个等号,它是一个while循环,所以当door2与door1不同时,循环会中断? – techgenius101
@ techgenius101编号'=='表示测试两个值是否相等。为了给门2赋值,你应该使用'door2 = random.randint(1,3)'(简单的'=') – Dunatotatos