- 23 Eyl 2016
- 2,001
- 11
Merhaba. Dün bir yazıyı okurken karşıma for-else kullanımı geldi. İlk başta daha önce hiç görmediğim için bunun bir hata olduğunu, if-else yazılmak istendiğini düşündüm ama sonrasında böyle bir kullanımın da olduğunu anladım. Sonrasında da çok kullanılmadığı için çoğu kişinin bilmediğini düşündüğüm için bu konuyu açmaya karar verdim. Ayrıca bu kullanımın varlığını bilen kişiler için bile kafa karıştırıcı olabilir, bu yüzden bilen kişilere de faydalı olabilir.
Bu kullanım genelde if koşullarındaki else kullanımı ile karıştırılıyor. Farklarını bir örnek ile açıklayalım:
Evet, görebileceğiniz gibi iki else de aynı gibi gözüküyor. Bu yüzden insanların iki durumda da else'in atlanmasını beklemesi oldukça normal fakat örnekte de görüldüğü gibi bu yanlış. Döngülerde else kullandığımızda, yapılan iş bittikten sonra çalıştırılacak kodu ifade ediyoruz.
Bunun aynısını while döngüsünde de kullanabiliriz. Yine döngü sonunda else içinde yazılan kod çalıştırılacakır.
Hata Yakalarken else
Hata yakalarken de işimiz bittiğinde yapacağımız işlem için else kullanabiliyoruz fakat finally varken neden else? Çünkü else, sadece hiçbir hata olmazsa çalışıyor. finally ise ne olursa olsun çalışıyor.
Bu kullanım genelde if koşullarındaki else kullanımı ile karıştırılıyor. Farklarını bir örnek ile açıklayalım:
Kod:
[COLOR=#177702]In [[B][COLOR=#52FD55]1[/COLOR][/B]]: [B]if[/B] [B]True[/B][COLOR="White"]:[/COLOR]
...: print[COLOR="white"]([/COLOR][COLOR="Sienna"]'1'[/COLOR][COLOR="white"])[/COLOR]
...: [B]else[/B][COLOR="white"]:[/COLOR]
...: print[COLOR="white"]([/COLOR][COLOR="sienna"]'0'[/COLOR][COLOR="white"])[/COLOR]
[COLOR="white"]1[/COLOR]
In [[B][COLOR=#52FD55]2[/COLOR][/B]]: [B]for[/B] [COLOR="White"]i[/COLOR] [B][COLOR="Magenta"]in[/COLOR][/B] [1][COLOR="white"]:[/COLOR]
...: print[COLOR="white"]([/COLOR][COLOR="white"]i[/COLOR][COLOR="white"])[/COLOR]
...: [B]else[/B][COLOR="white"]:[/COLOR]
...: print[COLOR="white"]([/COLOR][COLOR="sienna"]'Done!'[/COLOR][COLOR="white"])[/COLOR]
[COLOR="White"]1
Done![/COLOR][/COLOR]
Evet, görebileceğiniz gibi iki else de aynı gibi gözüküyor. Bu yüzden insanların iki durumda da else'in atlanmasını beklemesi oldukça normal fakat örnekte de görüldüğü gibi bu yanlış. Döngülerde else kullandığımızda, yapılan iş bittikten sonra çalıştırılacak kodu ifade ediyoruz.
Bunun aynısını while döngüsünde de kullanabiliriz. Yine döngü sonunda else içinde yazılan kod çalıştırılacakır.
Hata Yakalarken else
Hata yakalarken de işimiz bittiğinde yapacağımız işlem için else kullanabiliyoruz fakat finally varken neden else? Çünkü else, sadece hiçbir hata olmazsa çalışıyor. finally ise ne olursa olsun çalışıyor.
Yararlanılan Kaynaklar:
docs.python.org
python-notes.curiousefficiency.org
stackoverflow.com
docs.python.org
python-notes.curiousefficiency.org
stackoverflow.com