鱼C论坛

 找回密码
 立即注册
查看: 8334|回复: 62

[已解决]Python:每日一题 332

[复制链接]
发表于 2021-5-13 10:43:45 | 显示全部楼层
本帖最后由 776667 于 2021-5-13 10:45 编辑
  1. def fun332(x):
  2.     if not x:
  3.         return 'Zero'
  4.     x = str(x)
  5.     within_twenty = ['Zero','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten',
  6.                      'Eleven','Twelve','Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen']
  7.     tens = ['Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety']

  8.     def prefix(n,unit='',space=' '):
  9.         n = str(int(n))
  10.         if n == '0':
  11.             return ''
  12.         if len(n) == 1:
  13.             return '%s%s%s'%(space,within_twenty[int(n)],unit)
  14.         if len(n) == 2:
  15.             if int(n) < 20:
  16.                 return '%s%s%s'%(space,within_twenty[int(n)],unit)
  17.             elif int(n) >= 20 and not int(n)%10:
  18.                 return '%s%s%s'%(space,tens[int(n[0])-2],unit)
  19.             else:
  20.                 return '%s%s %s%s'%(space,tens[int(n[0])-2],within_twenty[int(n[1])],unit)
  21.         if len(n) == 3:
  22.             if not int(n)%100:
  23.                 return '%s%s Hundred%s'%(space,within_twenty[int(n[0])],unit)
  24.             elif int(n[1:2]) >= 20 and not int(n[1:2])%10:
  25.                 return '%s%s Hundred %s%s'%(space,within_twenty[int(str(n)[0])],tens[int(n[1])-2],unit)
  26.             else:
  27.                 return '%s%s Hundred %s %s%s'%(space,within_twenty[int(str(n)[0])],tens[int(n[1])-2],within_twenty[int(n[2])],unit)

  28.     if len(x) <= 3:
  29.         return prefix(x)
  30.     elif len(x) <= 6:
  31.         return '%s%s'%(prefix(x[:-3],' Thousand',space=''),prefix(x[-3:]))
  32.     elif len(x) <= 9:
  33.         return '%s%s%s'%(prefix(x[:-6],' Million',space=''),prefix(x[-6:-3],' Thousand'),prefix(x[-3:]))
  34.     else:
  35.         return '%s%s%s%s'%(prefix(x[:-9],' Billion',space=''),prefix(x[-9:-6],' Million'),prefix(x[-6:-3],' Thousand'),prefix(x[-3:]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 07:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表