я просто играл испытания, если струны были неизменны, потому что я был немного уставшим: D и сделал эторекурсивные вызовы и переменные ошибки присваивания [Python]
def x(string = "a", y = 0):
if y == 5:
return
else:
string += "x"
print(string)
x(string, y = y + 1)
print(string)
x()
и я просто интересно, почему это работает, но
def x(string = "a", y = 0):
if y == 5:
return
else:
string += "x"
print(string)
x(string, y += 1)
print(string)
x()
Не работает (разница в присвоении переменной y в рекурсивном вызове). Почему это синтаксическая ошибка, они просто делают то же самое?
Синтаксическая ошибка означает, что python не может принять этот ввод в своей грамматике. – gzc
Это много кода для создания синтаксической ошибки. Попытайтесь произвести ту же ошибку с минимальным количеством кода, забудьте о рекурсии и строках. –
Попробуйте напечатать 'y' после рекурсивного вызова' x() ', и вы обнаружите, что он не изменился. Вы используете ключевое слово arg 'y', не присваиваемое' y' в вызове функции 'x()'. – AChampion