Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Second solution in Clear category for Speech Module by scanover
NUMBERS = ['', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']
DOZENS = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety']
DOZENS_1 = ['ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen',
'sixteen', 'seventeen', 'eighteen', 'nineteen']
def checkio(num):
result = []
hundreds = num // 100
dozens = (num % 100) // 10
ones = num % 10
if hundreds != 0:
result.append(NUMBERS[hundreds])
result.append('hundred')
if dozens == 1:
result.append(DOZENS_1[ones])
else:
if dozens != 0:
result.append(DOZENS[dozens])
if ones != 0:
result.append(NUMBERS[ones])
return ' '.join(result)
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"
print('Done! Go and Check it!')
Dec. 24, 2019