この場合、range()はどのようにコールを区別しますか?'range()'は内部的にどのように動作しますか?
例:
def ex():
list = [1,2,3,4]
for val in range(len(list)):
print(val)
break
for val in range(len(list)):
print(val)
break
出力 - 要するに
0
0
、私の質問は、なぜ出力歩留まりこの方法はないでしょうか?
0
1
「ループの最初の」における範囲の最初の呼び出し()の間に、コールが「範囲(LEN(リスト))」、 範囲の最初の呼び出しで()内'second for loop'では、 'first for loop'の範囲()への2回目の呼び出しに相当する 'range(len(list))'が呼び出されます。 range()は、 'first for loop'ではなく 'second for loop'からの呼び出しであるかどうかをどのように知っていますか?
'range()' 1 argで、0から始まり、 'arg'までインクリメントするイテレータを返します。最初のforループによって繰り返し呼び出されることはありません。最初のループから抜け出し、新しいループを開始し、0から始まるイテレータを返す 'range()'をもう一度呼び出します。 – AChampion
なぜその出力が得られますか?他のループがオフの場所ではループは開始せず、最初の繰り返しを中断します。 – Li357
あなたのタイトルの質問に対する答えは、使用しているPythonのバージョンによって異なります。 Python 3の 'range'はPython 2とは異なります。また、識別子として 'list'を使用しないでください。これは、組み込みの名前を上書きします。 –