Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def digits2words(num):
- # given a number in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- # returns the word for that number
- if num == 0: return "zero"
- elif num == 1: return "one"
- elif num == 2: return "two"
- elif num == 3: return "three"
- elif num == 4: return "four"
- elif num == 5: return "five"
- elif num == 6: return "six"
- elif num == 7: return "seven"
- elif num == 8: return "eight"
- elif num == 9: return "nine"
- else:
- return "?digit2words" # something is wrong
- def hundredsprefix(num):
- # given a number in [100, 200, 300, 400, 500, 600, 700, 800, 900]
- # returns the word for that number
- if num == 100: return "one hundred"
- elif num == 200: return "two hundred"
- elif num == 300: return "three hundred"
- elif num == 400: return "four hundred"
- elif num == 500: return "five hundred"
- elif num == 600: return "six hundred"
- elif num == 700: return "seven hundred"
- elif num == 800: return "eight hundred"
- elif num == 900: return "nine hundred"
- else:
- return "?hundredsprefix" # something is wrong
- def tensprefix(num):
- # given a number in [10, 20, 30, 40, 50, 60, 70, 80, 90]
- # returns the word for that number
- if num == 10: return "ten"
- elif num == 20: return "twenty"
- elif num == 30: return "thirty"
- elif num == 40: return "thirty"
- elif num == 50: return "fifty"
- elif num == 60: return "sixty"
- elif num == 70: return "seventy"
- elif num == 80: return "eighty"
- elif num == 90: return "ninety"
- else:
- return "?tensprefix" # something is wrong
- def teens2words(num):
- # given a number in [11, 12, 13, 14, 15, 16, 17, 18, 19]
- # returns the word for that number
- if num == 11: return "eleven"
- elif num == 12: return "twelve"
- elif num == 13: return "thirteen"
- elif num == 14: return "fourteen"
- elif num == 15: return "fifteen"
- elif num == 16: return "sixteen"
- elif num == 17: return "seventeen"
- elif num == 18: return "eighteen"
- elif num == 19: return "nineteen"
- else:
- return "?teens2word" # something is wrong
- def number2words(num):
- # selects single digit, teens, tens multiple, or two-word number
- # sends number to function(s) to convert it to words
- if (0 <= num) and (num <= 9):
- return digits2words(num)
- elif (11 <= num) and (num <= 19):
- return teens2words(num)
- elif num%100 == 0:
- return hundredsprefix(num)
- elif num%10 == 0:
- return tensprefix(num)
- elif (99 < num) and (num <= 999):
- return hundredsprefix((num//100) * 100) + tensprefix((num//10) * 10) + "-" + digits2words(num%10)
- else: # concatenate tens digit with ones digit
- return tensprefix((num//10) * 10) + "-" + digits2words(num%10)
- def main():
- # prompts for and checks validity of input number
- # sends number to function "number2words" if number is valid
- number = eval(input("Enter a number between -999 and 999: "))
- if (0 <= number) and (number <= 999):
- print(number, "is", number2words(number))
- elif (-999 <= number) and (number < 0):
- number = number * -1
- print(- number, "is negative", number2words(number))
- else:
- print("Number must be between -999 and 999!")
- main()
Add Comment
Please, Sign In to add comment