winner = False
def player():
global winner
while winner==False:
print("player 1: please choose rock/paper/scissor !")
choice1 = input()
print("player 2: please choose rock/paper/scissor !")
choice2 = input()
if choice1!=choice2:
if choice1=="rock" and choice2=="scissor" :
print("player 1 is the winner, Congrats!!")
elif choice1=="rock" and choice2=="paper" :
print("player 2 is the winner, Congrats!!")
elif choice2=="rock" and choice1=="scissor" :
print("player 2 is the winner, Congrats!!")
elif choice2=="rock" and choice1=="paper" :
print("player 1 is the winner, Congrats!!")
elif choice1=="scissor" and choice2=="paper" :
print("player 1 is the winner, Congrats!!")
elif choice1=="paper" and choice2=="scissor" :
print("player 2 is the winner, Congrats!!")
else:
print("its a draw")
print("do you want to start a new game?,yes or no")
answer = input()
if answer=="yes":
print("lets start another game!")
winner = False
elif answer=="no":
print("see you next time!")
winner = True
player()
如您所见,如果我的代码中的语句效率太低,请问如何才能将其最小化
答案 0 :(得分:1)
def player():
while True:
print("player 1: please choose rock/paper/scissor !")
choice1 = input()
print("player 2: please choose rock/paper/scissor !")
choice2 = input()
beats = dict(
rock='scissor',
scissor='paper',
paper='rock',
)
if choice1 != choice2:
if beats[choice1] == choice2:
winner = 1
else:
winner = 2
print("player %s is the winner, Congrats!!" % winner)
else:
print("its a draw")
print("do you want to start a new game?,yes or no")
answer = input()
if answer == "yes":
print("lets start another game!")
else:
print("see you next time!")
break
player()
答案 1 :(得分:0)
您可以执行以下操作:
db = {'rockscissor': 1,
'rockpaper': 2,
'scissorrock': 2,
'scissorpaper': 1,
'paperrock': 1,
'paperscissor': 2}
if choice1!=choice2:
print("player {} is the winner, Congrats!!".format(db[choice1+choice2]
else:
print("its a draw")
,您甚至还可以将抽奖添加到db
:
db = {'rockscissor': 1,
'rockpaper': 2,
'scissorrock': 2,
'scissorpaper': 1,
'paperrock': 1,
'paperscissor': 2,
'paperpaper':0,
'rockrock':0,
'scissorscissor':0
}
然后处理if
。