Я хотел бы написать фрагмент кода, который преобразует входной номер в слова. Например, если я ввожу 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)
Не уверен, что вам нужна функция здесь. Вы можете просто попробовать следующее:
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)])
Просто измените свою функцию следующим образом:
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 '
Вы можете изменить свой код на:
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)