Birçok Python programcısı muhtemelen whiledöngülerin ve fordö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 elsemaddesi, 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 returnveya breakatlar elsemaddesini; bir continueyü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: elseBu 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 elseanahtar 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 tryifadenin tutarlılığına else:(ayrıca da bakmam gerekiyor) ve Python'un ayrılmış sözleri. Belki de seçim nedenleri elseiş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 ( elseanahtar kelime seçimiyle belirli anlambilimi nasıl bağlayacağım ), ancak bu soruya bir yerde bir bağlantı olması gerektiğini hissediyorum.
elsearaç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. elseHiçbir şey bulunursa sadece yürütülür.