Bir önceki yazımda pythonu baya övmüştüm, şimdide pythondan bahsetmemek olmazdı. Başlığımda ingilizce olarak yazdığım string, google amcanın çevirisiyle ‘dize’ oluyor. Aslında strings yada dizeler demem lazımdı ama ilki tamamiyle yabancı ikinciside pek tanıdık değil.pythondaki string fonksiyonlarını anlatmadan önce bilmeyenler için stringin ne olduğunu öğrenelim. Stringler, char’ların bir araya gelmiş halidir. char ise tek bir karakteri ifade eder. Yani örnek olarak ‘a’ bir karakter, ‘abc’ ise bir stringtir. Fakat stringimiz üç adet karakterden oluşuyor.Konuya böyle girmek istedim çünkü stringleri ayırma fonksiyonlarına gelince biraz karışabiliyor.
İlk önce pythonda bir string tanımlayalım;dize=’Kodaman’python yine yapacağını yaptı. Olabilecek en basit yol. Diğer programlama dillerindeki gibi ilk önce değerimizin ne olduğunu belirtmiyoruz. Mesela c deki gibi
char dize[7];dize=’Kodaman’; gibi yapmıyoruz. Örnek yanlış olabilir ama gidiş doğru.
Şimdi stringimizle biraz uğraşalım;print dizeBu yazdırma kodumuz 🙂 Bunu kullandığımızda bütün stringi yazdırıyoruz.
Mesela biz stringimizin sadece 3. karakterini yazdırmak istedik, bunun için stringi bir karakter kümesi olarak düşünmeliyiz.İlk karakterimiz ‘K’, sonraki ‘o’,sonraki ‘d’…Bunu programlama dili otomatik olarak sıralar ve numaralandırır. Bilmemiz gereken şudurki; ilk karakter 1 numara değil 0 numaradır.print dize[0]Bu kodun çıktısı ise sadece ‘K’ olacaktır. Çünkü biz sadece 0, yani 1. karakteri çağırdık. Eğer
print dize[2] deseydik 3. karakter yani ‘d’ gelecekti.
Şimdi ise stringimizin 2. karakteri ile 5. karkteri arasındaki karakterleri almak istedik. Bunun için stringin belli bir bölümünü alacağız;print dizi[1:4]Görüğünüz gibi oldukça basit yoldan istediğimizi aldık. Gördüğünüz gibi 2. karakter için 1, 5. için 4 ü kullandık. Çünkü onların numaraları böyleydi.
Fakat bilmemiz gereken birşey var. 2. karakter ile 5. karakter arasını aldık fakat aldığımız kısma 2. karakter dahil olurken 5. karakter dahil olmadı. Yani çıktımız: ‘oda’Buradaki bölme için kullandığımız : işaretinin daha çok marifetleri var aslında örneğin;print dize[1:] dersek 2. karakterden sonrasını alır. Yada print dize[:3] dersek ilk 3 karakteri alır. (Dikkat edilecek yer; 3 numaralı karakterimiz aslında 4. karakterdir. Fakat : işareti sondaki karakteri almıyordu)
Daha bitmediprint dize[0:6:2] dersek 0 ve 6 numaralı karakterler arasındaki karakterleri 2şer 2şer atlayarak alır. Yani çıktımız: ‘Kdm’. (Niye sondaki ‘n’ yi almadığını tekrar yazmıyorum nakarat deyip geçiyorum)
Şimdi biraz farklı örnekler görelim. Mesela istiyorumki stringimin içinde ‘a’ harfinin olup olmadığını bilmek istiyorum. Bir çoğunuzun içinden “hemen bi döngü kur, tek tek bütün karakterleri kontrol ettir” dediğinizi duyar gibiyim 🙂 Fakat pythonda bunu yapmanıza gerek yok.if ‘a’ in dize:print ‘Evet’ işte bukadar. ‘in’ komutunuda burada kullanabiliriz. Yada örneği farklılaştırarak şöylede diyebilirdik;
if ‘a’ not in dize:print ‘Evet’ buda değilse demek.
Şimdi diyelimki elimizde iki adet string var ve biz bunları birleşik yazmak istiyoruz. İşte yapacağımız şey;print dize1+dize2 Şimdi burada gördüğünüz gibi stringleri yan yana yazamak için kullanılan teknik aynı sayı toplamadada kullanılıyor. Ya biz bir sayıyla stringi toplamak istiyorsak. İşte str() burada geliyor;
sayi=15dize=’Elma’print dize+str(sayi) Aslında bu bana göre pythonun halletmesi gereken küçük bi eksiklik. Birçoğunuzun bildiği gibi mesela php de işler biraz daha iyi yürüyor. Yan yana yamak istiyorsan nokta işaretini kullanıyorsun.
Şimdi diyelimki bir stringi birden fazla defa yazmak istiyoruz.(İçinizdeki sese hayır bunda döngü kurmaya gerek yok diyin)
print dize*2Çıktımız: ‘KodamanKodaman’
Strigimizde kaç karakter olduğunu bulmak için;print len(dize) Çıktımız: ‘7’
Stringteki bütün karakterleri küçültmek için;print dize.lower() Çıktımız: ‘kodaman’ Yada bütün karakterleri büyültmek için;
print dize.upper() Çıktımız: ‘KODAMAN’
Diyelimki stringimizde sadece alfabetik harflere izin veriyoruz. Bunu kontrol etmek için;if dize.isalpha():print ‘İzin verildi’else:print ‘onaylanmadı’
Evet konunun sonunda ‘Bi şu pythona bakmak lazım’ diyorsanız bu konunun daha ayrıntılı içeriği burada.Yanlız ben burda pythonu övüyorum diye diğer dilleri kötülüyorum gibi bir sonuç çıkmasın.Ben herzaman şunu derim: “Bir şeyi kolaylaştırmak istiyorsan, onun hitap ettiği kitlenin kullanacağı dışındakileri kırpmalısın”(Aslında bunu şimdi uydurdum. Ama güzel laf bunu kullanırım ilerde)