# L-9 MCS 260 Mon 1 Feb 2010 : write_numbers.py # # When writing a check, the amount is spelled out in words. # The program below writes numbers strictly less than 1000 into words. # d = { 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:'forty', 50:'fifty', 60:'sixty', 70:'seventy', 80:'eighty', \ 90:'ninety', 100:'hundred' \ } n = input('give a natural number : ') outcome = '%d is ' % n if n == 0: outcome += d[n] elif n >= 100: outcome += d[n/100] + ' ' + d[100] n = n % 100 if n != 0: outcome += ' and ' if n > 0: if n <= 20: outcome += d[n] else: r = n % 10 if r == 0: outcome += d[n] else: outcome += d[n-r] + ' ' + d[r] print outcome