3 回答

TA貢獻1786條經驗 獲得超11個贊
這是一個更加Pythonic(Python 3)的版本。
def guessing_game(random_num):
tries = 3
print("Guess a number between 1 - 10, you have 3 tries, or type 'stop' to quit")
while True:
guess = input("Your number: ")
try:
guess = int(guess)
except (TypeError, ValueError):
if guess.lower() == 'stop' :
return
else:
print("Invalid value '%s'" % guess)
continue
if guess == random_num:
print('Correct')
return
elif guess < random_num:
print('Too low')
else:
print('Too high')
tries -= 1
if tries == 0:
print('You have no more tries')
return
print('You have %s guesses left' % tries)

TA貢獻1909條經驗 獲得超7個贊
您正在嘗試將字符串“ stop”轉換為整數。該字符串沒有有效的整數表示形式,因此會出現該錯誤。你應該放
if str(guess) == 'stop' or str(guess) == 'Stop':
break
作為第一張支票
另一個建議是在輸入上使用小寫字母,然后檢查小寫字母“ stop”。這樣,您只需要檢查一次,它將捕獲“停止”,“停止”,“斷點”等。
if str(guess).lower() == 'stop':
break
添加回答
舉報