k = 0
for i in range(1, 11):
k += i
print("Total = ", k) # この k は 上の k = 0 が変更されている。
Pythonでは for内部の変数がLocalではないぞの。
C++ では
for (int i = 0; i < 10; ++i) {
int k = i * 2; // kはforループ内でのみ有効
}
// kはここでは無効
for内の変数は外部では無効というコンピュータ言語が多いのではないか。詳しくは知らんが。
その後、チャッターズとの質疑応答で上のPythonのような使い方は良くないという解説がありワタクシは納得した次第である。上の例では k をグローバル変数としてPythonは処理するとか。なので変更されるのだが、このようなグローバル変数を使っての処理は良くないってさ~。
可読性の低下: グローバル変数は、コードのどこからでも変更できるため、プログラムの動作を追跡しにくくなり、バグの原因となる可能性があります。
なのだよ、ちみぃ!! だが、ワタクシのように10 ~ 50行ぐらいのコードしか書かない(書けない)愚脳にとっては、ま、いいや(笑)