Jawaban:
Ya, mereka melakukan hal yang sangat berbeda. pass
hanya tidak melakukan apa-apa, sambil continue
melanjutkan dengan iterasi loop berikutnya. Dalam contoh Anda, perbedaannya akan menjadi jelas jika Anda menambahkan pernyataan lain setelah if
: Setelah mengeksekusi pass
, pernyataan lebih lanjut ini akan dieksekusi. Setelah continue
itu, tidak akan.
>>> 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
kata kunci tidak melakukan apa-apa, itu hanya berguna ketika Anda secara sintaksis membutuhkan rangkaian indentasi, tetapi tidak ingin melakukan apa pun. Contoh umum adalah jika Anda ingin mengabaikan beberapa pengecualian, Anda gunakan except SomeException: pass
. Ada banyak kasus penggunaan lainnya juga. Anda tidak akan benar-benar membutuhkan kata kunci untuk ini, karena Anda dapat menggunakan pernyataan lain yang tidak melakukan apa-apa (mis. 0
Pernyataan yang benar-benar valid yang tidak memiliki efek), tetapi memiliki kata kunci untuk ini memungkinkan Anda untuk menjadi lebih eksplisit tentang tidak ingin melakukan apa pun.
pass
?
Ya, ada perbedaan. continue
memaksa loop untuk memulai pada iterasi berikutnya sementara pass
berarti "tidak ada kode untuk dieksekusi di sini" dan akan terus berlanjut melalui sisa atau badan loop.
Jalankan ini dan lihat perbedaannya:
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
Dalam contoh Anda, tidak akan ada perbedaan, karena kedua pernyataan muncul di akhir loop. pass
hanyalah pengganti, dalam arti tidak melakukan apa-apa (ia meneruskan eksekusi ke pernyataan berikutnya). continue
, di sisi lain, memiliki tujuan yang pasti: ia memberitahu loop untuk melanjutkan seolah-olah baru saja dimulai kembali.
for element in some_list:
if not element:
pass
print element
sangat berbeda dari
for element in some_list:
if not element:
continue
print element
Ada perbedaan di antara mereka, continue
melompati iterasi loop saat ini dan mengeksekusi iterasi berikutnya. pass
tidak melakukan apa-apa. Ini adalah placeholder pernyataan kosong.
Saya lebih suka memberi Anda contoh, yang akan menjelaskan ini lebih baik.
>>> 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
Ya, ada perbedaan. Continue
sebenarnya melewatkan sisa iterasi saat ini dari loop (kembali ke awal). Pass
adalah pernyataan kosong yang tidak melakukan apa pun.
Lihat dokumen python
Dalam contoh-contoh itu, tidak. Jika pernyataan itu bukan yang terakhir dalam loop maka mereka memiliki efek yang sangat berbeda.
Perbedaan antara pass dan melanjutkan dalam for loop:
Jadi mengapa harus menggunakan python?
Jika Anda ingin membuat kelas kosong, metode, atau blok.
Contoh:
class MyException(Exception):
pass
try:
1/0
except:
pass
tanpa 'lulus' dalam contoh di atas akan melempar IndentationError.
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."
Outputnya adalah
>>> This statement is from pass.
Sekali lagi, mari jalankan kode yang sama dengan perubahan kecil.
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."
Outputnya adalah -
>>> 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.
Pass tidak melakukan apa pun. Komputasi tidak terpengaruh. Tetapi terus kembali ke atas loop untuk diproses dengan perhitungan berikutnya.
Pertimbangkan seperti ini:
Lulus: Python bekerja murni berdasarkan indentasi! Tidak ada kurung kurawal yang kosong, tidak seperti bahasa lain.
Jadi, jika Anda tidak ingin melakukan apa-apa jika suatu kondisi benar, tidak ada pilihan lain selain lulus.
Lanjutkan: Ini hanya berguna jika terjadi loop. Dalam hal, untuk rentang nilai, Anda tidak ingin menjalankan pernyataan loop yang tersisa setelah kondisi itu benar untuk pass tertentu, maka Anda harus menggunakan lanjut.
pass
jika pernyataan tersebut adalah True
dan melakukan operasi jika itu False
. Ini memungkinkan pemindaian daftar multi-guna yang efisien.
pass
dapat digunakan dalam skenario ketika Anda memerlukan beberapa fungsi kosong, kelas atau loop untuk implementasi di masa depan, dan tidak ada persyaratan untuk mengeksekusi kode apa pun.
continue
digunakan dalam skenario ketika tidak ada ketika beberapa kondisi telah bertemu dalam satu lingkaran dan Anda harus melewati iterasi saat ini dan pindah ke yang berikutnya.
while True:; pass # Busy-wait for keyboard interrupt (Ctrl+C)
dalam python docs membingungkan saya dalam hal, bahwa saya tidak merasa cuaca jelas berperilaku setara dengan melanjutkan dalam hal ini atau sesuatu yang lain dimaksudkan. Kalimat pertama "Pernyataan lulus tidak melakukan apa-apa." mencirikan semua jawaban untuk pertanyaan saya, tetapi entah bagaimana itu tidak menarik perhatian saya.