Bu dersteki bütün IPython Notebook'lar adresinde https://github.com/sinanonur/Python-Lectures mevcuttur ve bu adresteki içerik Türkçe'ye çevirilerek hazırlanmıştır.
Stringler sıralı metin tabanlı verilerdir ve tırnak içine alınarak ifade edilirler.
String0 = 'Just a flesh wound.'
String1 = "Just a flesh wound."
String2 = '''Just
a
flesh
wound.'''
print String0 , type(String0)
print String1, type(String1)
print String2, type(String2)
Just a flesh wound. <type 'str'> Just a flesh wound. <type 'str'> Just a flesh wound. <type 'str'>
Stringlerin indislenmesi (indexing) ve kesilmesi(slicing) daha önceden listelerde blelirtildiği gibidir.
print String0[4]
print String0[4:]
a flesh wound.
find( ) fonksiyonu verilen verinin bulunduğu indis değerini döndürür. Eğer bulunamazsa -1 döndürür. Döndürülen değeri ters indisleme değeriyle karıştırmamaya dikkat edin.
print String0.find('fl')
print String0.find('Ni')
7 -1
Dönen indis değeri girilen verinin ilk elemanıdır.
print String0[7]
f
find( ) fonksiyonu aynı zamanda indis değerleri arasında arama yapmak için de kullanılabilir.
print String0.find('t',1)
print String0.find('t',1,3)
3 -1
capitalize( ) stringin ilk elemanını büyük harfe çevirmek için kullanılır.
String3 = 'bu cümledeki ilk harfe dikkat edin.'
print String3.capitalize()
Bu cümledeki ilk harfe dikkat edin.
center( ) bir alan genişliği(field width) belirterek stringi ortalamak için kullanılır.
String0.center(70)
' Just a flesh wound. '
Boşluklar başka karakterle de doldurulabilir.
String0.center(70,'-')
'-------------------------Just a flesh wound.--------------------------'
zfill( ) bir alan genişliği belirterek sıfır ile tamamlamak için kullanılır.
String0.zfill(30)
'00000000000Just a flesh wound.'
expandtabs( ) tab karakterinin boşluğunu değiştirme imkanı sağlar. '\t' için varsayılan değer 8 boşluktur.
s = 'h\te\tl\tl\to'
print s
print s.expandtabs(1)
print s.expandtabs()
h e l l o h e l l o h e l l o
index( ), find( ) fonksiyonu gibi çalışır. Farkı find( ) fonksiyonunun -1 döndürmesi ama index( ) fonksiyonunun ValueError fırlatmasıdır.
print String0.index('Just')
print String0.index('a',0)
print String0.index('flesh',10,20)
0 5
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-17-1b7765e2f54f> in <module>() 1 print String0.index('Just') 2 print String0.index('a',0) ----> 3 print String0.index('flesh',10,20) ValueError: substring not found
endswith( ) fonksiyonu bir stringin diğer bir string ile bitip bitmediğine bakmak için kullanılır.
print String0.endswith('d')
False
Başlangış ve bitiş indisleri de beirtilebilir.
print String0.endswith('.',0)
print String0.endswith('t',0,4)
True True
count( ) fonksiyonu verilen stringdeki karakterleri sayar. Başlangıç ve bitiş indisleri girilebilir ya da boş bırakılabilir.
print String0.count('u',0)
print String0.count('u',5,10)
2 0
join( ) fonksiyonu verilen girdinin elemanları arasına bir karakter koymak için kullanılır.
'a'.join('*_-')
'*a_a-'
'*_-' girdi stringi dir. 'a' karakteri bütün karakterler arasına koyulmuştur.
join( ) aynı zamanda bir listeyi stringe dönüştürmek için de kullanılaiblir.
a = list(String0)
print a
b = ''.join(a)
print b
['J', 'u', 's', 't', ' ', 'a', ' ', 'f', 'l', 'e', 's', 'h', ' ', 'w', 'o', 'u', 'n', 'd', '.'] Just a flesh wound.
Stringe dönüştürmeden önce join( ) fonksiyonu liste elemanlarının arasına herhangi bir karakter koymak için kullanılabilir.
c = '/'.join(a)[18:]
print c
e/s/h/ /w/o/u/n/d/.
split( ) fonksiyonu stringi tekrar listeye çevirmek için kullanılır. join() fonksiyonunun tersidir.
d = c.split('/')
print d
['e', 's', 'h', ' ', 'w', 'o', 'u', 'n', 'd', '.']
split( ) fonksiyonunda aynı zamanda listenin kaç defa bölüneceği da belirtilebilir. Listenin eleman sayısı belirtilen sayının bir fazlasıdır. Çünkü sayı bölünme sayısını belirtir.
e = c.split('/',3)
print e
print len(e)
['e', 's', 'h', ' /w/o/u/n/d/.'] 4
lower( ) büyük harfleri küçük harfe dönüştürür.
print String0
print String0.lower()
Just a flesh wound. just a flesh wound.
upper( ) küçük harfleri büyük harfe dönüştürür.
String0.upper()
'JUST A FLESH WOUND.'
replace( ) fonksiyonu bir elemanı diğeriyle değiştirir.
String0.replace('Just','Yet another')
'Yet another a flesh wound.'
strip( ) sağ ve sol uçtan gereksiz elemanları silmek için kullanılır.
f = ' merhaba '
Eğer bir karakter belirtilmemişse sağ ve soldaki boşlukları siler.
f.strip()
'merhaba'
strip( ) fonksiyonu eğer bir karakter belirtilmişse, baştan ve sonran o karakterleri siler.
f = ' ***----merhaba---******* '
f.strip('*')
' ***----merhaba---******* '
Yıldızın silinmesi gerekiyor gibiydi ama silinmedi. Çünkü sağında ve slunda boşluklar yer almakta. strip fonksiyonunda karakterler sunulan sırada verilmelidir.
print f.strip(' *')
print f.strip(' *-')
----merhaba--- merhaba
lstrip( ) ve rstrip( ) strip ile aynı özelliğe sahiptir. tek farkı lstrip( ) sadece sola doğrurstrip( ) ise sadece sağa doğru siler.
print f.lstrip(' *')
print f.rstrip(' *')
----merhaba---******* ***----merhaba---
Dictionlaryler daha çok veri tabanı gibi kullanılır çünkü berilen bir şey önceden belirlenmiş bir string(ya da başka bir değer) kullanılarak indislenebilir.
Bir dictionary tanımlamak için bir değişkeni { } ya da dict()'a eşitleyin.
d0 = {}
d1 = dict()
print type(d0), type(d1)
<type 'dict'> <type 'dict'>
Dictionary liste gibi çalışır fakat kendi indisleme tarzı vardır.
d0['Bir'] = 1
d0['BirIki'] = 12
print d0
{'Bir': 1, 'BirIki': 12, 'OneTwo': 12, 'One': 1}
Böylece 'Bir' kullanarak 1 değerine erişebiliriz.
print d0['Bir']
1
İlgili iki liste bir dictionary oluşturmak için birleştirilebilir.
names = ['Bir', 'Iki', 'Uc', 'Dort', 'Bes']
numbers = [1, 2, 3, 4, 5]
zip( ) fonksiyonu iki listeyi birleştirmek için kullanılır.
d2 = zip(names,numbers)
print d2
[('Bir', 1), ('Iki', 2), ('Uc', 3), ('Dort', 4), ('Bes', 5)]
İki liste birleştirilmiştir ve her eleman eşleşen diğer listeden eşleşen elemanlardan bir tuple şeklindedir. Tuple kullanılmasının sebebi atanan değerlerin değiştirilemez oluşudur.
Daha sonra yukarıdakini dictionary'e çevirmek için dict( ) fonksiyonu kullanılır.
a1 = dict(d2)
print a1
{'Dort': 4, 'Iki': 2, 'Bir': 1, 'Uc': 3, 'Bes': 5}
clear( ) fonksiyonu yaratılan veri tabanını siler.
a1.clear()
print a1
{}
Dictionary föngü kullanılarak da oluşturulabilir.
for i in range(len(names)):
a1[names[i]] = numbers[i]
print a1
{'Dort': 4, 'Iki': 2, 'Bir': 1, 'Uc': 3, 'Bes': 5}
values( ) fonksiyonu dictionary içindeki bütün değerleri içerek bir liste döndürür.
a1.values()
[4, 2, 1, 3, 5]
keys( ) fonksiyonu bütün indisleri ya da anahtarları (key) içeren bir liste döndürür.
a1.keys()
['Dort', 'Iki', 'Bir', 'Uc', 'Bes']
items( ) dictionarydeki her elemanı bir tuple şeklinde içeren bir liste döndürür. bu zip fonksiyonu kullanıldıktan sonraki şekli döndürür.
a1.items()
[('Dort', 4), ('Iki', 2), ('Bir', 1), ('Uc', 3), ('Bes', 5)]
pop( ) fonksiyonu belirli bir elemanı çıkartmak için kullanılabilir ve çıkartılan değer bir değişkene atanabilir. fakat sadece değer(value) saklanır.
a2 = a1.pop('Dort')
print a1
print a2
{'Iki': 2, 'Bir': 1, 'Uc': 3, 'Bes': 5} 4