Rahasia utama dari blok lain di loop python

Ini adalah artikel pendek untuk pemula. Tentunya Anda tahu bahwa di Python untuk loop fordan whileunit 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 elseada pada level yang sama dengan bloknya fordan sepertinya ini adalah semacam kondisi yang berkaitan dengan daftar itu sendiri; misalnya, ketika saya fortidak menemukan catatan. Tetapi cukup mengetahui rahasia utama blok elseuntuk loop agar tidak pernah membuang waktu lagi:



Blok elsesetelah loop bukan milik loop itu sendiri, tetapi milik operator break!



Memang, blok elseakan dieksekusi dalam hal apa pun, kecuali eksekusi loop terganggu oleh operator break, returnatau 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.




All Articles