Skip to content

Instantly share code, notes, and snippets.

@trsqxyz
Created February 18, 2014 14:23
Show Gist options
  • Save trsqxyz/9071966 to your computer and use it in GitHub Desktop.
Save trsqxyz/9071966 to your computer and use it in GitHub Desktop.
speech module
FIRST_TEN = ["one", "two", "three", "four", "five", "six", "seven",
"eight", "nine"]
SECOND_TEN = ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen",
"sixteen", "seventeen", "eighteen", "nineteen"]
OTHER_TENS = ["twenty", "thirty", "forty", "fifty", "sixty", "seventy",
"eighty", "ninety"]
HUNDRED = "hundred"
def checkio(number):
FT = {str(k):v for k,v in enumerate(FIRST_TEN, 1)}
ST = {str(k):v for k,v in enumerate(SECOND_TEN)}
OT = {str(k):v for k,v in enumerate(OTHER_TENS, 2)}
HD = HUNDRED
say = list()
num = list(str(number))
length = len(num)
if length == 3:
say.append(FT.get(num[0]))
say.append(HD)
if say.append(OT.get(num[1])) is None:
if num[1] == '1':
say.append(ST.get(num[2]))
else:
say.append(FT.get(num[2]))
elif length == 2:
if say.append(OT.get(num[0])) is None:
if num[0] == '1':
say.append(ST.get(num[1]))
else:
say.append(FT.get(num[1]))
elif length == 1:
say.append(FT[num[0]])
while None in say:
say.remove(None)
return ' '.join(say)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment