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.
for döngüsünde else kullanımı
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ı")
- 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
is ile == aynı şey değil
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
- 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
- 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)]
enumerate() ile hem index hem eleman
enumerate() ile hem index hem elemanListede 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)
zip() ile listeleri paralel gezebilirsin
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_}")
*args ile dinamik parametre yapısı
*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))
- 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
- 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 thisPython öğ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.
Sonraki Adim: Bunlari da Oku
Bu yaziyi tamamladiysan, bir sonraki seviyeye gecmek icin su iceriklerle devam etmeni oneririz:
Ucretsiz Seviye Analizi ile Baslayalim
Mevcut seviyenizi hizlica analiz edip size en uygun ders planini birlikte cikaralim.