我正在尝试制作剪刀石头布的程序。但是对于我得到的输出来说,它是令人满意的。
def rpc():
import random
moveset=["Rock","Paper","Scissors"]
a=random.choice(moveset)
"Rock">"Scissors","Scissors">"Paper","Paper">"Rock"
playermove=input ("What will you play? please keep the first letter capital")
print (a)
if playermove == a:
print ("draw")
elif playermove>a:
print("you win")
elif playermove<a:
print("you lose")
else:
print("no valid choice")
rpc()
rpc()
应如何修改代码?
答案 0 :(得分:0)
如上所述:您的问题行在此处:
"Rock">"Scissors","Scissors">"Paper","Paper">"Rock"
。这行实际上什么也没做。
另一个问题在这里:
elif playermove>a:
正在比较两个字符串,而上方的行将被忽略。要了解字符串比较,请尝试使用一些字符串并进行比较。比较工作类似于按字母顺序排序,并且大写字母小于小写。
>>> "a" > "b"
False
>>> "ac" > "ab"
True
>>> "A" > "a"
False
>>> "A" > "z"
False
因此,您需要创建其他测试来检查输掉比赛的胜利。有许多方式可以做到这一点。一个简单的测试可能是创建一个winner_to_loser列表,然后查看您的组合是否在列表中
winner_loser = [('rock', 'scissors'), ('scissors', 'paper'), ('paper', 'rock')]
if (player_move, computer_move) in winner_loser:
print("you win!")
elif (computer_move, player_move) in winner_loser:
print("computer wins!")