Форум сайта python.su
0
def f(n): print("Начинаю. n =", n) if n == 0: result = 1 else: x = n - 1 print("n =", n) sub_result = f(x) print("/n =", n) result = sub_result * n print("Заканчиваю. n =", n, "result =", result) return result x = int(input("Введите число: ")) print(f(x))[i][/i]
Отредактировано DmFors (Март 6, 2020 05:01:51)
Офлайн
253
Смена связана с возвратом из функции. На 40 итерации у вас 40 вложенных друг в друга функций в каждой из них свой x со своим значением. точное расположение в памяти можете посмотреть при пмощи
print(id(x),x)
Офлайн