(Полное раскрытие информации, я просматриваю учебник по Python на CodeAcademy и использую их веб-среду IDE.)
def factorial(x):
bang = 1
for num in x:
bang = bang * num
return bang
В java это работает для создания факториала из числа меньше 2147483647. Я думаю, что это должно работать на питоне, но это не так. Вместо этого я получаю сообщение об ошибке:
«Отслеживание (последний вызов последним): файл« python », строка 3, в факториале TypeError: объект 'int' не повторяется»
Возможно, я чего-то не понимаю, или, возможно, у меня неправильный синтаксис. Я проверил дальше и создал отдельную функцию под названием factorial, которая выполняет итерацию:
def factorial(x):
if x > 2:
return x
else:
return x(factorial(x-1))
Это тоже не работает, что дает мне ошибку:
"Traceback (последний вызов последним): файл" python ", строка 11, в факториале TypeError: объект 'int' не вызывается"
Я питон-новичок, но кажется, что оба они должны работать. Посоветуйте, пожалуйста, лучший способ изучить синтаксис Python ...
x(factorial(x-1))
? Для Python (и большинства других процедурных языков) он может подумать, что вы вызываетеx
как функцию. - person lurker   schedule 16.08.2013