Guest User

Untitled

a guest
Dec 11th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. def digits2words(num):
  2. # given a number in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  3. # returns the word for that number
  4. if num == 0: return "zero"
  5. elif num == 1: return "one"
  6. elif num == 2: return "two"
  7. elif num == 3: return "three"
  8. elif num == 4: return "four"
  9. elif num == 5: return "five"
  10. elif num == 6: return "six"
  11. elif num == 7: return "seven"
  12. elif num == 8: return "eight"
  13. elif num == 9: return "nine"
  14. else:
  15. return "?digit2words" # something is wrong
  16.  
  17.  
  18. def hundredsprefix(num):
  19. # given a number in [100, 200, 300, 400, 500, 600, 700, 800, 900]
  20. # returns the word for that number
  21. if num == 100: return "one hundred"
  22. elif num == 200: return "two hundred"
  23. elif num == 300: return "three hundred"
  24. elif num == 400: return "four hundred"
  25. elif num == 500: return "five hundred"
  26. elif num == 600: return "six hundred"
  27. elif num == 700: return "seven hundred"
  28. elif num == 800: return "eight hundred"
  29. elif num == 900: return "nine hundred"
  30. else:
  31. return "?hundredsprefix" # something is wrong
  32.  
  33.  
  34. def tensprefix(num):
  35. # given a number in [10, 20, 30, 40, 50, 60, 70, 80, 90]
  36. # returns the word for that number
  37. if num == 10: return "ten"
  38. elif num == 20: return "twenty"
  39. elif num == 30: return "thirty"
  40. elif num == 40: return "thirty"
  41. elif num == 50: return "fifty"
  42. elif num == 60: return "sixty"
  43. elif num == 70: return "seventy"
  44. elif num == 80: return "eighty"
  45. elif num == 90: return "ninety"
  46. else:
  47. return "?tensprefix" # something is wrong
  48.  
  49.  
  50. def teens2words(num):
  51. # given a number in [11, 12, 13, 14, 15, 16, 17, 18, 19]
  52. # returns the word for that number
  53. if num == 11: return "eleven"
  54. elif num == 12: return "twelve"
  55. elif num == 13: return "thirteen"
  56. elif num == 14: return "fourteen"
  57. elif num == 15: return "fifteen"
  58. elif num == 16: return "sixteen"
  59. elif num == 17: return "seventeen"
  60. elif num == 18: return "eighteen"
  61. elif num == 19: return "nineteen"
  62. else:
  63. return "?teens2word" # something is wrong
  64.  
  65.  
  66. def number2words(num):
  67. # selects single digit, teens, tens multiple, or two-word number
  68. # sends number to function(s) to convert it to words
  69. if (0 <= num) and (num <= 9):
  70. return digits2words(num)
  71. elif (11 <= num) and (num <= 19):
  72. return teens2words(num)
  73. elif num%100 == 0:
  74. return hundredsprefix(num)
  75. elif num%10 == 0:
  76. return tensprefix(num)
  77. elif (99 < num) and (num <= 999):
  78. return hundredsprefix((num//100) * 100) + tensprefix((num//10) * 10) + "-" + digits2words(num%10)
  79. else: # concatenate tens digit with ones digit
  80. return tensprefix((num//10) * 10) + "-" + digits2words(num%10)
  81.  
  82.  
  83. def main():
  84. # prompts for and checks validity of input number
  85. # sends number to function "number2words" if number is valid
  86. number = eval(input("Enter a number between -999 and 999: "))
  87. if (0 <= number) and (number <= 999):
  88. print(number, "is", number2words(number))
  89. elif (-999 <= number) and (number < 0):
  90. number = number * -1
  91. print(- number, "is negative", number2words(number))
  92. else:
  93. print("Number must be between -999 and 999!")
  94.  
  95. main()
Add Comment
Please, Sign In to add comment