PAT乙级1018 锤子剪刀布(python实现)

题目描述

在这里插入图片描述

实现代码

# 比赛次数
number = int(input())

# 输入甲乙
jia, yi = [], []
for i in range(number):
    str = input()
    jia.append(str[0])
    yi.append(str[-1])

# 三种情况,甲赢乙输、乙赢甲输和平手
win_jia, win_yi , equal = 0, 0, 0

# 统计每个手势赢的次数
j = {'B': 0,'C': 0,'J': 0}
y = {'B': 0,'C': 0,'J': 0}

# 判断输赢
def game(a,b):
    if a == 'C' and b == 'J':
        return True
    elif a =='J' and b == 'B':
        return True
    elif a == 'B' and b =='C':
        return True
    elif a == b:
        return 'OK'
    else:
        return False

# 统计赢的具体情况
def sheng(a,b):
    if a == 'B':
        b['B'] += 1
    elif a == 'C':
        b['C'] += 1
    else:
        b['J'] += 1

for i in range(number):
    if game(jia[i], yi[i]) == True:
        win_jia += 1
        sheng(jia[i], j)
    elif game(jia[i],yi[i]) == 'OK':
        equal += 1
    else:
        win_yi += 1
        sheng(yi[i], y)

j_order = sorted(j.items(), key=lambda x: x[1], reverse=True)
y_order = sorted(y.items(), key=lambda x: x[1], reverse=True)

print("{} {} {}".format(win_jia, equal, win_yi))
print("{} {} {}".format(win_yi, equal, win_jia))

print(j_order[0][0], y_order[0][0])

知识点

字典的排序也可以借助lambda表达式实现

 sorted(可迭代对象,key=函数名,reverse=False/True)

参考:在Python中,字典按值排序

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值