Python’da Dizeler ve Dize Fonksiyonları
Dize, bir karakter setidir. Bilgisayarlar karakterleri 0’ların ve 1’lerin bir kombinasyonu olarak saklayıp işlerler. Karakterlerin bu şekilde ikili sayılara dönüştürülmesine kodlama denir. ASCII ve Unicode, popüler kodlamalardan bazılarıdır. Klavyeden bir karakter girildiğinde bilgisayarın anladığı o karakterin ASCII (ya da Unicode) tablosundaki 0 ve 1’lerden oluşan kombinasyonudur. Daha önceki yazılarda da bahsedildiği gibi çift tırnak (“ ”) ya da tek tırnak (‘ ’) arasına karakterler yazılarak string (dize) tanımlanabilir. Bu string değişkenin içerisindeki her bir karaktere indeks numarası kullanılarak erişilebileceğini daha önceki yazılarda bahsetmiştim. Örnek olması için bu yazıda da bir değişken tanımlayıp, indeks numarasını yazdığımız bir karaktere erişelim.
Örnekler
INPUT:
isim = "Mehmet"
isim[2]
OUTPUT:
'h'
Bu yazıda sizlere bahsetmek istediğim bu string ifadeler üzerinde kullanabileceğimiz fonksiyonlardır. Bunlardan ilki len() fonksiyonudur. Bu fonksiyon dizenin uzunluğunu verir.
INPUT:
sehir = "istanbul"
len(sehir)
OUTPUT:
8
in ve not in operatörlerini kullanarak, bir dize içerisindeki herhangi bir karakterin varlığını sorgulayabiliriz. in operatörü, karakter dize içerisindeyse True, değilse False sonucunu döndürür. Tam tersi olarak, not in operatörü, karakter dize içerisinde değilse True sonucunu, içindeyse False sonucunu döndürür.
INPUT:
ulke = "Türkiye"
k in ulke
OUTPUT:
True
INPUT:
ulke = "Türkiye"
y not in ulke
OUTPUT:
False
Diğer yandan, satır sonu karakterini (\n) kullanarak satırın sonlandığını belirtebilirsiniz. Böylece aynı dize içerisine yazılan ikinci cümle, bir satır aşağı alınarak çıktı olarak gösterilir. Örnek olarak:
INPUT:
print("Bugün hava yağmurluydu.\nAncak yarın güneşli olabilir.")
OUTPUT:
Bugün hava yağmurluydu.
Ancak yarın güneşli olabilir.
Sekme karakterini (\t) kullanırsak, dize içerisindeki kelimeler arasından belirgin bir boşluk bırakılır. Bu cümlelerin daha düzgün görünmesi için kullanılabilir. Örnek olarak:
INPUT:
aday_listesi = [["Gökhan","İstanbul",3.42],["Aslı","Balıkesir",1.96],
["Canan","Ankara",2.97],["Gizem","Tokat",1.96]]
print("Aday","\t","Şehir","\t","\t","Ort.")
for aday in aday_listesi:
print(aday[0],"\t",aday[1],"\t",aday[2])
OUTPUT:
Aday Şehir Ort.
Gökhan İstanbul 3.42
Aslı Balıkesir 1.96
Canan Ankara 2.97
Gizem Erzurum 1.96
Cümle içerisinde, bir değişkene ait değeri kullanabilmek için format() fonksiyonunu kullanabiliriz. Bu fonksiyonu kullanmadan da değişkenin değerini cümle içerisine yazdırabiliriz. Ancak bu her veri tipi için farklı bir karakter kullanılmasını gerektirecektir. Burada yazılanları örnek ile gösterelim.
INPUT:
gün1 = 26
gün2 = "salı"
print("Bugün ayın {0}’sı ve günlerden {1}’dır.".format(gün1,gün2))
print("---------------------------------------")
macSaati = "23.00"
print("Şampiyonlar ligi maçı %s’de başlar."%macSaati)
print("---------------------------------------")
piSayisi = 3.14
print("pi sayını %f alınız."%piSayisi)
print("---------------------------------------")
KacTL = 200
print("Yunus Emre’nin resmi %d TL’nin arka yüzünde vardır."%KacTL)
print("---------------------------------------")
print("Bugün kredi faizleri %s%f azaldı."%("%",1.5))
print("---------------------------------------")
OUTPUT:
Bugün ayın 26’sı ve günlerden salı’dır.
---------------------------------------
Şampiyonlar ligi maçı 23.00’de başlar.
---------------------------------------
pi sayını 3.140000 alınız.
---------------------------------------
Yunus Emre’nin resmi 200 TL’nin arka yüzünde vardır.
---------------------------------------
Bugün kredi faizleri %1.500000 azaldı.
---------------------------------------
upper() ve lower Fonksiyonu
Bir dizedeki tüm karakterleri büyük harfe ya da küçük harfe dönüştürmek için kullanılan fonksiyonlardır. Örnek olarak:
INPUT:
sehir1 = "Adıyaman"
sehir1.upper()
OUTPUT:
'ADIYAMAN'
INPUT:
sehir1 = "Adıyaman"
sehir1.lower()
OUTPUT:
'adıyaman'
find() Fonksiyonu
Bir kelimenin cümle içerisinde olup olmadığını kontrol edebilmek için kullanılan fonksiyondur. find() fonskiyonunun avantajı aradığımız kelimelerin hangi konumda başladığını bize söylemesidir. Yukarıda da bahsettiğim gibi in operatörü kullanarak kelimenin ya da karakterin cümle içerisinde olup olmadığını sorgulayabilirdik. Ancak, in operatörü bize aranan kelimenin ya da karakterin konumunu vermez. Örnek olarak:
INPUT:
sentence = "En sevdiğim gün Cuma’dır."
sentence.find("Cuma")
OUTPUT:
16
Aradığımız kelime ya da karakter cümle içerisinde yok ise -1 değerini sonuç olarak döndürür.
Eğer bir kelimenin herhangi bir alt kelime ya da karakter ile başlayıp başlamadığını ya da bitip bitmediğini sorgulamak istersek startswith() ve endswith() fonksiyonlarını kullanabiliriz. startswith(), kelimenin aradığımız alt kelime ya da karakter ile başlayıp başlamadığını kontrol ederken, endswith() ise bitip bitmediğini kontrol eder. True ya da False değerlerini döndürür.
INPUT:
sentence.startswith("Benim")
OUTPUT:
False
INPUT:
sentence.endswith("r.")
OUTPUT:
True
split() Fonksiyonu
Cümleyi belirli bir karakter ya da kelimeye göre parçalamak için kullanılan fonksiyondur. Cümleyi parçalayıp bir liste olarak bize geri verir. Örnek olarak:
INPUT:
sentence = "Gizemli, bir sıfattır"
sentence.split(" ")
OUTPUT:
['Gizemli', 'bir', 'sıfattır']
join() Fonksiyonu
split() fonksiyonu ile parçalara ayrılan ya da liste halinde verilen kelimeleri ya da karakterleri bir karakter ya da alt cümle kullanarak birleştirmek için kullanılan fonksiyondur. Örnek olarak:
INPUT:
sentence1 = "Haritanın fiziki şartları gereği 25derece görünmektedir."
words = sentence1.split(" ")
print("Ayrılmış hali :",words)
bosluk = " "
print("Birleştirilmiş hali : ", bosluk.join(words))
OUTPUT:
Ayrılmış hali : ['Haritanın', 'fiziki', 'şartları', 'gereği', '25', 'derece', 'görünmektedir.']
Birleştirilmiş hali : Haritanın fiziki şartları gereği 25 derece görünmektedir.
replace() Fonksiyonu
Cümle içerisindeki bir karakteri ya da kelimeyi istenilen karakter veya kelime ile değiştirmek için kullanılan fonksiyondur. Örnek olarak:
INPUT:
cumle = "Bu-bir-python-yazısıdır"
cumle.replace("-",".")
OUTPUT:
'Bu.bir.python.yazısıdır'
strip() Fonksiyonu
Kullanıcı tarafından girilen ya da metin dosyalarından alınan cümlelerin başında veya sonundaki boşlukları atmak için kullanılır. Eğer cümlelerin sadece başındaki boşluklar atılmak isteniyorsa .rstrip() fonksiyonu, eğer sadece cümle sonundaki boşluklar atılmak isteniyorsa .lstrip() fonksiyonu kullanılabilir. Örnek olarak:
INPUT:
x = " Bu cümlenin başında ve sonunda boşluklar vardır. "
x.strip()
OUTPUT:
'Bu cümlenin başında ve sonunda boşluklar vardır.'
isnumeric() Fonksiyonu
Kullanıcı tarafından girilen cümlelerin sayı değerlerinden oluşup oluşmadığını kontrol etmek için kullanılan fonksiyondur. Eğer cümle sayılardan oluşuyorsa True, oluşmuyorsa False değerini döndürür. Örnek olarak:
INPUT:
sayi = "1102"
sayi.isnumeric( )
OUTPUT:
True
INPUT:
uyeler = [["12345","Ali","10","5"],["67890","Gizem","20","7"],["10112","Mustafa","50","15"],["12134","Aslı","5","8"]]
uyeNo = input("Lütfen üye numarasını giriniz : ")
if uyeNo.isnumeric():
for deger in uyeler:
if deger[0] == uyeNo:
print("Üye numarası {0} olan, {1} adlı kişinin hesabında {2} TL bakiye bulunmaktadır. Şu zamana kadar {3} adet kitap satın
almıştır.".format(deger[0],deger[1],deger[2],deger[3]))
break;
else:
print("Bu üye numarasına ait kişi bulunmamıştır.")
else:
print("Üye Numarası sayılardan oluşmalıdır.")
OUTPUT:
Lütfen üye numarasını giriniz : 12345
Üye numarası 12345 olan, Ali adlı kişinin hesabında 10 TL bakiye bulunmaktadır. Şu zamana kadar 5 adet kitap satın almıştır.