Pythonの反復プロセスについて混乱しています
私は持っている:
numbers = [0,1,2,3,4,5]
for i in numbers:
v = numbers
print v
これがループの終わりですが、 C 、 C++ 、 Java では、ループ内の行が{ }
繰り返し実行されるか、中括弧が指定されていない場合はループの次のステートメントが実行されることがわかっていますが、ここで混乱しています。反復で実行される行数は? インデントに依存しますか?
Pythonの反復プロセスについて混乱しています
私は持っている:
numbers = [0,1,2,3,4,5]
for i in numbers:
v = numbers
print v
これがループの終わりですが、 C 、 C++ 、 Java では、ループ内の行が{ }
繰り返し実行されるか、中括弧が指定されていない場合はループの次のステートメントが実行されることがわかっていますが、ここで混乱しています。反復で実行される行数は? インデントに依存しますか?
Python では、括弧ではなくインデントがブロック スコープを決定するため、この例では、インデントされた両方の行がループの反復ごとに 1 回実行されます。
これは、C/Java 言語ファミリーから来たプログラマーにとって Python の最も奇妙な点の 1 つですが、すぐに慣れることができます。
Python はインデントを使用してコードのブロックを区切ります。この特定のコードを次のように考えてみてください。
numbers = [0,1,2,3,4,5]
for i in numbers: #{
v = numbers
print v
#}
これは完全に有効な Python コードであり、いくつかの異なる言語で期待される場所に中括弧付きのコメントがあります。
単一ステートメントの実行に対応する Python は次のとおりです。
numbers = [0,1,2,3,4,5]
for i in numbers: v = numbers
print v
すべてのループは実行のみですv = numbers
(;
ただし、を使用すると、同じ行にステートメントを追加できます)。
Python では、インデントが非常に重要です。コードでは、これらの行は両方とも for ループの各反復で実行されます。
v = numbers
print v
追加のメモとして、元のコードは、あなたがやりたいと思っていることをしていないと思います-それは、数字1〜5を独自の行に出力することです。次のようになります (Python 3 を使用):
numbers = [0,1,2,3,4,5]
for i in numbers:
print(i)
次のコードを実行すると:
numbers = [0,1,2,3,4,5]
v = numbers
print(v)
あなたが得るでしょう:
[0, 1, 2, 3, 4, 5]