Advertisement
Guest User

Untitled

a guest
Jan 16th, 2014
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. Like:
  2. 12345 = "twelve thousand three hundred and fourty five"
  3. 97835200 ="Nine core seventy eight lakh thirty five thousand two hundred"
  4. 230100 = "Two lakh thirty thousand one hundred"
  5.  
  6. >>>def handel_upto_99(number):
  7. predef={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:"fourty",50:"fifty",60:"sixty",70:"seventy",80:"eighty",90:"ninety",100:"hundred",100000:"lakh",10000000:"crore",1000000:"million",1000000000:"billion"}
  8. if number in predef.keys():
  9. return predef[number]
  10. else:
  11. return predef[(number/10)*10]+' '+predef[number%10]
  12.  
  13. >>>def return_bigdigit(number,devideby):
  14. predef={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:"fourty",50:"fifty",60:"sixty",70:"seventy",80:"eighty",90:"ninety",100:"hundred",1000:"thousand",100000:"lakh",10000000:"crore",1000000:"million",1000000000:"billion"}
  15. if devideby in predef.keys():
  16. return predef[number/devideby]+" "+predef[devideby]
  17. else:
  18. devideby/=10
  19. return handel_upto_99(number/devideby)+" "+predef[devideby]
  20.  
  21. >>>def mainfunction(number):
  22. dev={100:"hundred",1000:"thousand",100000:"lakh",10000000:"crore",1000000000:"billion"}
  23. if number is 0:
  24. return "Zero"
  25. if number<100:
  26. result=handel_upto_99(number)
  27.  
  28. else:
  29. result=""
  30. while number>=100:
  31. devideby=1
  32. length=len(str(number))
  33. for i in range(length-1):
  34. devideby*=10
  35. if number%devideby==0:
  36. if devideby in dev:
  37. return handel_upto_99(number/devideby)+" "+ dev[devideby]
  38. else:
  39. return handel_upto_99(number/(devideby/10))+" "+ dev[devideby/10]
  40. res=return_bigdigit(number,devideby)
  41. result=result+' '+res
  42. if devideby not in dev:
  43. number=number-((devideby/10)*(number/(devideby/10)))
  44. number=number-devideby*(number/devideby)
  45.  
  46. if number <100:
  47. result = result + ' '+ handel_upto_99(number)
  48. return result
  49.  
  50. >>>mainfunction(12345)
  51. ' twelve thousand three hundred fourty five'
  52.  
  53. >>>mainfunction(0)
  54. 'Zero'
  55.  
  56. >>>mainfunction(100)
  57. 'one hundred'
  58.  
  59. >>>mainfunction(40230534)
  60. ' four crore two lakh thirty thousand five hundred thirty four'
  61.  
  62. num2word.to_card(1e25)
  63. 'ten septillion, one billion, seventy-three million, seven hundred and forty-one
  64.  
  65.  
  66. this will avoid your long code and you can directly use it.
  67.  
  68. def int2word(n):
  69. """
  70. convert an integer number n into a string of english words
  71. """
  72. # break the number into groups of 3 digits using slicing
  73. # each group representing hundred, thousand, million, billion, ...
  74. n3 = []
  75. r1 = ""
  76. # create numeric string
  77. ns = str(n)
  78. for k in range(3, 33, 3):
  79. r = ns[-k:]
  80. q = len(ns) - k
  81. # break if end of ns has been reached
  82. if q < -2:
  83. break
  84. else:
  85. if q >= 0:
  86. n3.append(int(r[:3]))
  87. elif q >= -1:
  88. n3.append(int(r[:2]))
  89. elif q >= -2:
  90. n3.append(int(r[:1]))
  91. r1 = r
  92.  
  93. #print n3 # test
  94.  
  95. # break each group of 3 digits into
  96. # ones, tens/twenties, hundreds
  97. # and form a string
  98. nw = ""
  99. for i, x in enumerate(n3):
  100. b1 = x % 10
  101. b2 = (x % 100)//10
  102. b3 = (x % 1000)//100
  103. #print b1, b2, b3 # test
  104. if x == 0:
  105. continue # skip
  106. else:
  107. t = thousands[i]
  108. if b2 == 0:
  109. nw = ones[b1] + t + nw
  110. elif b2 == 1:
  111. nw = tens[b1] + t + nw
  112. elif b2 > 1:
  113. nw = twenties[b2] + ones[b1] + t + nw
  114. if b3 > 0:
  115. nw = ones[b3] + "hundred " + nw
  116. return nw
  117.  
  118. '''Global'''
  119.  
  120. ones = ["", "one ","two ","three ","four ", "five ",
  121. "six ","seven ","eight ","nine "]
  122.  
  123. tens = ["ten ","eleven ","twelve ","thirteen ", "fourteen ",
  124. "fifteen ","sixteen ","seventeen ","eighteen ","nineteen "]
  125.  
  126. twenties = ["","","twenty ","thirty ","forty ",
  127. "fifty ","sixty ","seventy ","eighty ","ninety "]
  128.  
  129. thousands = ["","thousand ","million ", "billion ", "trillion ",
  130. "quadrillion ", "quintillion ", "sextillion ", "septillion ","octillion ",
  131. "nonillion ", "decillion ", "undecillion ", "duodecillion ", "tredecillion ",
  132. "quattuordecillion ", "sexdecillion ", "septendecillion ", "octodecillion ",
  133. "novemdecillion ", "vigintillion "]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement