import random punches = ['石头','剪刀','布'] computer_choice = random.choice(punches) user_choice = input('请出拳:(石头、剪刀、布)') # 请用户输入选择 while user_choice not in punches: # 当用户输入错误,提示错误,重新输入 print('输入有误,请重新出拳') user_choice = input() # 亮拳 print('————战斗过程————') print('电脑出了:%s' %(computer_choice)) print('你出了:%s' %(user_choice)) # 胜负 print('—————结果—————') if user_choice == computer_choice: # 使用if进行条件判断 print('平局!') elif (user_choice == '石头' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布') or (user_choice == '布' and computer_choice == '石头'): print('你赢了!') else: print('你输了!')
在上面的代码中,判定你胜利的条件很长.我们可以尝试优化它
石头的索引为0,剪刀索引为1,布的索引为2(或-1)
分析发现,当你的选择在列表中的索引等于电脑的索引-1时,你总是胜利的
因此,该条件我们就可以优化为
elif user_choice == punches[punches.index(computer_choice)-1]: