Birçok Python programcısı muhtemelen while
döngülerin ve for
döngülerin sözdiziminin isteğe bağlı bir else:
cümle içerdiğinin farkında değildir :
for val in iterable:
do_something(val)
else:
clean_up()
Vücut else
maddesi, temizlik hareketleri belirli türdeki iyi bir yerdir ve döngü normal fesih da yürütülüyor: ile döngüsünden çıkar, Ie return
veya break
atlar else
maddesini; bir continue
yürütmeden sonra çıkılıyor . Ben sadece çünkü sadece bu biliyorum baktım ben hatırlayamıyorum, çünkü (yine) ne zamanelse
bloğu icra edilir.
Her zaman? Adından da anlaşılacağı gibi, döngü "hatası"? Düzenli fesih mi? Döngüden çıkılsa bile return
? Bakmadan asla tam olarak emin olamam.
Anahtar kelime seçimindeki belirsizliğimi suçluyorum: else
Bu anlambilim için inanılmaz derecede anımsatıcı değilim. Benim sorum "bu anahtar kelime neden bu amaç için kullanılıyor" değil (muhtemelen cevapları ve yorumları okuduktan sonra kapatmak için oy vereceğim) değil, ama anlambiliminin anlamlı olması için else
anahtar kelimeyi nasıl düşünebilirim ve ben bu yüzden hatırlıyor musun?
Bu konuda oldukça fazla tartışma olduğundan eminim ve seçimin try
ifadenin tutarlılığına else:
(ayrıca da bakmam gerekiyor) ve Python'un ayrılmış sözleri. Belki de seçim nedenleri else
işlevini açıklığa kavuşturacak ve daha akılda kalıcı hale getirecektir, ancak ismin işleve bağlandıktan sonra değil, tarihsel açıklamadan sonra değil.
Sorumun bir nüshası olarak kısaca kapatıldığı bu sorunun cevapları , birçok ilginç arka hikaye içeriyor. Sorumun farklı bir odağı var ( else
anahtar kelime seçimiyle belirli anlambilimi nasıl bağlayacağım ), ancak bu soruya bir yerde bir bağlantı olması gerektiğini hissediyorum.
else
araçlar temelde "devamlılık koşulu başarısız olursa". Geleneksel bir döngü için, devam koşulu genellikle i < 42
, bu durumda, bu bölümü şu şekilde görüntüleyebilirsinizif i < 42; execute the loop body; else; do that other thing
break
. Standart kullanım durumu, döngü bir şey ararken ve onu bulduğunda kırılır. else
Hiçbir şey bulunursa sadece yürütülür.