ホームページ > バックエンド開発 > Python チュートリアル > For ループの反復変数の変更が Python で期待どおりに機能しないのはなぜですか?それを修正するにはどうすればよいですか?

For ループの反復変数の変更が Python で期待どおりに機能しないのはなぜですか?それを修正するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-24 01:15:10
オリジナル
781 人が閲覧しました

Why Doesn't Modifying a For Loop's Iteration Variable Work as Expected in Python, and How Can It Be Fixed?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート