I cobbled together a function from various sources that takes an integer and returns it as its respective English word formatted as a string. The function is as follows:def int2word(num, separator=-):    Transforms integers =< 999 into English words    Parameters    ----------    num : int    separator : str    Returns    -------    words : str        ones_and_teens = {0: Zero, 1: 'One', 2: 'Two', 3: 'Three',                      4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven',                      8: 'Eight', 9: 'Nine', 10: 'Ten', 11: 'Eleven',                      12: 'Twelve', 13: 'Thirteen', 14: 'Fourteen',                      15: 'Fifteen', 16: 'Sixteen', 17: 'Seventeen',                      18: 'Eighteen', 19: 'Nineteen'}    twenty2ninety = {2: 'Twenty', 3: 'Thirty', 4: 'Forty', 5: 'Fifty',                     6: 'Sixty', 7: 'Seventy', 8: 'Eighty', 9: 'Ninety', 0: }    if 0 <= num < 19:        return ones_and_teens[num]    elif 20 <= num <= 99:        tens, below_ten = divmod(num, 10)        if below_ten > 0:            words = twenty2ninety[tens] + separator + \                ones_and_teens[below_ten].lower()        else:            words = twenty2ninety[tens]        return words    elif 100 <= num <= 999:        hundreds, below_hundred = divmod(num, 100)        tens, below_ten = divmod(below_hundred, 10)        if below_hundred == 0:            words = ones_and_teens[hundreds] + separator + hundred        elif below_ten == 0:            words = ones_and_teens[hundreds] + separator + \                hundred + separator + twenty2ninety[tens].lower()        else:            if tens > 0:                words = ones_and_teens[hundreds] + separator + hundred + separator + twenty2ninety[                    tens].lower() + separator + ones_and_teens[below_ten].lower()            else:                words = ones_and_teens[                    hundreds] + separator + hundred + separator + ones_and_teens[below_ten].lower()        return words    else:        print(num out of range)
Create the English word for a number
python;python 3.x;integer;numbers to words
There's an easier way.We have the num2words module which can be easily installed via pip:pip install num2wordsThe advantage of this module is that it supports multiple languages:en (English, default)fr (French)de (German)es (Spanish)lt (Lithuanian)lv (Latvian)en_GB (British English)en_IN (Indian English)no (Norwegian)pl (Polish)ru (Russian)dk (Danish)pt_BR (Brazilian Portuguese)More, you can even generate ordinal numbers like forty-second.A small python example for converting numbers to words using num2words looks like this:>>> from num2words import num2words>>> num2words(42)forty-two>>> num2words(42, ordinal=True)forty-secondYou can read more about what you can do using this module hereNOTE: In case somebody is wondering why this is not a code review (such as comments on the posted code), is because in the unedited question the author specifically asked if there is already a library for this.