Python String Değişkenler
Python'da string (metin, yazı vb.) ifadeler tırnak (") ya da üst ayraç (') işareti arasında tanımlanmış ifadelerdir. Bir harften ya da harfler dizisinden oluşabilir.
Bu tarz değişkenleri print() fonksiyonu kullanarak ekrana yazdırabilirsiniz:
print("Merhaba")
print('Merhaba')
Çok Satırlı Değer Yazmak
Art arda üç tırnak ("""""") kullanarak birden fazla satır içeren değerler yazabiliriz. İfadeyi tamamlamak için yine üç tırnak kullanırız.
a = """Burada
birkaç satırlı bir
değişken görüyorsunuz!"""
print(a)
Yukarıdaki örnekte üç tane üst ayraç (''') da kullanılabilir.
String Aynı Zamanda Bir Harf Dizisidir
Birçok programlama dilinde olduğu gibi Python dilinde de string değerler harfleri ifade eden küçük parçalara ayrılırlar. Ancak Python, C# daki gibi char değişkenine sahip değildir. Sonuçlar da string olacaktır.
String dizisindeki bir elemana ulaşmak için köşeli parantezden faydalanılır.
a = "Merhaba Dünya!"
print(a[1]) # e harfini verir
Metnin Bir Kısmını Elde Etmek
Bir string ifadenin belli bir kısmını alabilirsiniz. Bunun için köşeli parantez içinde kesme işleminin başlayacağı pozisyonu ve kaç karakter alınacağı belirtilmelidir.
b = "Merhaba Dünya!"
print(b[2:5])
Yukarıdaki kod çalıştırıldığı zaman derleyici ekrana rha yazdıracaktır. r harfi dizinin 2. elemanıdır (ilk eleman 0 ile belirtilir). İki noktadan sonra belirtilen 5 ise kaçıncı pozisyona kadar eleman ekleneceğidir. 5 dahil değildir. Bu durumda r = 2, h = 3, a = 4 olduğu için uygulama rha şeklinde bir çıktı verecektir.
Bu işlemi tersten de yapmamız mümkün. Bunun için karakter uzunluğundan kaç harf geride olduğu ve kaça kadar gideceği yine köşeli parantez içinde belirtilir.
b = "Merhaba Dünya!"
print(b[-5:-2])
Kod çalıştırıldığı zaman ekrana üny yazdırır. "Merhaba Dünya!" ifadesinin karakter uzunluğu 14'tür. -5. karakter 14 - 5 = 9. karakterdir (ü). -2. karakter ise 14 - 2 = 12. karakterdir. Bu "a" karakteridir. Ancak a karakteri dahil edilmeyecektir. Bu durumda -5 = ü, -4 = n, -3 = y olmak üzere derleyici üny harflerini yazdıracaktır.
String Karakter Uzunluğunu Bulmak
len() fonksiyonu ile bir string değerin kaç karakterden oluştuğunu elde edebiliriz.
a = "Merhaba Dünya!"
print(len(a)) # 14
String Yardımcı Fonksiyonları (Metotları)
Python, stringlerle işlemlerinizde kullanabileceğiniz birçok fonksiyon içerir. Bunlardan bazıları:
Fonksiyon | Tanım | Python Kodu | Çıktı |
---|---|---|---|
strip() | Boşlukları temizler | a = " Merhaba Dünya! " a.strip() |
"Merhaba Dünya!" |
lower() | Harfleri küçültür | a = "Merhaba Dünya!" a.lower() |
"merhaba dünya!" |
upper() | Harfleri büyütür | a = "Merhaba Dünya!" a.upper() |
"MERHABA DÜNYA!" |
replace() | Harfleri değiştirir | a = "Merhaba Dünya!" a.replace("M", "N") |
"Nerhaba Dünya!" |
split() | Dizeye dönüştürür | a = "Merhaba Dünya!" a.split(" ") |
["Merhaba","Dünya!"] |
Not: replace() fonksiyonunda parantez içinde ilk olarak değişecek, sonra yerine getirilecek belirtilir. split() fonksiyonunda parantez içerisinde dizeye dönüştürürken metni bölecek harfe yer verilir.
Bir Değer Olup Olmadığını Sorgulamak
Bir ifadenin veri içerisinde geçip geçmediğini anlamak için in ve not in kullanılır.
txt = "Akdeniz Bölgesinde dağlar denize paraleldir"
x = "paralel" in txt
print(x)
y = "paralel" not in txt
print(y)
Yukarıdaki kod çalıştırıldığında x'in True, y'nin False olduğu görülecektir.
String Değerleri Birleştirmek
Metin içeren iki veriyi birleştirmek için artı (+) kullanılır.
a = "Merhaba"
b = "Dünya!"
c = a + " " + b
print(c)
age = 36
txt = "My name is John, I am " + age
print(txt)
String Biçimlendirme (Format)
Daha önceki derslerimizde metin içeren bir veri ile sayı içeren verinin artı (+) kullanılarak birleştirilemediğinden bahsetmiştik. Bu işlemi gerçekleştirmek için format() fonksiyonundan faydalanılabilir.
format() yöntemi ile kıvrımlı parantez {} ile ifade edilen yer tutuculara değerler yerleştirir.
yas = 36
metin = "Benim adım Murat, ve ben {} yaşındayım!"
print(metin.format(yas))
Bu şekilde farklı türlerde sınırsız değeri metin içerisinde kullanabiliriz.
adet = 3
urun = 567
fiyat = 49.95
siparis = "Ben {} parça {} numaralı üründen {} TL karşılığında alacağım."
print(siparis.format(adet, urun, fiyat))
Eğer metinde kullanmak istediğimiz değerlerin doğru sıra ile yansıtılmasını istersek {} yerine {0}, {1}, {2}... gibi numaralandırarak yazabiliriz.
adet = 3
urun = 567
fiyat = 49.95
siparis = "Ben {0} parça {1} numaralı üründen {2} TL karşılığında alacağım."
print(siparis.format(adet, urun, fiyat))
Yukarıdaki örnekte {0} = 3, {1} = 567, {2} = 49.95'i ifade etmektedir.
F-Strings
F-String, Python 3.6'da tanıtıldı. ve şimdi dizeleri biçimlendirme için tercih edilen bir yoldur.
Bir ipi bir f-string olarak belirtmek için, sadece bir koyun f
İsmenin önünde Kelimenin ve kıvrımlı braketler ekleyin {}
da Değişkenler ve diğer operasyonlar için yer tutucular.
txt = f"My name is John, I am {age}"
print(txt)
Fiyatı 2 desimal ile görüntüleyin:
txt = f"The price is {price:.2f} dollars"
print(txt)
print(txt)
Kaçış (Escape) Karakteri ("
)
Metin yazarken bazı karakterlerin kullanılması sorun yaratabilir. Örneğin içinde üst ayraç (') geçen "Ankara'nın" kelimesini tek tırnak ile ifade ettiğimizde derleyici hata verir.
Söz Dizimi Hatası
metin = 'Ankara'nın'
Bu gibi durumlarda kaçış işareti ('
) kullanarak derleyicinin oradaki karakteri dikkate almaması sağlanmalıdır. Yukarıdaki örneği şu şekilde yazarsak hatayı düzeltmiş oluruz:
txt = 'Ankara'nın'
Karakter | Anlamı |
---|---|
' | Üst ayraç |
\ | Ters eğik çizgi |
n | Yeni satır |
r | Giriş (enter) |
t | Sekme |
b | Geri tuşu |
Kaynak