[Tutor] Projects (fwd)

Tiger12506 keridee at jayco.net
Thu Jan 24 01:37:22 CET 2008


> up to a thousand (not tested)
>
> words = {0:'zero', 1:'one', 2:'two', 3:'three', ... , 10:'ten',
> 11:'eleven', 12:'twelve', ..., 19:'nineteen',
>         20:'twenty', ...., 90:'ninety', 100:'one hundred' }
> def digitToString(n) :
>    try :
>        retStr = words[n]
>    except KeyError :
>        if n > 100 :
>            retStr = (digitToString(n // 100)
>                     + ' hundred and '
>                     + digitToString(n % 100))
>        else :
>            retStr = (digitToString(n - (n % 10))
>                     + ' '
>                     + digitToString(n % 10))
>
>    return retStr

This could be written much more efficiently. It can be done with only these 
lists~
ones = 
['zero','one','two','three','four','five','six','seven','eight','nine']
teens = 
['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
tens = 
['','','twenty','thirty','fourty','fifty','sixty','seventy','eighty','ninety']
hundstr = 'hundred'
thousand = 'thousand'

Exercise for reader to make it work ;-) Unless of course you genuinely want 
to see my code...
Current range 0 - 999,999    Easily extendable to millions, trillions, 
billions, etc. 



More information about the Tutor mailing list