Apakah ada perbedaan yang signifikan antara dua kata kunci python continue
dan pass
seperti dalam contoh
for element in some_list:
if not element:
pass
dan
for element in some_list:
if not element:
continue
Saya harus sadar?
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.Jawaban:
Ya, mereka melakukan hal yang sangat berbeda.
pass
hanya tidak melakukan apa-apa, sambilcontinue
melanjutkan dengan iterasi loop berikutnya. Dalam contoh Anda, perbedaannya akan menjadi jelas jika Anda menambahkan pernyataan lain setelahif
: Setelah mengeksekusipass
, pernyataan lebih lanjut ini akan dieksekusi. Setelahcontinue
itu, tidak akan.sumber
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 gunakanexcept 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 sementarapass
berarti "tidak ada kode untuk dieksekusi di sini" dan akan terus berlanjut melalui sisa atau badan loop.Jalankan ini dan lihat perbedaannya:
sumber
continue
akan melompat kembali ke atas loop.pass
akan melanjutkan pemrosesan.jika pass ada di akhir untuk loop, perbedaannya dapat diabaikan karena aliran hanya akan kembali ke atas loop.
sumber
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.sangat berbeda dari
sumber
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.
sumber
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
sumber
Dalam contoh-contoh itu, tidak. Jika pernyataan itu bukan yang terakhir dalam loop maka mereka memiliki efek yang sangat berbeda.
sumber
Perbedaan antara pass dan melanjutkan dalam for loop:
Jadi mengapa harus menggunakan python?
Jika Anda ingin membuat kelas kosong, metode, atau blok.
Contoh:
tanpa 'lulus' dalam contoh di atas akan melempar IndentationError.
sumber
Outputnya adalah
Sekali lagi, mari jalankan kode yang sama dengan perubahan kecil.
Outputnya adalah -
Pass tidak melakukan apa pun. Komputasi tidak terpengaruh. Tetapi terus kembali ke atas loop untuk diproses dengan perhitungan berikutnya.
sumber
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.
sumber
pass
jika pernyataan tersebut adalahTrue
dan melakukan operasi jika ituFalse
. 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.sumber