4 回答
TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個贊
閱讀這兩行:
if inputNumber >= 1 and inputNumber <= 20: while inputNumber:
循環(huán)體while不會改變inputNumber。如果它在 1..10 或 12..20 范圍內(nèi),則您的循環(huán)等于while True:并且它將永遠(yuǎn)運(yùn)行。您可能希望在if循環(huán)內(nèi)部進(jìn)行測試,并且您肯定希望在您返回評估循環(huán)條件時更改值,例如通過input設(shè)置新值。
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個贊
嘗試這個
def guesst(secretNumber):
numberOfGuesses = 0
while True:
inputNumber = int(input('I\'m thinking of a number between 1 and 20, try to guess which one: '))
if inputNumber > secretNumber:
numberOfGuesses += 1
print('Your guess is too high.')
elif inputNumber < secretNumber:
numberOfGuesses += 1
print('Your guess is too low.')
elif inputNumber == secretNumber:
print('Your guess is correct, congratulations! You\'ve my number in ', numberOfGuesses, 'guesses.')
break
else:
print('Please enter a number between 1 and 20')
# Defining the variables used by the function
snum = 11
guesst(snum)
當(dāng) while 循環(huán)重復(fù)時,您需要再次收集用戶的輸入,因此您的輸入語句應(yīng)該在 while 循環(huán)中,而不是在函數(shù)之外。
您的 if 語句也應(yīng)該在 while 循環(huán)內(nèi)。
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個贊
變量 inputNumber 不會在 while 循環(huán)中更新。
嘗試添加:
inputNumber = int(input("please try again"))或者大意是允許用戶在下一次迭代之前更新他們的猜測。
添加回答
舉報(bào)
