Python 3'te Dize Fonksiyonlarına Giriş
Giriş
Python, string veri türüyle ilişkili birçok yerleşik fonksiyona sahiptir. Bu fonksiyonlar, stringleri kolayca değiştirmemizi ve manipüle etmemizi sağlar. Fonksiyonları, kodumuzdaki elemanlar üzerinde gerçekleştirdiğimiz eylemler olarak düşünebiliriz. Yerleşik fonksiyonlar, Python programlama dilinde tanımlanmış ve kullanıma hazır olan fonksiyonlardır.
Bu eğitimde, Python 3'te stringlerle çalışmak için kullanabileceğimiz çeşitli fonksiyonları inceleyeceğiz.
Ön Gereksinimler
Bilgisayarınızda veya sunucunuzda Python 3 yüklü olmalı ve bir programlama ortamı kurulu olmalıdır. Eğer bir programlama ortamınız yoksa, işletim sisteminize (Ubuntu, CentOS, Debian vb.) uygun bir yerel veya sunucu programlama ortamı kurulum ve ayar rehberlerine bakabilirsiniz.
Stringleri Büyük ve Küçük Harf Yapma
str.upper()
ve str.lower()
fonksiyonları, bir stringin tüm harflerini büyük veya küçük harfe dönüştürülmüş olarak döndürür. Stringler değişmez veri türleri olduğu için, döndürülen string yeni bir string olacaktır. String içindeki harf dışındaki karakterler değiştirilmeyecektir.
Sammy Shark
stringini tamamen büyük harfe dönüştürelim:
Bilgi: Bu eğitimin örnek kodlarını takip etmek için, yerel sisteminizde Python interaktif kabuğunu açmak için python3
komutunu çalıştırın. Ardından, >>>
isteminden sonra örnekleri kopyalayabilir, yapıştırabilir veya düzenleyebilirsiniz.
ss = "Sammy Shark"
print(ss.upper())
Çıktı:
SAMMY SHARK
Şimdi stringi tamamen küçük harfe dönüştürelim:
print(ss.lower())
Çıktı:
sammy shark
str.upper()
ve str.lower()
fonksiyonları, büyük/küçük harf uyumunu sağlamak için stringleri değerlendirip karşılaştırmayı kolaylaştırır. Örneğin, bir kullanıcı adını tamamen küçük harfle yazsa bile, bu fonksiyonlarla adı veritabanımızda olup olmadığını kontrol edebiliriz.
Boolean (Mantıksal) Metotlar
Python'da bazı string metotları, Boolean (True veya False) değerlerine dönüşür. Bu metotlar, örneğin kullanıcıların doldurması için formlar oluştururken faydalıdır. Bir posta kodu talep ediyorsak, yalnızca sayısal bir string kabul etmek isteriz; ancak bir isim talep ediyorsak, yalnızca alfabetik bir string kabul etmek isteriz.
Boolean değer döndüren birkaç string metodu vardır:
Metod true
if
str.isalnum()
String yalnızca alfanümerik karakterlerden oluşuyorsa (sembol yoksa) True döner.
str.isalpha()
String yalnızca alfabetik karakterlerden oluşuyorsa (sembol yoksa) True döner.
str.islower()
Stringin alfabetik karakterlerinin tamamı küçük harfse True döner.
str.isnumeric()
String yalnızca sayısal karakterlerden oluşuyorsa True döner.
str.isspace()
String yalnızca boşluk karakterlerinden oluşuyorsa True döner.
str.istitle()
String başlık halinde ise True döner.
str.isupper()
Stringin alfabetik karakterlerinin tamamı büyük harfse True döner.
Bu metotlardan birkaçını inceleyelim:
number = "5"
letters = "abcdef"
print(number.isnumeric())
print(letters.isnumeric())
Çıktı:
True
False
str.isnumeric()
metodunu 5
stringi üzerinde kullandığımızda True
değeri dönerken, aynı metodu abcdef
stringi üzerinde kullandığımızda False
değeri döner.
Benzer şekilde, bir stringin alfabetik karakterlerinin başlık halinde, büyük harf veya küçük harf olup olmadığını sorgulayabiliriz. Birkaç string oluşturalım:
movie = "2001: A SAMMY ODYSSEY"
book = "A Thousand Splendid Sharks"
poem = "sammy lived in a pretty how town"
Şimdi case kontrol eden Boolean metotları deneyelim:
print(movie.islower())
print(movie.isupper())
print(book.istitle())
print(book.isupper())
print(poem.istitle())
print(poem.islower())
Bu küçük programları çalıştırdığımızda şu çıktıları alırız:
movie stringinin çıktısı
False
True
book stringinin çıktısı
True
False
poem stringinin çıktısı
False
True
Karakterlerin küçük harf, büyük harf veya başlık halinde olup olmadığını kontrol etmek, verilerimizi uygun şekilde sıralamamıza ve topladığımız verileri kontrol edip gerektiğinde stringleri değiştirmemize olanak tanır.
Boolean string metotları, kullanıcıların girdilerinin belirlenen parametrelere uyup uymadığını kontrol etmek istediğimizde faydalıdır.
String Uzunluğunu Belirleme
len()
string fonksiyonu, bir stringdeki karakterlerin sayısını döndürür. Bu metot, örneğin minimum veya maksimum şifre uzunluklarını uygulamak ya da daha büyük stringleri kısaltarak belirli sınırlar içinde tutmak istediğinizde faydalıdır.
Bu metodu göstermek için, bir cümle uzunluğunda stringin uzunluğunu bulalım:
open_source = "Sammy contributes to open source."
print(len(open_source))
Çıktı:
33
open_source
değişkenini "Sammy contributes to open source."
stringine eşitledik ve ardından bu değişkeni len()
fonksiyonuna geçirdik (len(open_source)
). Daha sonra çıktıyı ekranda gösterebilmek için metodu print()
metoduna geçirdik.
Unutmayın ki, tek veya çift tırnak içinde olan herhangi bir karakter — harfler, sayılar, boşluk karakterleri ve semboller dahil — len()
fonksiyonu tarafından sayılacaktır.
join(), split(), ve replace() Metotları
str.join()
, str.split()
, ve str.replace()
metotları, Python'da stringleri manipüle etmenin birkaç ek yoludur.
str.join()
metodu, iki stringi birleştirir, ancak bir stringi diğerinden geçirerek yapar.
Bir string oluşturalım:
balloon = "Sammy has a balloon."
Şimdi bu stringe boşluk eklemek için str.join()
metodunu kullanarak bunu şu şekilde yapabiliriz:
" ".join(balloon)
Bunu yazdırırsak:
print(" ".join(balloon))
Yeni döndürülen stringde ilk string boyunca boşlukların eklendiğini fark ederiz:
Çıktı:
S a m m y h a s a b a l l o o n .
str.join()
metodunu ayrıca bir string listesini yeni bir tek string halinde birleştirmek için de kullanabiliriz.
print(" ".join(reversed(balloon)))
Çıktı
.noollab a sah ymmaS
Başka bir dizgeyi (string) ilk dizgeye eklemek istemediğimiz için tırnak işaretlerini boşluk bırakmadan birleştirdik.
str.join()
yöntemi, dizgileri birleştirmenin yanı sıra bir dizi dizgeyi (string) yeni tek bir dizgeye dönüştürmek için de kullanılabilir.
Bir liste içerisindeki dizgelerden virgülle ayrılmış bir dizge oluşturalım:
print(",".join(["sharks", "crustaceans", "plankton"]))
Çıktı
sharks,crustaceans,plankton
Eğer yeni dizgemizde dizge değerleri arasına bir virgül ve boşluk eklemek istersek, ifadeyi virgülden sonra bir boşluk bırakarak yeniden yazabiliriz: ", ".join(["sharks", "crustaceans", "plankton"])
.
Dizgeleri birleştirdiğimiz gibi, dizgeleri bölebiliriz de. Bunu yapmak için str.split()
yöntemini kullanacağız:
print(balloon.split())
Çıktı
['Sammy', 'has', 'a', 'balloon.']
str.split()
yöntemi, başka bir parametre verilmediği takdirde, dizgeleri boşluklarla ayrılmış bir liste olarak döndürür.
str.split()
yöntemini kullanarak orijinal bir dizgedeki belirli parçaları da kaldırabiliriz. Örneğin, dizgeden a
harfini kaldıralım:
print(balloon.split("a"))
Çıktı
['S', 'mmy h', 's ', ' b', 'lloon.']
Artık a
harfi kaldırıldı ve dizgeler, a
harfinin her bir instance'ının (örneğinin) bulunduğu yerlerden boşluk bırakarak ayrıldı.
str.replace()
yöntemi, orijinal bir dizgeyi alarak belirli bir değiştirme işlemi uygulayarak güncellenmiş bir dizge döndürebilir.
Diyelim ki Sammy'nin sahip olduğu balon kayboldu. Artık Sammy'nin bu balonu olmadığı için, orijinal balloon
dizgesindeki "has"
alt dizgesini yeni bir dizgede "had"
olarak değiştireceğiz:
print(balloon.replace("has", "had"))
Parantezler içinde, ilk alt dizge (substring) değiştirmek istediğimiz kısımdır ve ikinci alt dizge, ilk alt dizgeyi değiştirdiğimiz kısımdır. Çıktımız şu şekilde olacaktır:
Çıktı
Sammy had a balloon.
str.join()
, str.split()
, ve str.replace()
dizge yöntemlerini kullanarak Python'da dizgeleri daha etkili bir şekilde manipüle edebilir ve kontrol edebiliriz.
Sonuç
Bu öğretici, Python programlarınızda dizgelerle çalışmak ve onları manipüle etmek için kullanabileceğiniz yaygın yerleşik yöntemlerden bazılarını ele aldı.
Lisa Tagliaferri tarafından yazılan An Introduction to String Functions in Python 3 a Programming makalesinin düzenlenmiş çevirisi
Daha Fazla Oku:
- Sonraki Makale: Python 3'te Dizeleri Dizinleme ve Dilimleme Nasıl Yapılır
- Önceki Makale:Python 3'te Metin Nasıl Biçimlendirilir