ProgramlamaPython Backend/Aden Geliştirici

Python'da döngülerin ve break/continue/else operatörlerinin çalışma ayrıntılarını açıklayın. Döngüdeki else nasıl çalışır?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Python'da sadece if'ten değil, for ve while döngülerinden sonra da else yazabilirsiniz. Else bloğu, döngü "normal" bir şekilde tamamlandığında—break ile değil—çalışır. Bu, örneğin, bir öğe aramanın zarif bir şekilde uygulanmasını sağlar.

Örnek:

for x in range(5): if x == 3: print('break!') break else: print('Döngü break olmadan tamamlandı') # çalışmayacak
for x in range(5): if x == 10: break else: print('Döngü break olmadan tamamlandı') # çalışacak

Bu özellik genellikle "başarısız arama" için kullanılır: eğer break gerçekleşmediyse, öğe bulunamamıştır.

Yanıltıcı soru.

Döngü tamamlandığında her zaman else bloğu mu çalışır? Peki ya döngü boşsa?

Cevap: Evet, eğer break yoksa, else her zaman çalışır, döngü hiç bir zaman bodysine girmese bile:

for x in []: print('hiçbir şey') else: print('else!') # bu yazılacak

Bu konu ile ilgili bilgi eksikliği nedeniyle yaşanan gerçek hata örnekleri.


Hikaye

Proje: Belge ayrıştırıcı.

Sorun: Bir liste içinde anahtarı aradık ve döngüden sonra else dışında "bulunamadı" bayrağı koyduk. Sonuç olarak, öğe keşfi, break tetiklenmediği zaman yanlış çalışıyordu.


Hikaye

Proje: Benzersiz jetonların oluşturulması.

Sorun: Jeton oluşturma mantığı break ile düzgün bir çıkışa bağlıydı ve else yanlışlıkla "istisnai bir durum" olarak değerlendirildi, gerçekte %99 tetikleme ile gerçekleştiği için kullanıcı doğrulama mantığını bozuyordu.


Hikaye

Proje: Ağ API'si için test eden bir betik.

Sorun: while'dan sonraki else'i yanlış anlamaktan dolayı, onu zaman aşımını işlemek için kullandık, oysa döngü break ile bitmediği için zaman aşımını yakalayamıyorduk ve bu da testlerde "sessiz" hatalara neden oluyordu.