Python3: рекурсивная функция не возвращает значение в режиме компилятора - PullRequest
0 голосов
/ 03 марта 2020
def factorial(n):
    if n == 0:
        return(1)
    else:
        return(n * factorial(n-1))

factorial(5)

Этот код не возвращает факториал 5 или любое другое значение, когда я запускаю его в компиляторе, но возвращает правильное значение при запуске в режиме интерпретатора.

То же самое происходит и с другими программами где я использую рекурсию

Ответы [ 2 ]

1 голос
/ 03 марта 2020

На самом деле, это - это , возвращающее его, просто ничто не использует возвращаемое значение.

В интерактивном интерпретаторе , REPL (a) выведет значение выражения, если оно не None.

То есть не в случае, когда выполняется скрипт, вам нужно явно распечатать его:

print(factorial(5))

(a) Это Read-Eval-Print-Loop, и вы должны дополнительные уведомление об этом Print бит, это важно в этом контексте: -)

0 голосов
/ 03 марта 2020

Попробуйте напечатать свой результат. Пример: print(factorial(5))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...