私は少し疲れていたので、文字列は不変だった場合、私はちょうどテストを中心に遊んでいた: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
これは、構文エラーを生成するための多くのコードです。可能な限り小さなコードで同じエラーを生成し、再帰と文字列を忘れてください。 –
'x()'の再帰呼び出しの後に 'y'を印刷してみてください。変更されていないことがわかります。 'x()'関数呼び出しで 'y'に代入されていないキーワードarg' y'を使用しています。 – AChampion