Program to convert Number to Words:
I am trying to teach Python to one of my old friend, and has given an assignment to convert numbers to words. So I tried doing it myself and It turned out to be fun.
I have used dictionary and recursive function :)
Code is readable so you may use logic in any language.
#for i in range (21341,21400,1):
# print(num2words(str(i)))
I am trying to teach Python to one of my old friend, and has given an assignment to convert numbers to words. So I tried doing it myself and It turned out to be fun.
I have used dictionary and recursive function :)
Code is readable so you may use logic in any language.
digitdict = {
"0": "",
"1": "One",
"2": "Two",
"3": "Three",
"4": "Four",
"5": "Five",
"6": "Six",
"7": "Seven",
"8": "Eight",
"9": "Nine",
}
tensdict = {
"0": "",
"1": "",
"2": "Twety",
"3": "Thirty",
"4": "Fourty",
"5": "Fifty",
"6": "Sixty",
"7": "Seventy",
"8": "Eighty",
"9": "Ninty",
}
exceptiondict = {
"10": "Ten",
"11": "Eleven",
"12": "Twelve",
"13": "Thirteen",
"14": "Fourteen",
"15": "Fifteen",
"16": "Sixteen",
"17": "Seventeen",
"18": "Eighteen",
"19": "Ninteen",
"100": "Hundred",
}
def num2words(mydigit):
wordstring = ""
if mydigit in exceptiondict:
return exceptiondict[mydigit]
if len(mydigit) == 1:
wordstring = digitdict[mydigit]
if len(mydigit) == 2:
wordstring = tensdict[mydigit[0]]
wordstring = wordstring + " " + digitdict[mydigit[1]]
if len(mydigit) == 3:
if int(mydigit) > 99:
wordstring = digitdict[mydigit[0]] + wordstring + " Hundred " + num2words(mydigit[1:])
else:
wordstring = num2words(mydigit[1:])
if len(mydigit) == 4:
wordstring = digitdict[mydigit[0]] + " Thousand " + num2words(mydigit[1:])
if len(mydigit) == 5:
wordstring = num2words(mydigit[0:2]) + " Thousand " + num2words(mydigit[2:5])
if len(mydigit) == 6:
wordstring = num2words(mydigit[0:3]) + " Thousand " + num2words(mydigit[3:6])
if len(mydigit) > 6:
wordstring = "you are a millionnaire, give me some..."
return wordstring
#prompt = "type a number:"
#mydigit = input(prompt)
#print(num2words(mydigit))
while 1 == 1:
prompt = "Type a number(0 to quit):"
mydigit = input(prompt.strip())
if mydigit.isnumeric():
if int(mydigit) == 0:
print("Bye")
exit(0)
else:
print(num2words(mydigit))
else:
print("not a number...")
No comments:
Post a Comment