Python Gizli İpuçları
Bu yazımızda Python programlama dilinin bazı gizli ipuçlarından bahsedeceğiz. Bu ipuçları sayesinde Python'u daha etkili ve verimli bir şekilde kullanabilirsiniz.


Python Gizli İpuçları
Python Bilip de Bilmediğin 10 Şey
Python öğrenmeye başladığında başta her şey çok kolay gibi gelir. `if`, `for`, `print`... Ama Python’un içine girdikçe, pek çok gizli cevherle karşılaşırsın. Bu yazıda, öğrencilerimin de sık sık “bunu hiç bilmiyordum hocam!” dediği 10 basit ama şaşırtıcı özelliği seninle paylaşacağım.
1. `for` döngüsünde `else` kullanımı
Döngü tamamlandıysa (yani `break` ile çıkılmadıysa), `else` bloğu çalışır. Genellikle bir şey aranıyorsa ve bulunamazsa bu blok devreye girer. Else bloğunu bu amaçla kullanmak daha makul bir yaklaşım.
for i in range(5): if i == 10: break else: print("10 bulunamadı")
2. Tek satırda değişken takası
Python’da klasik `temp` değişkeni kullanmadan iki değişkenin değerlerini kolayca takas edebilirsin. Ey gidi eski günler, swap algoritmasıyla büyüdük. Şimdi bunlar birer birer yitip gitti...
a, b = 5, 10 a, b = b, a
3. `is` ile `==` aynı şey değil
`==` değerleri karşılaştırır, `is` ise nesnelerin bellekteki yerlerini. Bu fark özellikle listeler, sözlükler gibi yapılarda önemlidir. Bu konu çok detaylı, girersem çıkamam diye korkuyorum. Bi ara bunu da yazalım...
a = [1, 2] b = [1, 2] print(a == b) # True print(a is b) # False
4. Boş yapılar False sayılır
Python’da `[]`, `""`, `0`, `None` gibi değerler koşullarda `False` kabul edilir. Truthy ve Falsy değerleri öğrenin arkadaşlar. Bunu adam gibi öğrendiğinizde birçok meselenin daha iyi yerine oturduğunu göreceksiniz.
if []: print("Boş liste") # Çalışmaz
5. Hem süslü hem güçlü: List Comprehension
Kısa ama etkili bir şekilde liste oluşturmak isteyen cengaver öğrencilerimin tercihi... Başlarda pek bulaşmayın derim. Özellikle all ve any fonksiyonları ile birlikte kullanıldığında çok etkili oluyor. Ama ilk başta anlaması zor olabiliyor. List comprehension, Python’un en güçlü özelliklerinden biridir arkadaşlar. Bu özellik sayesinde, tek satırda liste oluşturabilir ve işlemler yapabilirsiniz. Dikkatli olun. çarpmasın...
squares = [x**2 for x in range(10)]
6. `enumerate()` ile hem index hem eleman
Listede hem elemanlara hem de index"lerine ihtiyacın varsa `enumerate()` kullanmalısın. Bunu ilk kim aklettiyse tebrik ediyorum. Çok işimizi kolaylaştırıyor.
for i, val in enumerate(["elma", "armut"]): print(i, val)
7. `zip()` ile listeleri paralel gezebilirsin
İki veya daha fazla listeyi aynı anda dolaşman gerekiyorsa, `zip()` tam da bunun için var. İsmi de çok akılda kalıcı, bayağı manidar. Hani fermuar, montun iki yakasını birleştirir ya, herelde ondan geliyor. Ya da öyle bir şey işte.
adlar = ["Ali", "Ayşe"] notlar = [85, 92] for ad, not_ in zip(adlar, notlar): print(f"{ad}: {not_}")
8. `*args` ile dinamik parametre yapısı
Bir fonksiyona kaç tane argüman geleceğini bilmiyorsan, `*args` ile esnek hale getirebilirsin. Bu da müptelası olunacak özelliklerden he. Yabana atmamak lazım.
def topla(*sayilar): return sum(sayilar) print(topla(1, 2, 3, 4))
9. Tuple/List/Set unpacking özelliği
Python’da bir tuple, liste veya set içindeki elemanları tek satırda değişkenlere atayabilirsin. Böylelikle ilgili elemanlara daha kolay erişebilir ve yönetebilirsin. Bunu ilk defa javascriptte görmüştüm. Çok hoşuma gitmişti. Ama python bunu daha da ileriye götürmüş. Kullanın, kullandırın.
a, b, c = (1, 2, 3) print(a, b, c) # 1 2 3 a, b, c = [1, 2, 3] print(a, b, c) # 1 2 3 a, b, c = {1, 2, 3} print(a, b, c) # 1 2 3
10. Python’un gizli şiiri: Zen of Python
Python’un felsefesini merak ediyorsan `import this` yazarak Zen of Python’a ulaşabilirsin. Minimalist ve açık kodun özüdür. Meraklı yazılımcılar için bir hazine niteliğindedir.
import this
Python öğrenirken sadece yazmak değil, yazdığını anlamak, neden böyle çalıştığını kavramak da önemlidir. Derslerimde de bu tarz az bilinen ama çok işe yarayan bilgileri paylaşıyorum. Aklımdayken toparlıyayım ve kamuya açayım dedim. Sormak istediğiniz bir şey olursa, bana ulaşmaktan çekinmeyin.