Python'da metinsel tüm veriler string olarak adlandırılır ve kısaca str olarak ifade edilir. String verileri öğrenmeden önce tüm veri tiplerine (data types) göz atalım.
Python'da 7 temel veri tipi (data type) mevcuttur:
Her bir veri tipinin kendine özgü özellikleri vardır.
Şimdi PyCharm'ı çalıştıralım ve New Project ile yeni bir proje oluşturalım.
Projemizin adını PythonDataTypes olarak belirleyelim ve diğer özellikleri görseldeki gibi bırakalım. Projenizi masaüstünüzde oluşturmanızı tavsiye ederim.
Main.py içindeki tüm kodları silebilirsiniz.
a = "Hello World" ve b = 'Hello World' şeklinde iki farklı değişken oluşturabilir ve print fonksiyonu ile bu değişkenleri yazdırabilirsiniz. Python'da string (metinsel) değişkenler oluştururken daima tırnak işareti (") ya da tek tırnak (') kullanıyoruz.
Kodları çalıştırmak için Run düğmesine tıklamalısınız. Ya da klavye kısayolu olarak SHIFT + F10'u kullanabilirsiniz. Kodları yazarken bir alt satıra geçmek için de SHIFT + ENTER klavye kısayolunu kullanabilirsiniz.
Bir değişkenin veri tipini öğrenmek için type() fonksiyonunu kullanmalıyız. type() fonksiyonunu çıktı olarak görebilmek için daima print() fonksiyonu içerisine yazıyoruz.
Bir önceki kodlarımızın veri tiplerini öğrenmek istediğimizde print() fonksiyonu içerisine type() fonksiyonunu yazabiliriz.
Bu şekilde iki veri tipinin de str yani string (metinsel) veri tipinde olduğunu öğrenebiliriz.
Diyelim ki c değişkenini tek tırnak (') içerisinde I'm zinzin. olarak tanımlamak isteyelim. Fakat bu kodu çalışdırdığımızda hata alacağız. Çünkü I'm ifadesindeki tek tırnak Python tarafından metin ifadesinin bittiği olarak algılanacaktır.
Bu tür sorunlardan kurtulabilmek için ilk kaçış karakterimiz olan \ (ters slaş) karakterini tek tırnaktan önce kullanmalıyız. Ters slaş işaretini kullanabilmek için klavyemizde SAĞ ALT ve Soru İşareti düğmelerine birlikte basmalıyız. Sağ ALT düğmesi bazı klavyelerde ALT GR olarak da gösterilmektedir.
Metinleri alt alta yazdırmak için \n kodlarını kullanabiliriz. \n "next line" yani bir sonraki satır anlamına gelmektedir.
Eğer çok uzun metinsel ifadeleri alt alta yazdırmak istiyorsak ''' (Üç Tırnak) işaretini kullanabiliriz.
String ifadeleri birleştirmek için + (artı) operatörünü kullanmalıyız. Yukarıdaki örnekte f, g ve h olmak üç farklı string değişkeni tanımladık ve artı operatörü ile bu üç değişkeni i değişkeninde birleştirdik.
Dilersek değişkenleri kullanmadan da metinsel ifadeleri birleştirebiliriz. Fakat birleştirme sırasında " " şeklinde boşluk değerlerini de birleştirmeyi unutmuyoruz.
PyCharm UTF-8 (Unicode) özelliği sayesinde Türkçe ve diğer birçok yabancı dili destekleyecektir. ç, ğ, ş gibi harflerin yazımında herhangi bir sorun çıkmayacaktır.
Fakat Visual Studio Code UTF-8'e ayarlı olmasına rağmen Türkçe karakterlerde sorun çıkartacaktır. Elbette bu sorunu araştırıp çözebiliriz fakat PyCharm'ın bir diğer avantajı da bizi bu tür sorunlarla uğraştırmamasıdır.
len() fonksiyonu length (uzunluk) kelimesinin kısaltması olup bir değişkene ait verinin kaç karakterden oluştuğunu göstermektedir.
Yukarıdaki örnekte mystring adlı yeni bir değişken tanımladık ve bu değişkene ait string veri uzunluğunun 15 karakterden oluştuğunu görebiliriz.
Eğer 0'dan 5. karaktere kadar olan tüm karakterleri yazdırmak istersek değişken adından sonra [0:5] yazmamız yeterlidir. Python'da buna slicing (dilimleme) denilmektedir. Python index'ler 0'dan başlar. Bu örnekte 0. 1. 2. 3. ve 4. karakterleri yazdırdık. Dikkat ederseniz 5. karakter olan f harfi dahil değil.
Bunu köşeli parantezler içerisine 0 (sıfır) koymadan da yapabiliriz. [:5] kodunun anlamı 5. karakterden önceki tüm karakterleri yazdır demektir.
Beşinci karakterden sonraki tüm karakterleri yazdırmak istersek [5:] ifadesini yazmak yeterlidir.
Sadece cde karakterlerini yazdırmak istersek [2:5] dilimlemesini yapmamız yeterli. Unutmayın, Python'da index'ler 0'dan başlar. Bu sebeple c harfi (a:0), (b:1) ve (c:2) indeks sıralamasına göre 2. sırada olacaktır.
Eğer tüm karakterleri 2 kez atlayarak yazdırmak istersek :: kullandıktan sonra 3. parametre olarak 2 yazmamız yeterlidir. Bu sayede indeksi 2 ve 2'nin katlarına denk gelen tüm karakterler atlanacak ve acegikmo ifadesi yazdırılacaktır.
Eğer sadece 5. karakteri yazdırmak istersek mystring[5] ifadesini yazmalıyız. Python'da buna indexing (indeksleme) denilmektedir.
Bu ve bundan sonraki konularımızda immutability (değişmezlik) kavramına sıklıkla değineceğiz. Python'da bazı veri tipleri immutability özelliğine sahiptir. Bunlardan biri de string'lerdir. Yukarıdaki örnekte a değişkenine "Deneme" adlı string bir veri atadık. Bu verinin ilk harfi olan D'yi Z ile değiştirmek istedik. Kodu yazdırdığımızda hata aldık. Bu şekilde string değişkenlerin immutability özelliğine sahip olduğunu görebilirsiniz.
Sadece string değişkenler üzerinde uygulanabilen birçok metod bulunmaktadır. Yukarıdaki örnekte a değişkenine "zinzin" adlı bir string değer atadık. upper() fonksiyonu ile bu değişkenin verisini büyük harflerle yazdırdık.
Diğer tüm string metodlarını incelemek için W3Schools'un String Metodları sayfasını ziyaret edebilirsiniz.
Python'da tek satır yorum yazarken # (diyez) işaretini kullanmamız yeterlidir.
Yorumları kodlardan sonra da yazabiliriz.
Çok uzun yorumlarda ''' (üç kesme işareti) ya da """ (üç tırnak işareti) kullanabiliriz.
f-string'ler Python 3.6 sürümü ile gelen metin özelliklerinden biridir.
Yukarıdaki örnekte name ve age olmak üzere iki değişken tanımladık. Bu değişkenleri yazdırmak istersek f"" içerisinde {} (köşeli parantezler) ile değişkenlerimizi kullanmamız yeterlidir. Bu şekilde değişkenlerimizi metinsel ifadelerin içerisinde kullanabiliriz.
Daha önce bunu format() fonksiyonu ile yapabiliyorduk. Fakat artık f-string'ler ile bu işlem çok daha kolay.
Evet, Python'da string ifadeleri bu şekilde. Şimdi bu derste öğrendiklerimizi tekrar mahiyetinde aşağıdaki uygulamaları yapabilirsiniz.
Uygulama 01:
Yukarıdaki kodları kopyalayınız ve editörünüze yapıştırınız. a ve b değişkenlerinin tiplerini yazdırınız.
Değişkenlerin tiplerini bulmak için type() fonskiyonu içerisine değişken adlarını yazmamız yeterlidir. İki değişkenin de tipi
<class 'str'>olarak string tipinde yazdırılacaktır.
Uygulama 02:
Yukarıdaki kodları kopyalayınız ve editörünüze yapıştırınız.
"Adım zinzin. Yaşım 36. İstanbul'da oturuyorum." olacak şekilde yazdırınız.
Bu tür durumlarda Python'da f-string'leri kullanmamız yeterlidir. Kodları yukarıdaki gibi yazdığımızda
Adım zinzin. Yaşım 36. İstanbul'da oturuyorum.çıktısını elde edeceğiz.
Uygulama 03:
Yukarıdaki kodları kopyalayınız ve editörünüze yapıştırınız.
İfadenin içerisindeki "Türk" kelimesini yazdırınız.
Bir metin ifadesinin içindeki belirli karakterleri yazdırmak için slicing (dilimleme) yapmalıyız. Python'da karakterler 0'da başladığı için 9. karakterden 13. karaktere (13 hariç) kadar olan tüm karakterleri yazdırdığımızda
Türkçıktısını elde edeceğiz.