是否有例子Python中的for循環中的`continue`和`pass`有區別嗎?
for element in some_list:
if not element:
pass
和
for element in some_list:
if not element:
continue
我應該知道的兩個Python關鍵字之間continue
和pass
等之間的任何顯著區別?
是否有例子Python中的for循環中的`continue`和`pass`有區別嗎?
for element in some_list:
if not element:
pass
和
for element in some_list:
if not element:
continue
我應該知道的兩個Python關鍵字之間continue
和pass
等之間的任何顯著區別?
是的,他們做了完全不同的事情。 pass
根本什麼也不做,而continue
繼續下一個循環迭代。在您的示例中,如果在if
之後添加了另一個語句,則區別將變得明顯:在執行pass
之後,將執行此更多語句。在continue
之後,它不會。
>>> a = [0, 1, 2]
>>> for element in a:
... if not element:
... pass
... print element
...
0
1
2
>>> for element in a:
... if not element:
... continue
... print element
...
1
2
我完全同意你的答案。但我仍然有問題關於pass關鍵字是否需要?需要但爲什麼?謝謝 – 2015-11-09 02:52:48
@HardikGajjar:由於'pass'關鍵字沒有任何作用,它只在語法上需要縮進套件時纔有用,但不想做任何事情。一個常見的例子是,如果你想忽略一些異常,你可以使用'除了SomeException:pass'。還有很多其他用例。你不會嚴格地需要一個關鍵字,因爲你可以使用任何其他沒有做任何事情的語句(例如'0'是一個完全有效的語句,沒有效果),但是有一個關鍵字可以允許你更明確地表示不想做任何事情。 – 2015-11-11 09:04:35
在這些例子中,如果聲明是而不是最後一個循環,那麼他們有非常不同的影響。
continue
將跳回到循環的頂部。 pass
將繼續處理。
如果pass在循環的結尾處,則差異可以忽略不計,因爲無論如何流只會回到循環的頂部。
在你的例子中,沒有區別,因爲兩個語句都出現在循環結尾。 pass
只是一個佔位符,它不做任何事情(它將傳遞給下一個語句)。另一方面,continue
有一個確定的目的:它告訴循環到繼續就好像它剛剛重新啓動。
for element in some_list:
if not element:
pass
print element
是
for element in some_list:
if not element:
continue
print element
是非常不同的,是有區別的。 continue
強制循環在下一次迭代時啓動,而pass
表示「沒有代碼要在此執行」,並將繼續循環剩餘部分或循環體。
運行這些,看到了差距:
for element in some_list:
if not element:
pass
print 1 # will print after pass
for element in some_list:
if not element:
continue
print 1 # will not print after continue
是的,是有區別的。 Continue
實際上會跳過當前循環的其餘部分(返回到開頭)。 Pass
是一個空白語句,它什麼都不做。
他們之間的差異,continue
跳過循環的當前迭代,並執行下一次迭代。 pass
什麼都不做。這是一個空的語句佔位符。
我寧願給你一個例子,這會更好地闡明這一點。
>>> for element in some_list:
... if element == 1:
... print "Pass executed"
... pass
... print element
...
0
Pass executed
1
2
>>> for element in some_list:
... if element == 1:
... print "Continue executed"
... continue
... print element
...
0
Continue executed
2
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
輸出是
>>> This statement is from pass.
同樣,讓運行相同的代碼具有小的改動。
x = [1,2,3,4]
for i in x:
if i==2:
pass #Pass actually does nothing. It continues to execute statements below it.
print "This statement is from pass."
for i in x:
if i==2:
continue #Continue gets back to top of the loop.And statements below continue are executed.
print "This statement is from continue."
輸出是 -
>>> This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from pass.
This statement is from continue.
This statement is from continue.
This statement is from continue.
通行證沒有做任何事情。計算不受影響。但是繼續回到循環的頂部,以便下一次計算。
與已有的其他答案有什麼特別的區別? – 2017-11-07 16:29:16
@ S.Lott:例子:'while true:;在[python docs](http://docs.python.org/tutorial/controlflow.html#pass-statements)中通過#繁忙 - 等待鍵盤中斷(Ctrl + C)'使我感到困惑,我沒有在這種情況下,它沒有發現它的行爲相當於持續,或者其他意圖。第一句話*「通過聲明什麼都不做」*表示我的問題的所有答案,但不知何故,它沒有吸引我的眼球。 – Aufwind 2012-02-28 15:52:05