word to digit module
M.E.Farmer
mefjr75 at hotmail.com
Wed Dec 22 16:18:47 EST 2004
Cool script just one little thing,
toNumber('One thousand') bites the dust.
Guess you should add another test, and s.lower() ;)
Stephen Thorne wrote:
{code snip}
> def toNumber(s):
+ s = s.lower()
> items = s.replace(',', '').split()
> numbers = [translation.get(item.strip(), -1) for item in items if
> item.strip()]
> if -1 in numbers:
> raise ValueError("Invalid string '%s'" % (s,))
>
> if 1000 in numbers:
> idx = numbers.index(1000)
> hundreds = numbers[:idx]
> numbers = numbers[idx+1:] + [1000*x for x in hundreds]
>
> if 100 in numbers:
> idx = numbers.index(100)
> hundreds = numbers[:idx]
> numbers = numbers[idx+1:] + [100*x for x in hundreds]
>
> return sum(numbers)
>
> Stephen Thorne
M.E.Farmer
More information about the Python-list
mailing list