4 回答

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
閱讀這兩行:
if inputNumber >= 1 and inputNumber <= 20: while inputNumber:
循環(huán)體while
不會(huì)改變inputNumber
。如果它在 1..10 或 12..20 范圍內(nèi),則您的循環(huán)等于while True:
并且它將永遠(yuǎn)運(yùn)行。您可能希望在if
循環(huán)內(nèi)部進(jìn)行測(cè)試,并且您肯定希望在您返回評(píng)估循環(huán)條件時(shí)更改值,例如通過(guò)input
設(shè)置新值。

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
嘗試這個(gè)
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ù)時(shí),您需要再次收集用戶的輸入,因此您的輸入語(yǔ)句應(yīng)該在 while 循環(huán)中,而不是在函數(shù)之外。
您的 if 語(yǔ)句也應(yīng)該在 while 循環(huán)內(nèi)。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
變量 inputNumber 不會(huì)在 while 循環(huán)中更新。
嘗試添加:
inputNumber = int(input("please try again"))
或者大意是允許用戶在下一次迭代之前更新他們的猜測(cè)。
添加回答
舉報(bào)