Преобразование чисел в слова Python

1

Я хотел бы написать фрагмент кода, который преобразует входной номер в слова. Например, если я ввожу 420, он выведет Four Two Zero. До сих пор у меня есть словарь и способ преобразования ввода в отдельные символы. Однако я не знаю, как объединить эти два и распечатать вывод. print (temp) не работает. Спасибо. Я не могу использовать num2words.

def convert( number ):
    str(word)=number
    [int(word)for word in str(number)]
    dict = {
    "0": "Zero ",
    "1": "One ",
    "2": "Two ",
    "3": "Three ",
    "4": "Four ",
    "5": "Five ",
    "6": "Six ",
    "7": "Seven ",
    "8": "Eight ",
    "9": "Nine "
    }
    print(word)
Теги:
python-3.x

3 ответа

2

Не уверен, что вам нужна функция здесь. Вы можете просто попробовать следующее:

mydict = {"0": "Zero ",
          "1": "One ",
          "2": "Two ",
          "3": "Three ",
          "4": "Four ",
          "5": "Five ",
          "6": "Six ",
          "7": "Seven ",
          "8": "Eight ",
          "9": "Nine "
          }
num = 420
# for each letter in string value of number
for ch in str(num):
    # get the letter from dictionary and print the word
    print(mydict[ch], end=' ')

Или используя одну строку со list comprehension:

print(*[mydict[ch] for ch in str(num)])
1

Просто измените свою функцию следующим образом:

def convert( number ):
    word = ""
    dict = {
    "0": "Zero ",
    "1": "One ",
    "2": "Two ",
    "3": "Three ",
    "4": "Four ",
    "5": "Five ",
    "6": "Six ",
    "7": "Seven ",
    "8": "Eight ",
    "9": "Nine "
    }
    for i in str(number):
        word += dict[i]
    return word
convert(532)
# 'Five Three Two '
0

Вы можете изменить свой код на:

def Prob0( num ):
    for temp in str(num):
        dict = {
        "0": "Zero ",
        "1": "One ",
        "2": "Two ",
        "3": "Three ",
        "4": "Four ",
        "5": "Five ",
        "6": "Six ",
        "7": "Seven ",
        "8": "Eight ",
        "9": "Nine "
        }
        print(dict[temp])

Prob0(420)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню