Python Öğreniyorum 6 – Karakter dizileri Stringler (Soru çözümlü)

16.10.2020 0 Yazar: Yönetici

Python Öğreniyorum 6 – Karakter dizileri Stringler (Soru çözümlü). Bu videomuzda karakter dizilerini – Stringleri nasıl kullanılabileceğini öğreneceğiz ve örnek soru çözümleri yapacağız.

Merhabalar. Python öğreniyorum serimizin 6.videosuna hoş geldiniz. 5.videomuzda while döngüsünün nasıl kullanılabileceğini öğrenerek örnek soru çözümleri yaptık. Bu videomuzda karakter dizilerini – Stringleri nasıl kullanılabileceğini öğreneceğiz ve örnek soru çözümleri yapacağız. Haydi başlayalım.

Stringler veya Türkçe ismiyle karakter dizileri isminden de anlaşılacağı gibi karakterlerden oluşan dizidir, günlük hayatta kullandığımız yazılardır. String oluşturmak için tek tırnak veya çift tırnak veya üç tırnak kullanılır. Dikkat edilmesi gereken nokta hangisiyle başlandı ise onunla bitirmektir, yani tek tırnakla başlandı ise tek tırnakla bitirilmelidir.

Bilgisayar Hane’nin dersleri ise şu şekilde yazılabilir:

Üç tırnak kullanarak farklı satırlarda yazı yazılabilir.

+ işareti ile farklı stringler birleştirilebilir.

String bir sayı ile çarpılabilir.

Python’da verinin tipini type komutuyla öğrenebilirsiniz.

input ile girilen veri de string tipinde olacaktır. Yazıdaki karakter sayısını bulmak için len fonksiyonu kullanılabilir.

Yazıdan sayıya veya sayıdan yazıya dönüştürme işlemleri gerekli olabilir. Yazıdan tam sayıya dönüştürmek için int komutu, sayıdan yazıya dönüştürmek için ise str komutu kullanılır.

Mesela programa girilen tam sayının kaç basamaklı olduğunu bulalım.

String Dilimleme

Stringler karakter dizileridir ve her bir karakterin dizi içerisinde bir yeri vardır, bu indeks olarak isimlendirilir. indeks numarası 0’dan başlar ve soldan sağa doğru artar. Örneğin:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
B i l g i s a y a r H a n e

s = ‘Bilgisayar Hane’

indeks numaraları kullanılarak istenilen karaktere ulaşılabilir. Bunun için köşeli parantezler kullanılır.

s[0] == ‘B’

s[5] == ‘s’

indeks numaralandırmaya sondan da başlanılabilir. Bu durumda -1 den başlanılır.

-15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1
B i l g i s a y a r H a n e

s[-4] == ‘H’

s[-8] == ‘y’

Olmayan bir indeks numarası yazıldığında hata oluşur: IndexError: string index out of range

İki sayı kullanılarak bir aralık alınabilir, 1.sayı dahil 2.sayı dahil değildir.

s[5:10] == ‘sayar’

Bu kullanımda kullanılan sayılar maksimum indeks sayısından büyük ise hata oluşmaz.

Burada negatif indeksler kullanılabildiği gibi karışık da kullanılabilir.

İkinci sayı yazılmazsa sonuna kadar, birinci sayı yazılmazsa baştan alır.

s[5:] == ‘sayar Hane’

İki sayı da yazılmazsa string tamamen alınır.

s[:] == s

Üç sayı kullanılırsa, 1.sayıdan 2.sayıya kadar 3.sayı miktarınca atlayarak alınır.

s[1:10:2] == ‘igsyr’

 

Üçüncü sayı negatif alınırsa sondan başlar. Örneğin:

s[::-1] == ‘enaH rayasigliB’

String Metodları

 

‘a’ in ‘bilgisayarhane’ True ‘a’ ‘bilgisayar’ da var mı? Varsa True, yoksa False
‘a’ not in ‘bilgisayarhane’ False ‘a’ ‘bilgisayar’ da yok mu? Yoksa True, varsa False
‘Bilgisayar’+’ ‘+’Hane’ ‘Bilgisayar Hane’ + birleştirmek için kullanılır.
‘Hane’ * 3 ‘HaneHaneHane’ * String sayı adedince kopyalanılır
‘bilgisayarhane'[5] ‘s’ 5.ci indeksli karakteri verir
‘bilgisayarhane'[0:10:2] ‘bliaa’ 0’dan 10’a kadar 2 atlayarak alır
len(‘bilgisayarhane’) 14 Karakter sayısını verir
‘bilgisayarhane’.find(‘s’)) 5 Soldan ilk bulunan ‘s’ in indeksini verir
‘bilgisayarhane’.rfind(‘a’)) 11 Sağdan ilk bulunan ‘a’ nın indeksini verir
‘bilgisayarhane’.replace(‘a’, ‘A’) ‘bilgisAyArhAne’ Bütün bulunan ‘a’ ları ‘A’ ya yer değiştirir.
‘bilgisayarhane’.count(‘a’)) 3 ‘a’ nın tekrarlanma sayısını verir
‘bilgisayarhane’. startswith(‘b’)) True ‘b’ ile başlıyormu?
‘bilgisayarhane’. endswith(‘b’)) False ‘b’ ile bitiyormu?
‘bilgisayar’ += ‘hane’ ‘bilgisayarhane’ ‘bilgisayar’ a ‘hane’ eklenir
‘123’.isdigit() True Bütün karakterler sayı mı?
‘bilgisayarhane’.isalpha() True Bütün karakterler harf mi?
‘bilgisayar-hane’.isalnum() False Bütün karakterle sayı veya harf mi?
‘BILGISAYARHANE’.lower() ‘bilgisayarhane’ Bütün harfleri küçültür
‘bilgisayarhane’. upper () ‘BILGISAYARHANE’ Bütün harfleri büyültür
‘bilgisayarhane  ‘.strip() ‘bilgisayarhane’ Başta ve sonda bulunan boşlukları siler. Ayrıca lstrip – sadece soldan, rstrip sadece sağdan siler
‘bilgisayar’.ljust(15, ‘-‘) ‘bilgisayar—–‘ ‘-‘ eklenilerek karakter sayısı 15’e tamamlanır. rjust diğer taraftan ekler.
bool(‘bilgisayar’) True String boş değilse True, boşsa False

Ayrıca 3 tane önemli metod daha bulunmaktadır ki, bu metodlar bir sonraki listeler konusuyla da ilişkilidir. Bunlar split, join ve list metodlarıdır.

 ‘bilgisayar hane’.split() – [‘bilgisayar’, ‘hane’] String i boşluklardan ayırarak listeye dönüştürdü. split() parantezleri içerisinde bölünme stringi de belirtilebilir.

‘bilgisayar hane’.split(‘a’) – [‘bilgis’, ‘y’, ‘r h’, ‘ne’]

‘-‘.join([‘bilgi’, ‘sayar’, ‘hane’]) – bilgi-sayar-hane join ise listedeki stringleri belirtilen stringle birleştirir.list(‘bilgisayar’) – [‘b’, ‘i’, ‘l’, ‘g’, ‘i’, ‘s’, ‘a’, ‘y’, ‘a’, ‘r’] list string deki her karakteri ayırarak bir liste oluşturur. Bütün metodlara ulaşmak için print(dir(str))şeklinde yazabilirsiniz.

Son olarak f-string ile string formatlamaya göz atalım. formatted string.

f-string değişkenlerin değerleri alır ve string içerisine yerleştirir.

Burada değişkenlerde başka, liste veya sözlük elemanları, nesne metodları, temel aritmetik işlemler ve hatta fonksiyon çağrılması yapılabilir.

Ayrıca sayıların düzenli olarak görüntülenmesinde de sıklıkla kullanılır.

Soru Çözümleri

  1. Kelime sayısı

Girilen yazıdaki kelime sayısını bulan programı yazınız. Kelimelerin arasında boşluk bulunmaktadır.

Giriş:
Bilgisayar Hane bilgisayar dersleri
Çıkış:
4

  1. En uzun kelime

Girilen yazıdaki en uzun kelimeyi ve uzunluğunu yazan programı yazınız.

Giriş:
BilgisayarHane bilgisayar dersleri
Çıkış:
BilgisayarHane 14

  1. Palindrom yazı

Girilen yazı palindrom ise Evet, değilse Hayır yazan programı yazınız. Yazıdaki boşluklar hesaba katılmayacak.

Palindrom: soldan sağa ve sağdan sola okunduğunda aynı olan yazıdır.

Giriş:
Kasayla bal yasak
Çıkış:
Evet

  1. Şehir oyunu

Programa birinci şehir ismi girilir ve daha sonra ikinci şehir ismi girilir. Birinci şehrin son harfi ile ikinci şehrin ilk harfi aynı ise yeni şehir okumaya devam edilir. Daha önceki ikinci şehir birinci gibi kabul edilir ve son girilen şehir ikinci şehir olur. Böylece Kural sağlandığı sürece şehir ismi girilmeye devam edilir. Kural bozulduğu zaman en son girilen şehir, yani kuralı bozan şehir yazılır.

Giriş:
aydın
nigde
erzurum
manisa
kayseri
Çıkış:
kayseri

  1. Kullanıcı ismi

Kullanıcı ismi sadece harf, rakam ve alt çizgi(_) içerebilir. Eğer kurallara uygunsa program OK yazar, değilse ilk hatalı karakter yazılır.

Giriş:
bilgisayar_123
Çıkış:
OK

Giriş:
bilgisayar*123
Çıkış:
*