範圍()如何區分正在進行的呼叫?'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
期間)在「第一個for循環」第一次調用的範圍(,該呼叫是「範圍(LEN(列表))」, 並且在到的範圍中的第一個呼叫() 'second for loop',這個調用是'range(len(list))',它等於第二次調用'first for loop'中的range()。 range()如何知道這個調用是從'second for loop'而不是'for first for loop'?
'range()'帶有1個參數,返回一個迭代器,從0開始,直到'arg'遞增。第一個for循環不會重複調用它。然後你打破第一個循環,開始一個新的循環,再次調用'range()'返回一個從0開始的迭代器。 – AChampion
爲什麼它會產生輸出?循環不會從另一個停止的位置開始,並且在第一次迭代中斷裂。 – Li357
答案(標題中的問題)取決於你使用的Python版本。 Python 3'range'與Python 2不同。另外 - 不要使用'list'作爲標識符。它會覆蓋一個內置的名稱。 –