2016-03-12 3 views
0

написать функцию num_to_word, которая принимает num как параметр, эта функция должна преобразовать параметр в строку. ДЛЯ ПРИМЕРА num_to_word (234) должен возвращать два три четыре. , пожалуйста, помогите мне.преобразовывать числа в слова простым способом

def num_to_word(num): 
    result = '' 
    literals = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] 
    num = num.str() 
    for i in range (0, len(num)): 
     result += literals[num[i]] + ' ' 
    return result; 

num_to_word(1390) 

это ошибка я получаю

Traceback (most recent call last): 
    File "python", line 9, in <module> 
    File "python", line 4, in num_to_word 
AttributeError: 'int' object has no attribute 'str' 
+0

Просьба поделиться тем, что вы пробовали до сих пор, и какую ошибку вы получаете. – Gogo

+0

function num_to_word (num) { var result = ''; var literals = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']; num = num.toString(); для (var i = 0; i

+0

что мой код в javascript, я хочу преобразовать его в python –

ответ

1

Вы можете сделать это, работает очень хорошо для меня.

def num_to_word(num): 
    num_dict = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'} 
    return ' '.join([num_dict[x] for x in str(num)]) 
+0

Что делать, если я хочу, чтобы он печатал число после преобразования –

+0

пользователь «печатал» вместо «return». –

+0

def num_to_word (num): num_dict = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four' , '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'} print '. .join ([num_dict [x] для x в str (num)]) num_to_word (345) Я сделал это таким образом, но получаю эту ошибку Traceback (последний последний звонок): Файл «python», строка 3 print '' .join ([num_dict [x] для x в str (num)]) ^ SyntaxError: недействительный синтаксис вместо трех четырех пяти –

0

Были ошибки. Я изменил ваш код, вам должно быть хорошо идти.

int.str() не является функцией питона, и когда вы преобразовали Int в строку, то literal[num[i]] будет literal[string], и именно там была ошибка. И вам понадобится распечатать при вызове, чтобы увидеть результат.

def num_to_word(num): 
    result = '' 
    literals = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'] 
    num = str(num) 
    for i in range(len(num)): 
     result += literals[int(num[i])] + ' ' 
    return result 

print num_to_word(1390) 
Смежные вопросы