Banyak programmer Python mungkin tidak menyadari bahwa sintaks dari while
loop dan for
loop menyertakan else:
klausa opsional :
for val in iterable:
do_something(val)
else:
clean_up()
Tubuh else
klausa adalah tempat yang baik untuk beberapa jenis tindakan pembersihan, dan dijalankan pada terminasi loop normal: Yaitu, keluar dari loop dengan return
atau break
melewatkan else
klausa; keluar setelah continue
menjalankannya. Aku tahu ini hanya karena saya hanya melihat ke atas (lagi), karena saya tidak pernah bisa mengingat saat ini else
klausul dijalankan.
Selalu? Pada "kegagalan" dari loop, seperti namanya? Pemutusan hubungan kerja reguler? Bahkan jika loop keluar dengan return
? Saya tidak pernah bisa sepenuhnya yakin tanpa mencarinya.
Saya menyalahkan ketidakpastian yang terus-menerus saya pada pilihan kata kunci: Saya menemukan else
sangat tidak kesalahan untuk semantik ini. Pertanyaan saya bukanlah "mengapa kata kunci ini digunakan untuk tujuan ini" (yang mungkin akan saya pilih untuk ditutup, meskipun hanya setelah membaca jawaban dan komentar), tetapi bagaimana saya bisa memikirkan else
kata kunci sehingga semantiknya masuk akal, dan saya dapatkah karena itu mengingatnya?
Saya yakin ada cukup banyak diskusi tentang ini, dan saya bisa membayangkan bahwa pilihan dibuat untuk konsistensi dengan klausa try
pernyataan else:
(yang saya juga harus melihat ke atas), dan dengan tujuan tidak menambah daftar Kata-kata Python cadangan. Mungkin alasan untuk memilih else
akan memperjelas fungsinya dan membuatnya lebih mudah diingat, tapi saya setelah menghubungkan nama dengan fungsi, bukan setelah penjelasan historis semata.
Jawaban atas pertanyaan ini , yang secara singkat ditutup oleh pertanyaan saya sebagai duplikat, berisi banyak cerita belakang yang menarik. Pertanyaan saya memiliki fokus yang berbeda (bagaimana menghubungkan semantik spesifik else
dengan pilihan kata kunci), tetapi saya merasa harus ada tautan ke pertanyaan ini di suatu tempat.
else
berarti pada dasarnya, "jika kondisi kelanjutan gagal". Dalam perulangan tradisional, kondisi kelanjutan biasanya i < 42
, dalam hal ini, Anda dapat melihat bagian itu sebagaiif i < 42; execute the loop body; else; do that other thing
break
. Case use kanonik adalah ketika loop mencari sesuatu, dan rusak ketika menemukannya. Ini else
dieksekusi hanya jika tidak ada yang ditemukan.