Python での反復変数の変更を再考する
Python の for ループを使用してシーケンスを反復するとき、変数を変更しようとすると、予期しない動作が発生する可能性があります。反復変数。次の Python コードを考えてみましょう:
for i in range(0, 10): if i == 5: i += 3 print(i)
期待される出力:
0 1 2 3 4 8 9
ただし、実際の出力は異なります:
0 1 2 3 4 8 6 7 8 9
なぜ ' の値は変化するのかループ内で変更がありません。それを修正するにはどうすればよいですか?
その理由は、変更方法にあります。ループはPythonで動作します。各ループ反復には、新しいスコープの作成と反復変数への新しい値の割り当てが含まれます。ループ内で反復変数を変更すると、現在の反復内の値にのみ影響し、後続の反復には影響しません。
意図した動作を実現するには、代わりに while ループを使用できます。修正されたコードは次のとおりです。
i = 0 while i < 10: # Perform operations and modify 'i' as needed if i == 5: i += 3 print(i) # Increment 'i' manually within the loop i += 1
このアプローチでは、単一のスコープが作成され、ループの実行全体を通じて 'i' への変更が保持されるようになります。
以上がFor ループの反復変数の変更が Python で期待どおりに機能しないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。