关羽 和张飞 正在玩 剪刀石头布 的游戏。
写一个函数calculate_score, 参数是列表, 里面包含了n个元素也是列表。
比如 像这样 [[“剪刀”, “石头”], [“布”, “剪刀”], [“剪刀”, “剪刀”]]
n 个元素代表 n局 比赛,用列表表示,比如 [“剪刀”, “石头”]
其中第1个元素表示关羽打出的手势,第2个元素是张飞打出的手势。
函数要计算出谁赢得次数多,输出比赛结果。
如果他们打成平手,输出“平局”。
比如:
calculate_score([[“剪刀”, “石头”], [“布”, “剪刀”], [“剪刀”, “剪刀”]])
输出应该是: 张飞 3局赢了2局,平手一局,张飞胜出
calculate_score([[“布”, “石头”], [“石头”, “剪刀”], [“石头”, “剪刀”]])
输出应该是: 关羽 3局赢了3局,关羽胜出
下面是我写的:
def calculate_score(list):
guanyu=0
zhangfei=0
pingjun=0
for l in list:
if (l[0]=='剪刀' and l[-1]=='布') or (l[0]=='石头' and l[-1]=='剪刀') or (l[0]=='布' and l[-1]=='石头'):
guanyu=guanyu+1
elif l[0]==l[-1]:
pingjun=pingjun+1
else:
zhangfei=zhangfei+1
print('关羽出了:'+l[0],'张飞出了:'+l[-1])
# 关羽赢了
if guanyu >zhangfei:
if pingjun==0:
print(f'关羽{len(list)}局赢了{guanyu}局,关羽胜出')
else:
print(f'关羽{len(list)}局赢了{guanyu}局,平局{pingjun}局,关羽胜出')
# 张飞赢了
elif guanyu<zhangfei:
if pingjun==0:
print(f' 张飞{len(list)}局赢了{zhangfei}局,张飞胜出')
else:
print(f' 张飞{len(list)}局赢了{zhangfei}局,平手{pingjun}局,张飞胜出')
# 平局
elif guanyu==zhangfei:
print(f' {len(list)}轮比赛,关羽赢了{guanyu}局,张飞局赢了{zhangfei}局,{pingjun}轮平局,无法分出胜负')
else:
print(f' {len(list)}轮平局,无法分出胜负')
print({zhangfei},{guanyu},{pingjun})
list=[['剪刀','剪刀'],['剪刀','剪刀'],['剪刀','剪刀']]
calculate_score(list)
print(list)