4

ネストされた for ループでこの奇妙な動作に遭遇しましたが、これを説明することはできません。これはpython固有のものですか、それとも私は何かを監督しているだけですか?

これは私が実行しているコードです:

for i in range(16):
    if i == 0:
        for j in range(8):
            print 'i is (if) ' + str(i)
            i = i + 1
    else:
        print 'i is (else)' + str(i)

これは私が得ている出力です:

i is (if) 0
i is (if) 1
i is (if) 2
i is (if) 3
i is (if) 4
i is (if) 5
i is (if) 6
i is (if) 7
i is (else)1
i is (else)2
i is (else)3
i is (else)4
i is (else)5
i is (else)6
i is (else)7
i is (else)8
i is (else)9
i is (else)10
i is (else)11
i is (else)12
i is (else)13
i is (else)14
i is (else)15

これは私が期待している出力です:

i is (if) 0
i is (if) 1
i is (if) 2
i is (if) 3
i is (if) 4
i is (if) 5
i is (if) 6
i is (if) 7
i is (else)8
i is (else)9
i is (else)10
i is (else)11
i is (else)12
i is (else)13
i is (else)14
i is (else)15

外側の for ループの i と内側の for ループの i は異なる変数のようですが、それは私には完全に直感に反するようです。

任意の入力 (私は Python にかなり慣れていませんが、これに関するドキュメントを見つけることができませんでした)

4

1 に答える 1