| 
 | 
 
 
发表于 2021-5-13 10:43:45
|
显示全部楼层
 
 
 
 本帖最后由 776667 于 2021-5-13 10:45 编辑  
- def fun332(x):
 
 -     if not x:
 
 -         return 'Zero'
 
 -     x = str(x)
 
 -     within_twenty = ['Zero','One','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten',
 
 -                      'Eleven','Twelve','Thirteen','Fourteen','Fifteen','Sixteen','Seventeen','Eighteen','Nineteen']
 
 -     tens = ['Twenty','Thirty','Forty','Fifty','Sixty','Seventy','Eighty','Ninety']
 
  
-     def prefix(n,unit='',space=' '):
 
 -         n = str(int(n))
 
 -         if n == '0':
 
 -             return ''
 
 -         if len(n) == 1:
 
 -             return '%s%s%s'%(space,within_twenty[int(n)],unit)
 
 -         if len(n) == 2:
 
 -             if int(n) < 20:
 
 -                 return '%s%s%s'%(space,within_twenty[int(n)],unit)
 
 -             elif int(n) >= 20 and not int(n)%10:
 
 -                 return '%s%s%s'%(space,tens[int(n[0])-2],unit)
 
 -             else:
 
 -                 return '%s%s %s%s'%(space,tens[int(n[0])-2],within_twenty[int(n[1])],unit)
 
 -         if len(n) == 3:
 
 -             if not int(n)%100:
 
 -                 return '%s%s Hundred%s'%(space,within_twenty[int(n[0])],unit)
 
 -             elif int(n[1:2]) >= 20 and not int(n[1:2])%10:
 
 -                 return '%s%s Hundred %s%s'%(space,within_twenty[int(str(n)[0])],tens[int(n[1])-2],unit)
 
 -             else:
 
 -                 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)
 
  
-     if len(x) <= 3:
 
 -         return prefix(x)
 
 -     elif len(x) <= 6:
 
 -         return '%s%s'%(prefix(x[:-3],' Thousand',space=''),prefix(x[-3:]))
 
 -     elif len(x) <= 9:
 
 -         return '%s%s%s'%(prefix(x[:-6],' Million',space=''),prefix(x[-6:-3],' Thousand'),prefix(x[-3:]))
 
 -     else:
 
 -         return '%s%s%s%s'%(prefix(x[:-9],' Billion',space=''),prefix(x[-9:-6],' Million'),prefix(x[-6:-3],' Thousand'),prefix(x[-3:]))
 
  复制代码 |   
 
 
 
 |