Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
def countdown(n):
if n == 0:
return "go"
return str(n) + countdown(n - 1)
print(countdown(3))321go
- Ждать
123go, будто цифра самого глубокого вызова идёт первой: каждый вызов ставит своюstr(n)перед результатом следующего, поэтому впереди3. - Ждать
3210go: приn == 0базовый случай сразу возвращает"go", а строка, добавляющаяstr(n), не выполняется, поэтому0не добавляется.
- Что произойдёт при вызове
countdown(-1)? - Как изменить функцию, чтобы она возвращала
go123?