Looking for help in changing a number input and converting it to a short form word:
for instance 4,000,000,000 -> 4 Trillion,
ones = ["", "one ","two ","three ","four ", "five ", "six ","seven ","eight ","nine "]
tens = ["ten ","eleven ","twelve ","thirteen ", "fourteen ", "fifteen ","sixteen ","seventeen ","eighteen ","nineteen "]
twenties = ["","","twenty ","thirty ","forty ", "fifty ","sixty ","seventy ","eighty ","ninety "]
thousands = ["","thousand ","million ", "billion ", "trillion ", "quadrillion ", "quintillion ", "sextillion ", "septillion ","octillion ", "nonillion ", "decillion ", "undecillion ", "duodecillion ", "tredecillion ", "quattuordecillion ", "quindecillion", "sexdecillion ", "septendecillion ", "octodecillion ", "novemdecillion ", "vigintillion "]
def wordNumber(number):
number = int(number)
number = str(input("Enter the digits: "))
print(wordNumber(number))
I am completely stumped on where to go next and I've looked at a lot of programs online that do the exact thing with full numbers (10)--> ten.
If you need to do this manually, here is a partial example of one way to go about it.
def f(number):
ones = [
"",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
]
teens = {
10:"ten",
11:"eleven",
12:"twelve",
13:"thirteen",
14:"fourteen",
15:"fifteen",
16:"sixteen",
17:"seventeen",
18:"eighteen",
19:"nineteen",
}
tens = [
"",
"teen",
"twenty",
"thirty",
"fourty",
"fifty",
"sizty",
"seventy",
"eighty",
"ninety",
]
hundred = [ "%shundred" % one for one in ones ]
place_value = {1:ones,2:tens,3:hundred}
number_string = ""
number = list(str(number))
number.reverse()
number = [(place+1, int(digit)) for place, digit in enumerate(number)]
number.reverse()
number_iter = number.__iter__()
for place, digit in number_iter:
print place, digit
if place == 2 and digit == 1:
place, digit = number_iter.next()
number_string += teens[10 + digit]
else:
number_string += place_value[place][digit]
print number_string