Ini adalah artikel pendek untuk pemula. Tentunya Anda tahu bahwa di Python untuk loop for
dan while
unit disediakan else
. Dan ada banyak kebingungan dengan blok ini, karena aksinya sekilas tidak intuitif. Anda harus menghabiskan sedikit waktu atau melihat dokumentasi setiap kali menemukan:
for f in files:
if f.uuid == match_uuid:
break
else:
raise FileNotFound()
Kapan akan ada pengecualian: kapan file tidak ditemukan? Kapan ditemukan? Kapan daftar itu kosong? Pertanyaan ini sulit dijawab, karena bloknya else
ada pada level yang sama dengan bloknya for
dan sepertinya ini adalah semacam kondisi yang berkaitan dengan daftar itu sendiri; misalnya, ketika saya for
tidak menemukan catatan. Tetapi cukup mengetahui rahasia utama blok else
untuk loop agar tidak pernah membuang waktu lagi:
Blok else
setelah loop bukan milik loop itu sendiri, tetapi milik operator break
!
Memang, blok else
akan dieksekusi dalam hal apa pun, kecuali eksekusi loop terganggu oleh operator break
, return
atau raise
.
Jika Anda membaca contoh di atas seperti ini: "jika file memiliki uuid yang kita butuhkan, maka akhiri loop, jika tidak lempar pengecualian", maka semuanya jatuh ke tempatnya.