python 蓝桥杯刷题记录--基础练习 报时助手

给定当前的时间,请用英文的读法将它读出来。
  时间用时h和分m表示,在英文的读法中,读一个时间的方法是:
  如果m为0,则将时读出来,然后加上“o'clock”,如3:00读作“three o'clock”。
  如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。
  时和分的读法使用的是英文数字的读法,其中0~20读作:
  0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8:eight, 9:nine, 10:ten, 11:eleven, 12:twelve, 13:thirteen, 14:fourteen, 15:fifteen, 16:sixteen, 17:seventeen, 18:eighteen, 19:nineteen, 20:twenty。
  30读作thirty,40读作forty,50读作fifty。
  对于大于20小于60的数字,首先读整十的数,然后再加上个位数。如31首先读30再加1的读法,读作“thirty one”。
  按上面的规则21:54读作“twenty one fifty four”,9:07读作“nine seven”,0:15读作“zero fifteen”。

输入格式

  输入包含两个非负整数h和m,表示时间的时和分。非零的数字前没有前导0。h小于24,m小于60。

输出格式

  输出时间时刻的英文。

本人也是刚开始刷题,所以可能还是很多代码是复杂的,欢迎批评和指点。这个题经过多次改正得到最后结果,希望可以帮助到他人,并且也是记录一下,以后忘了可以来回顾一下。

def sbz(i):
    if i==0:
        return "zero"
    elif i==1:
        return "one"
    elif i==2:
        return "two"
    elif i==3:
        return "three"
    elif i==4:
        return "four"
    elif i==5:
        return "five"
    elif i==6:
        return "six"
    elif i==7:
        return "seven"
    elif i==8:
        return "eight"
    elif i==9:
        return "nine"
    elif i==10:
        return "ten"
    elif i==11:
        return "eleven"
    elif i==12:
        return "twelve"
    elif i==13:
        return "thirteen"
    elif i==14:
        return "fourteen"
    elif i==15:
        return "fifteen"
    elif i==16:
        return "sixteen"
    elif i==17:
        return "seventeen"
    elif i==18:
        return "eighteen"
    elif i==19:
        return "nineteen"
    elif i==20:
        return "twenty"
    elif i==30:
        return "thirty"
    elif i==40:
        return "forty"
    elif i==50:
        return "fifty"

def zbx(l):
    if 60>l >20 and l!=30and l!=40and l!=50:
        a = l // 10
        b = l % 10
        return a*10,b
    else:
        c=sbz(l)
        return c

h,m=list(map(int,input().split()))
if m==0:
    if 60>h >20 and h!=30and h!=40and h!=50:
        d, e = zbx(h)
        print(sbz(d), sbz(e), "o'clock")
    else:
        print(sbz(h),"o'clock")
else:
    if h>20 and m>20 and m!=30and m!=40and m!=50 and h!=30and h!=40and h!=50:
        d,e=zbx(h)
        f,g=zbx(m)
        print(zbx(d),zbx(e),zbx(f),zbx(g))
    elif h<20 and m<=20:
        print(zbx(h),zbx(m))
    elif h>20 and m<=20and h!=30and h!=40and h!=50:
        d,e=zbx(h)
        print(zbx(d),zbx(e),zbx(m))
    elif h<=20 and m>20 and m!=30and m!=40and m!=50:
        d,e=zbx(m)
        print(zbx(h),zbx(d),zbx(e))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值