所以我寫一個簡單的遊戲,在這些線路存在:的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