Anonymous user
Number names: Difference between revisions
→{{header|Python}}
(→{{header|MAXScript}}: Added maxscript.) |
|||
Line 461:
== {{header|Python}} ==
<lang python>def spell_integer(n):▼
small = ["zero", "one", "two", "three", "four", "five",▼
<lang python>def nonzero(c, n):▼
"six", "seven", "eight", "nine", "ten", "eleven",
if n == 0:▼
"sixteen", "seventeen", "eighteen", "nineteen"]▼
else:▼
return c + spell_integer(n)▼
"quint", "
▲small = ["zero", "one", "two", "three", "four", "five",
▲ return "" if n == 0 else c + spell_integer(n)
▲ "six", "seven", "eight", "nine", "ten", "eleven",
▲ "twelve", "thirteen", "fourteen", "fifteen", "sixteen",
▲ "seventeen", "eighteen", "nineteen"]
def big(e, n):
▲bl = [None, None, "m", "b", "tr", "quadr",
return spell_integer(n)▼
return spell_integer(n) + " thousand"▼
else:
return spell_integer(n) + " " + bl[e] + "illion"▼
def
# (i.e. 3-digit chunks), in reverse.
▲ return spell_integer(n)
▲ return spell_integer(n) + " thousand"
yield r
▲ else:
▲ return spell_integer(n) + " " + bl[e] + "illion"
▲''' Generates the value of the digits of n in base 1000 (i.e. 3-digit chunks), in reverse. '''
raise ValueError, "spell_integer: negative input"▼
return tens[a] + nonzero("-", b)▼
elif n < 1000:▼
a, b = divmod(n, 100)
return small[a] + " hundred" + nonzero(" ", b)▼
▲ else:
enumerate(base1000_rev(n)) if x][::-1])
# example
▲def spell_integer(n):
print spell_integer(1278)</lang>
▲ raise ValueError, "spell_integer: negative input"
▲ elif n < 20:
▲ a, b = divmod(n, 10)
▲ return tens[a] + nonzero("-", b)
▲ elif n < 1000:
▲ a, b = divmod(n, 100)
▲ return small[a] + " hundred" + nonzero(" ", b)
▲ return ", ".join(reversed([big(e, x) for e, x in enumerate(base1000_rev(n)) if x != 0]))</lang>
|