我被困在我的家庭作業上了。
我在Python中做了一個猜謎游戲,除了一件事,一切都像它應該做的那樣。
def main(random_pick, guesses)。
for i in range(guesses)。
try:
guess = int(input(f"{BLUE}[ ? ]{WHITE} 猜測數字 : "))
if guess > random_pick:
print(f"{RED}[ !] {WHITE}你的猜測很高!")
elif guess < random_pick:
print(f"{RED}[ !] {WHITE}你的猜測是低的")
else:
print(f"{GREEN}[ $ ]{WHITE} You guessed it! 恭喜你")
break。
except ValueError。
print(f"{RED}[ !] {WHITE}錯誤的值,再試!")
print(f"{YELLOW}[ ! ]{WHITE} 下次運氣好點,號碼是{random_pick}")
最后一個列印讓用戶知道他或她已經沒有猜測了,并顯示了亂數字。問題是當用戶猜對數字時,這個列印也會被執行。
輸出。
輸出。
[ ? ] 輸入一個整數 從 1到100 : 1
[ ? ] 輸入另一個整數 從 1到100 : 2
[?] 你想猜多少次?3 : 3 ?
答案 = 2 [ ?
[ ? ] 猜數字:2
[ $ ] 你猜對了! 祝賀你
[ ! ] 祝您好運 下一次,這個數字是2。
我試著改變了最后一個列印的位置,一些標簽向前或向后,但這似乎也沒有幫助。誰能向我解釋一下我做錯了什么?
親切的問候,
Sleek
uj5u.com熱心網友回復:
break只是打破了回圈。因為列印是在回圈之后,它仍然被執行。如果你不希望列印被執行,你也許應該把return從函式中完全洗掉。
def main(random_pick, guesses)。
for i in range(guesses)。
try:
guess = int(input(f"{BLUE}[ ? ]{WHITE} 猜測數字 : "))
if guess > random_pick:
print(f"{RED}[ !] {WHITE}你的猜測很高!")
elif guess < random_pick:
print(f"{RED}[ !] {WHITE}你的猜測是低的")
else:
print(f"{GREEN}[ $ ]{WHITE} You guessed it! 恭喜你")
# return而不是break。
return
except ValueError:
print(f"{RED}[ !] {WHITE}錯誤的值,再試!" )
print(f"{YELLOW}[ ! ]{WHITE} 下次運氣好點,號碼是{random_pick}")
uj5u.com熱心網友回復:
你所需要的是用一個回傳值來代替break。 break "陳述句只讓你離開最接近的包圍圈('for'回圈或'while'回圈)。而'return'陳述句則完全退出函式,這正是你要找的東西。
def main(random_pick, guesses)。
for i in range(guesses)。
try:
guess = int(input(f"{BLUE}[ ? ]{WHITE} 猜測數字 : "))
if guess > random_pick:
print(f"{RED}[ !] {WHITE}你的猜測很高!")
elif guess < random_pick:
print(f"{RED}[ !] {WHITE}你的猜測是低的")
else:
print(f"{GREEN}[ $ ]{WHITE} You guessed it! 恭喜你")
回傳。
except ValueError。
print(f"{RED}[ !] {WHITE}錯誤的值,再試!" )
print(f"{YELLOW}[ ! ]{WHITE} 下次運氣好點,號碼是{random_pick}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/332817.html
標籤:
