In [1]:
import numpy as np

ones = ['','one','two','three','four','five','six','seven','eight','nine','ten']
teens = ['ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen']
tens = ['','','twenty', 'thirty','forty','fifty','sixty','seventy','eighty','ninety']

def to_english(N):
    word = ''
    if len(str(N)) == 3:
        word += ones[int(str(N)[0])] + 'hundred'
        if N%100 != 0:
            word += 'and'
    tens_place = N%100
    if tens_place > 19:
        word += tens[int(str(tens_place)[0])] + ones[int(str(tens_place)[1])]
    elif 10 <= N%100 <= 19:
        word += teens[int(str(tens_place)[1])]
    else:
        word += ones[int(str(tens_place)[0])]
    if N == 1000:
        word = 'onethousand'
    return word

sum([len(to_english(i)) for i in range(1,1001)])


Out[1]:
21124

In [1]:


In [ ]: