day04 一个简单的代码优化案例

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]:
原文地址:https://www.cnblogs.com/87pzy/p/10537219.html