Builder

web application developer blog

Kullanışlı Python Kestirmeleri- Python Cheat Sheet

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

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir