TankorSmash

'Th'-ing

Sep 25th, 2011
444
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.26 KB | None | 0 0
  1. '''usage is call makeList() to any given limit,
  2. which returns a dictionary with N place assigned
  3. to the integer which it is based off of
  4. so for example entering listed[123] would return
  5. one hundred and twenty third'''
  6. st = 'st'
  7. th = 'th'
  8. rd = 'rd'
  9.  
  10. zero = 'zero'
  11. one = 'first'
  12.  
  13.  
  14. base = ['',
  15.     'one',
  16.     'two',
  17.     'three',
  18.     'four',
  19.     'five',
  20.     'six',
  21.     'seven',
  22.     'eight',
  23.     'nine',
  24.    ]
  25.  
  26. teens = [  
  27.     'ten',
  28.     'eleven',
  29.     'twelve',
  30.     'thirteen',
  31.     'fourteen',
  32.     'fifteen',
  33.     'sixteen',
  34.     'seventeen',
  35.     'eighteen'
  36.     'ninteen'
  37.     ]
  38.  
  39. ones = ['',
  40.     'first',
  41.     'second',
  42.     'third',
  43.     'fourth',
  44.     'fifth',
  45.     'sixth',
  46.     'seventh',
  47.     'eighth',
  48.     'ninth',
  49.     ]
  50.  
  51. tens = ['none',
  52.     'ten',
  53.     'twenty',
  54.     'thirty',
  55.     'forty',
  56.     'fifty',
  57.     'sixty',
  58.     'seventy',
  59.     'eighty',
  60.     'ninety',
  61.      ]  
  62. hundreds =   'hundred'
  63. thousands =   'thousand',
  64. millions =    'million'
  65.    
  66.  
  67.  
  68. teensTh = ['tenth',
  69.     'eleventh',
  70.     'twelfth',
  71.     'thirteenth',
  72.     'fourteenth',
  73.     'fifteenth',
  74.     'sixteenth',
  75.     'seventeenth',
  76.     'eighteenth',
  77.     'ninteenth'
  78.     ]
  79.  
  80. extraTh = ['',
  81.     'tenth',
  82.     'twentieth',
  83.     'thirtieth',
  84.     'fortieth',
  85.     'fiftieth',
  86.     'sixtieth',
  87.     'seventieth',
  88.     'eightieth',
  89.     'ninetieth',
  90.        
  91.     'hundredth',
  92.     'thousandth',
  93.     'millionth']
  94.  
  95.  
  96. def makeList(limit):
  97.     #go through all the numbers
  98.    
  99.     #if under ten use 'end' list
  100.     #if in teens use ''teenth'
  101.     #if over that use 'extraTh' + 'end'
  102.     #or something like that
  103.     numbersTh ={}
  104.    
  105.     for i in range(limit):
  106.         i +=1 #to balance it out
  107.         if i < 10:
  108.            
  109.             i = str(i)
  110.             one = int(i[-1])
  111.            
  112.            
  113.             result = i, ' ',ones[one]
  114.            
  115.         elif 11 <= i < 20:
  116.            
  117.             i = str(i)
  118.             one = int(i[-1])
  119.             ten = int(i[-2])
  120.             result = i, ' ',teensTh[int(i)-10]
  121.            
  122.         elif i < 100:
  123.            
  124.             i = str(i)
  125.             one = int(i[-1])
  126.             ten = int(i[-2])
  127.             if i[-1] != '0':
  128.  
  129.                 result = i, tens[ten], '-', ones[one]            
  130.             else :
  131.                
  132.                 result = i, extraTh[ten]
  133.                
  134.         elif i < 1000:
  135.            
  136.             i = str(i)
  137.             one = int(i[-1])
  138.             ten = int(i[-2])
  139.             hundred = int(i[-3])
  140.             #
  141.             if i[-2:] == '00':
  142.                 result = i, base[hundred], hundreds+th
  143.                
  144.             elif i[-2] == '0':
  145.                 result = i, base[hundred], hundreds, 'and', ones[one]
  146.             elif i[-1:] == '0':
  147.                
  148.                 result = i, base[hundred], hundreds, 'and', extraTh[ten]
  149.            
  150.             else :
  151.  
  152.                 result = i, base[hundred], hundreds, 'and', tens[ten], '-', ones[one]            
  153.            
  154.         #print result  
  155.         result=  ' '.join(result)
  156.         result = result.lstrip((i+' '))
  157.         numbersTh[int(i)]= result
  158.        
  159.     print 'done'
  160.     return numbersTh
  161.        
  162.  
  163. #makeList(101)
  164. if __name__ == '__main__':
  165.     listed = makeList(999)
Advertisement
Add Comment
Please, Sign In to add comment