Python, kestirmeleri ile ünlü bir dildir. Python, C syntax’ını kullanan dillerden geçenler için sürprizlerle doludur. Bu yazıda kısa kısa bu kestirmelerden bahsetmek istiyorum. Bu blog yazısı bir nevi cheat sheet olsun.
Veri Değiştokuşu
x=6 y=5 x,y=y,x print x >>> 5 print y >>> 6
Teksatırlık if
print "Merhaba" if True else "Dünya" >>> Merhaba
Birleştirmeler
list1= ["Pazartesi", "Salı"] list2 = ["Çarşamba", "Perşembe"] print list1 + list2 >>> ['Pazartesi', 'Salı', 'Çarşamba', 'Perşembe'] print str(1) + " dünya" >>> 1 dünya print `1` + " dünya" >>> 1 dünya print 1, "dünya" >>> 1 dünya print list1, 1 >>> ['Pazartesi', 'Salı'] 1
Sayılar İçin Kestirmeler
#Tam Bölme (aşağı yuvarlama) print 5.0//2 >>> 2 # 2 üssü 5 print 2**5 >> 32
Ondalıklı sayılarla bölme yaparken dikkatli olmak lazım
x = 2 if 3 > x > 1: print x >>> 2 if 1 < x > 0: print x >>> 2
Sayıların Karşılaştırılması
Python’un ile iki sayı aralığında olma durumu karşılaştırması kadar pratik bu işi yapan başka bir dil görmedim.
x = 2 if 3 > x > 1: print x >>> 2 if 1 < x > 0: print x >>> 2
İki diziyi aynı anda döngüye sokabilirsiniz
grup1 = ["Beşiktaş", "Fenerbahçe"] grup2 = ["Galatasaray", "Trabzonspor"] for takim1, takim2 in zip(grup1, grup2): print takim1+ " vs. " + takim2 >>> Beşiktaş vs. Galatasaray >>> Fenerbahçe vs. Trabzonspor
Bir diziyi kolayca doldurabilirsiniz
Örneğin 1-100 arasındaki çift sayılardan oluşan bir dizi yapalım
cift = [number for number in range(1,100) if number%2 == 0]
Yada hazır bir dizi oluşturmak istiyorsunuz
satir = [0]*8 print satir >>> [0,0,0,0,0,0,0,0] satranc_tahtasi = [satir] * 8 print satranc_tahtasi >>> [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0]]
Dizileri parçalamak da çok kolay
x = [1,2,3,4,5,6] #İlk 3 print x[:3] >>> [1,2,3] #Aradaki 4 print x[1:5] >>> [2,3,4,5] #Son3 print x[-3:] >>> [4,5,6] #Çift indexliler 0. - 2.- 4. print x[::2] >>> [1,3,5] #Tek İndexliler 1. - 3. - 5. print x[1::2] >>> [2,4,6]
Collections Modülü
Bu ilginç modül, python’un standart veri türleri için özel kullanımlık sınıfları içeriyor. Örneğin, Counter Facebook HaceCup 2013’de sorularn bir sorunun çözümü için oldukça kullanışlı bir yoldu. 🙂
from collections import Counter print Counter("hello") >>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Itertools Modülü
Python’da iterator ihtiyacını karşılayan, çok kullanışlı bir modül.
Aşağıdaki örnek bir list’in kombinasyonunu oluşturuyor. Takımların ligdeki karşışaşması gibi 🙂
from itertools import combinations takimlar = ["Galatasaray", "Beşiktaş", "Fenerbahçe", "Trabzonspor"] for game in combinations(teams, 2): print game >>> ('Galatasaray', 'Beşiktaş') >>> ('Galatasaray', 'Fenerbahçe') >>> ('Galatasaray', 'Trabzonspor') >>> ('Beşiktaş', 'Fenerbahçe') >>> ('Beşiktaş', 'Trabzonspor') >>> ('Fenerbahçe', 'Trabzonspor')
Tek satırlık fonksiyon Lamda:
Şu fonksiyonu:
def kare(x): return x**2 print kare(8) >>> 64
Lamda ile tanımlarsak:
kare = lamda x: x**2 kare(8) >>> 64