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]
#Приветствую. Если пройти этот код по шагам, то выясняется, что на 40ом шаге программы n=0. После того, как происходит возврат значения : return result, result=1, а n превращается в n=1. Так вот, почему эта n превращается в единицу на 41 шаге хода программы. С чем связана смена переменной?