Python Karakter Dizileri

Merhaba Arkadaşlar,
Mobilhanem.com da Python Dersleri serisinin bu dersinde Python da Karakter Dizileri ve Metotlarının ne olduğunu ve bunlarla  ilgili uygulamalar yapmaya çalışacağım. Hadi başlayalım o zaman.

Karakter Dizleri

Daha önceki derslerimizde de karakter dizilerinin ne olduğunu ve nasıl kullanıldığını kısaca anlatmıştım. Tekrar açıklarsak karakter dizileri Python da adında anlaşılacağı karakterlerden oluşur ve bu karakter dizileri immutable yani değiştirilemez veri tipidir. Bu demek oluyor ki biz karakter dizilerine ekleme çıkarma ve değiştirme gibi işlemler yapamıyoruz.

Karakter Dizilerinin Kullanımı

Karakter dizilerini biz tırnak içinde tanımlıyoruz ve bunu üç farklı şekilde yapıyorduk.

  • Tek tırnak
  • Çift tırnak
  • Üç tırnak

Bunları daha önceki derslerde detaylı bir şekilde anlatmıştım ben derste anlatmayacağım eğer siz eksiğiniz olduğunu düşünüyorsanız buradan o ders ulaşabilirsiniz.

Karakter Dizilerinin Metotları

Her derste yaptığımız gibi dir() fonksiyonu ile karakter dizilerinin metotlarını yazdıralım;

Diğer derslerde yaptığımız gibi bu derste de __X__ şeklindeki özel metotları dışındaki metotları teker teker örneklerle göstermeye çalışacağım.

Capitalize Metodu:

Bu metot bir Karakter dizisi içindeki ilk harfi büyük harfe çevirir.

Title Metodu:

Capitalize metodu karakter dizinin ilk harfini büyük harfe çeviriyordu bu metot ise Karakter dizisi içindeki bütün kelimelerin ilk harfini büyük harfe çevirir.

Count Metodu:

Bu metot bir karakter dizisi içindeki istenilen karakterden kaç tane olduğunu bulmaya yarar.

Upper Metodu:

Bu metot karakter dizisi içindeki bütün küçük harfleri büyük harfe çevirir.

Lower Metodu:

Bu metot da upper metodunun tersine bütün büyük harfleri küçük harfe çevirir.

Swapcase Metodu:

Bu metot eğer harf küçük ise büyük harfe çevirir eğer büyükse küçük harfe çevirir.

Center Metodu:

Bu metot ile belirtildiği miktar kadar karakteri sağdan ve soldan boşluk bırakarak ortalar.

Eğer sadece sağında veya solunda boşluk bırakmak istiyorsanız; rjust ve ljust metotlarına bakabilirsiniz.

Zfill Metodu:

Biz center, rjust ve ljust metotları ile dizinin sağında veya solunda boşluk atıyorduk bu metot ile karakter dizimizi karakter belirttiğimiz karakter sayısından ne kadar az ise başına o kadar sıfır ekler örnekle gösterince daha iyi anlayacaksınız.

Biz karakter dizinin 8 karakterli olmasını istiyoruz ama karakter dizisi 6 karakterli olduğu için 2 tane sıfır başa ekledi.

Replace Metodu:

Bu metot Karakter dizisi içindeki bir karakteri başka bir karaktere çevirir örneğin:

E harflerini x harfleri ile değiştirdim.

Not:

Biz  bu metotlar ile büyük harfe çevirme küçük harfe çevirme karakterleri değiştir gibi işlemler yaptık ama burada dikkat etmeniz gereken bir şey var karakter dizileri değiştirilemez veri türü olduğu için aslında değiştirmiyor sadece bize o şekilde gösteriyor hemen bir örnekle göstereyim.

Gördüğünüz gibi karakter dizisi değişmiyor sade bize o şekilde gösteriyor.

Startswith Metodu:

Adında anlaşılacağı gibi bu metot karakter dizinin belirlediğimiz karakter ile başlayıp başlamadığını sorguluyor ve buna göre bize True veya False değerler veriyor.

Biz karakter dizisinin M harfi ile başlayıp başlamadığını kontrol ettik. Doğru olduğu için bize True değeri verdi. Peki kafanıza şu şekilde bir şey takıldı mı sadece bir karakter mi kontrol ediyor diye. Hemen göstereyim

Gördüğünüz gibi birden fazla karakter ile kontrol edebiliyoruz.

Endswith Metodu:

Bu metot da Startswith metodunun aksine istenilen karakter veya karakterler ile bitip bitmediğini kontrol ediyor.

Isalpha Metodu:

Bu metot ise bir karakter dizisinin alfabetik olup olmadığını kontrol ediyor.

Bize True veya False değer veriyor.

Peki karakter dizimiz şu şekilde  olsaydı ne olurdu:

Gördüğünüz gibi karakter dizleri sayı olduğu için False sonucu verdi.

Isdigit Metodu:

Bu metot da Isalpha metodunun tersine karakter dizinin bir sayısal bir değer olup olmadığını kontrol ediyor.

Isalnum Metodu:

Biz Isalfa ile karakter dizinin alfabetik karakterlerden Isdigit ile de sayısal dizi olup olmadığını kontrol ediyorduk. Eğer karakter dizisi hem alfabetik hem de sayısal yani numerik değer alıyorsa biz alfabetik olup olmadığını kontrol etmeye çalıştığımızda içinde numerik karakter olduğu için False değeri veriyordu bu sefer tam dersini yaptığımızda yine false değeri veriyordu. İşte bu metot Karakter dizinin hem alfabetik hem de alfa numerik olup olmadığını kontrol ediyor.

Eğer şu şekilde yaparsak;

Gördüğünüz gibi alfabetik ve numerik dışında karakter girince False değeri verir.

Find Metodu:

Bu metot karakterin karakter dizisi  içinde kaçıncı indekste olduğunu bulan metottur. Eğer aranılan karakter, Karakter dizisi içinde yoksa geriye -1 değeri döndürür.

Burada dikkat etmeniz gereken şey bu metot soldan sağa doğru okur bu yüzden ilk gördüğü karakteri aldı.

Eğer biz istediğimiz  aralıkta arama yapmasını belirtirsek o zamano aralıkta karakteri arar.

Rfind Metodu:

Bu metot find metodu ile aynı işlevi yapar ama find metodunun tersine sağdan sola doğru okur.

Index Metodu:

Bu metot find metodu ile aynı işlevi yapar aralarında ki tek fark index metodu aranılan karakter yoksa hata mesajı verir.

Rindex Metodu:

Bu metot ise index metodunun tersine sağdan sola doğru okur.

Join Metodu:

Bu metot birleştirme işlevini yapıyor.

Veya şu şekilde yapabiliriz.

Yada elimizde şu şekilde bir liste olduğunu düşünelim

Ben liste şeklinde değil de aralarında virgüller şeklinde göstermek istiyorum

Split Metodu:

Bu metot join metodunun tersine karakter dizileri parçalar.

Translate ve Maketrans Metodu:

Bu iki metot birbiriyle bağlantılı metotlardır. Bunun için bir örnekle anlatayım.

Onun için sezar şifreleme kullandım. Elimizde şu şekilde bir metin var;

Aüknoçtoç dçüç fknçeçn ızezp brnuç ğiğt; Aünç sboğbuğ pğ glbğ jçbtğv ğglbrtuyp, ğvöğ.Eb, eğppğvlp eğjğppğölp ğolpgğ rogyıy nlül,Blcğ eğppğvl sboğ eğjğppğö ğglbrtuyp, ğvöğ.Şğnğtolilplp lflpgğ cğjlt cçtçt ağtöğc dlcğ,O cğjltl r üğnğtoğ uğp dlt ğglbrtuyp, ğvöğ.

Anahtar:3

şeklinde şifreledim  eğer hedef ile kaynak değiştirirsem eski haline getirmiş olacağım  o zaman yapalım:

Aşıklarla başa çıkacak gücün yoksa eğer;
Aşka öyleyse ne diye hayret ediyorsun, etme.

Ey, cennetin cehennemin elinde olduğu kişi,
Bize cenneti öyle cehennem ediyorsun, etme.

Şekerliğinin içinde zehir zarar vermez bize,
O zehiri o şekerle sen bir ediyorsun, etme.

Bu şekilde gerçek metni elde ettik. Bir dersin daha sonuna geldik eğer siz iyice oturmak istiyorsanız bolca uygulama yapın bunun için buradan faydalanabilirsiniz.

Mobilhanem.com da Karakter Dizileri ve Metotları dersinin  sonuna geldik bir sonraki yazımızda görüşmek üzere. Eksik yada yanlış gördüğünüz yada anlamadığınız yerler için çekinmeden ulaşabilirsiniz.

Bütün Python derslerine buradan ulaşabilirsiniz.

Cahit İşleyen

Fırat Üniversitesi Yazılım Mühendisliği
Python ve Linux sever.
Çay tiryakisi

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?