Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Speech Module by Daniel_Cieslinski
def checkio(number):
FIRST_TEN = zip(["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"],
[1, 2, 3, 4, 5, 6, 7, 8, 9])
SECOND_TEN = zip(
["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
OTHER_TENS = zip(["twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"],
[2, 3, 4, 5, 6, 7, 8, 9])
NEXT_TENS = zip(["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"],
[1, 2, 3, 4, 5, 6, 7, 8, 9])
HUNDRED = "hundred"
number = int(number)
res=''
if int(number%100/10) == 1:
for s,i in SECOND_TEN:
if i == number%100:
res = s
number = int(number/100)
else:
for s, i in FIRST_TEN:
if i == number%10:
res=s
number=int(number/10)
if number>0:
for s, i in OTHER_TENS:
if i == number%10: res = s +' '+res
number = int(number/10)
if number != 0:
for s, i in NEXT_TENS:
if i == number:
res = s +" "+"hundred "+res
if res.endswith(' '): res= res[0:len(res)-1]
return res
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(4) == 'four', "1st example"
assert checkio(133) == 'one hundred thirty three', "2nd example"
assert checkio(12) == 'twelve', "3rd example"
assert checkio(101) == 'one hundred one', "4th example"
assert checkio(212) == 'two hundred twelve', "5th example"
assert checkio(40) == 'forty', "6th example"
assert not checkio(212).endswith(' '), "Don't forget strip whitespaces at the end of string"
Oct. 23, 2017