3 回答

TA貢獻1946條經驗 獲得超4個贊
使用for循環及其else子句。else只有當您沒有跳出循環時,循環的子句才會運行。
首先讓您的函數返回一個值來指示用戶是否猜對了。否則將很難與之交互:
def check_guess():
letter = "d"
guess = input("What is your guess: ")
if not guess.isalpha():
print("This is invalid")
return False
guess = guess.lower()
if guess == letter:
print("that is correct")
return True
if guess > letter:
print("This too high")
else:
print("this is too low")
return False
現在您可以準確地調用該函數 3 次,或者直到用戶猜對為止,以先到者為準:
for _ in range(3):
if check_guess():
break
else:
print('you failed')
當check_guess返回True表示成功時,我們break跳出循環,確保else子句不被觸發。如果三個迭代完成并且用戶從未做出正確的猜測,則觸發該子句。

TA貢獻1873條經驗 獲得超9個贊
def check_guess():
letter = "d"
guess = input("What is your guess: ")
if guess.isalpha() == False:
print("This is invalid")
return False
elif guess.lower() > letter:
print("This too high")
return False
elif guess.lower() < letter:
print("this is too low")
return False
else:
print("that is correct")
return True
for i in range(0,3):
status = check_guess()
If status:
print(“success”)
break
else:
print(“fail”)

TA貢獻1719條經驗 獲得超6個贊
如果用戶是對的,您需要返回,如果不是,則增加一個計數器。這樣的事情應該工作:
count = 0
while count < 3:
if check_guess():
# he's right
break
else:
# he's wrong
count += 1
if count >= 3:
print("You lose !")
else:
print("You win !")
添加回答
舉報