我正在嘗試制作帶有圓形的石頭剪刀布游戲。我正在使用一個while回圈,但它不會回到開頭。我已經嘗試在 while、outer 和許多其他東西中宣告變數,但它不起作用。我將代碼留在這里。謝謝您的幫助!
import random
computer_win = 0
user_win = 0
jugadas = 0
def play(computer_win, user_win, jugadas):
while (jugadas < 3):
user = input("What's your choice? 'r' for rock, 'p' for paper, 's' for scissors: ")
computer = random.choice(['r','p','s'])
if user == computer:
jugadas = jugadas 1
return( f'It\'s a tie. Round {jugadas}/3')
if is_win(user, computer):
user_win =1
jugadas = jugadas 1
return( f'You won! Round {jugadas}/3')
else:
computer_win =1
jugadas = jugadas 1
return( f'You lost! Round {jugadas}/3')
if computer_win >2 or user_win>2:
if computer_win > user_win:
"The computer won"
elif user_win > computer_win:
return "You won!"
else:
return "It's a tie ...."
def is_win(player, opponent):
if(player == 'r' and opponent == 's') or (player =='s' and opponent =='p') \
or (player =='p' and opponent == 'r'):
return True
print(play(computer_win, user_win, jugadas))
uj5u.com熱心網友回復:
在回圈中使用 return 會破壞它。相反,您應該將結果保存到變數中,并在回圈完成后將其回傳。
uj5u.com熱心網友回復:
當您在函式內點擊return
陳述句時,即使該return
陳述句在回圈內,您也會退出該函式。您應該將所有return
陳述句更改為print()
函式,print()
函式對于向用戶顯示資訊很有用。return
陳述句對于將資料回傳給程式很有用,以便其他組件使用它。
另一件事是您不需要將函式傳遞play(computer_win, user_win, jugadas)
給print()
函式。
uj5u.com熱心網友回復:
歡迎來到 StackOverflow:D Return 陳述句將完成您的函式執行。他們不僅會退出你的while
回圈,而且你的函式將回傳一個最終值,在這種情況下是一個字串。由于您在每次迭代開始時都在閱讀用戶輸入,因此我認為您打算print
改用它。看看下面的代碼
if user == computer:
jugadas = jugadas 1
print( f'It\'s a tie. Round {jugadas}/3')
if is_win(user, computer):
user_win =1
jugadas = jugadas 1
print( f'You won! Round {jugadas}/3')
else:
computer_win =1
jugadas = jugadas 1
print( f'You lost! Round {jugadas}/3')
至于代碼的第二部分,bare in mindreturn
不會將結果列印到終端,所以也許你也想在print
那里使用:
if computer_win >2 or user_win>2:
if computer_win > user_win:
print "The computer won"
elif user_win > computer_win:
print "You won!"
else:
print "It's a tie ...."
在python中你不需要使用顯式的return陳述句,沒有return陳述句你的函式將完成執行并回傳nil
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491755.html
標籤:Python django 循环 if 语句 while循环