题目要求:
与电脑进行“石头剪刀布”的游戏,电脑能自动出拳,我们能自由选择出什么。
实现代码:
import random
# 出拳
punches = ['石头', '剪刀', '布']
computer_choice = random.choice(punches)
user_choice = ''
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:
print('平局')
elif (user_choice == '石头' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布') or (user_choice == '布' and computer_choice == '石头'):
print('你赢了')
else:
print('电脑赢了')
通过使用index()函数简化elif语句
index()函数用于找出列表中某个元素第一次出现的索引位置。语法:list.index()
改进后的简化代码:
import random
# 出拳
punches = ['石头', '剪刀', '布']
computer_choice = random.choice(punches)
user_choice = ''
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:
print('平局')
# 电脑的选择有3种,索引位置分别为:0石头, 1剪刀, 2布
# 假设在电脑索引位置上减1作为你的选择,索引位置分别为:-1布,0石头,1剪刀,此对应组合时你赢
elif user_choice == punches[punches.index(computer_choice)-1]:
print('你赢了!')
# elif (user_choice == '石头' and computer_choice == '剪刀') or (user_choice == '剪刀' and computer_choice == '布') or (user_choice == '布' and computer_choice == '石头'):
# print('你赢了')
else:
print('电脑赢了')