1044 火星数字 Python PAT (Basic Level) Practice

思路:这道题让我们根据给出的进制进行相应的转换,我们可以用字典存储对应的转换规则,便于计算。需要注意的是:

输入的一些特殊值0,0对应的火星数字为‘tret’

代码如下:

import sys
in_1 = int(sys.stdin.readline())
list_x = [x for x in range(0,13)]
list_y = [y for y in range(1,13)]
list_x_1 = ['tret','jan','feb','mar','apr','may','jun','jly','aug','sep','oct','nov','dec']
list_y_1 = ['tam','hel','maa','huh','tou','kes','hei','elo','syy','lok','mer','jou']
dict_k_v_0,dict_k_v_1 = dict(zip(list_x,list_x_1)),dict(zip(list_y,list_y_1))
dict_v_k_0,dict_v_k_1 = dict(zip(list_x_1,list_x)),dict(zip(list_y_1,list_y))
for x in range(in_1):
    in_2 = input()
    try:
        out_1,out_2=int(in_2)//13,int(in_2)%13
        if out_1==0:
            print('{}'.format(dict_k_v_0[out_2]))
        elif out_1!=0 and out_2==0:
             print('{}'.format(dict_k_v_1[out_1]))
        else :
            print('{} {}'.format(dict_k_v_1[out_1],dict_k_v_0[out_2]))
    except:
        if ' ' in in_2:
            out_1=in_2[0:in_2.index(' ')]
            out_2=in_2[in_2.index(' ')+1:]
            print((dict_v_k_1[out_1]*13)+dict_v_k_0[out_2])
        else :
            if in_2 in dict_v_k_0:
                print(dict_v_k_0[in_2])
            elif in_2 in dict_v_k_1:
                print(dict_v_k_1[in_2]*13)

提交结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值