Herkese tekrardan selamlar, öncelikle derslere devam etme disiplinini gösterdiğiniz için sizi tebrik ederim. Eğer önce bu derse geldiyseniz ilk dersimiz Pythonda sayılar ve değişkenlere de mutlaka göz atmalısınız. Bugün ki dersimizin konusu pythonda string oluşturma ve indexleme. Pythonda stringler bir veri tipi olan gerçek hayatta kullandığımız yazıların aynısıdır. Bu veri tipi aslına bakarsanız her biri bir karakter olan bir dizidir. Örnekle açıklayacak olursak “mete” stringi sırasıyla m,e,t,e harflerinden ya da karakterlerinden oluşmaktadır. Bu dersimizde stringleri ve stringelerin özelliklerini inceleyip öğreneceğiz.
pythonda string oluşturma
Pythonda string oluşturmanın birçok farklı yolu bulunmaktadır. Bu yollardan hangisini kullanacağınızı seçmek tamamen size kalmış durumda. İsterseniz pythonda string oluşturmak için yapmamız gerekenleri görmeye başlayalım:
Pythonda üç tip string oluşturma yöntemi bulunmakta. Bunlardan ilki tek tırnak içerisine karakterlerimizi yazmak. Bir diğeri çift tırnak kullanarak sonuncusu ise üç tırnak ile karakterlerimizin çıktısını almak.
#Tek tırnak ile
' Savaşan Adam '
#Çift Tırnak ile
" Savaşan Adam "
# 3 tırnak ile
"""Savaşan Adam"""
Pythonda string oluşturmada dikkat etmeniz gereken nokta, eğer çift tırnak ile bir string oluşturacaksak bitirirken de çift tırnak kullanmanız gerekiyor
# Hatalı Kod
"Merhaba'
File "<ipython-input-4-52c28270f133>", line 2
"Merhaba'
^
SyntaxError: EOL while scanning string literal
# Hatalı Kod
'Merhaba"
File "<ipython-input-5-688eb17d1742>", line 2
'Merhaba"
^
SyntaxError: EOL while scanning string literal
Yukarıda gördüğünüz gibi derleyici bir hata algıladı ve bu hatanın oluşma nedeni string oluşturmaya başlarken çift tırnak ile başlamamıza rağmen sonunda tek tırnak ile bitirmeye çalışmamız. Bu nedenle pythonda string oluştururken daima aynı tırnak sembolünü kullanmamız gerekiyor.
Input : a = "Merhaba"
Input : a
Output : 'Merhaba'
Input : naber = "Naber iyi misin ?"
Input : naber
Output :'Naber iyi misin ?'
Pythonda nasıl string oluşturacağımızı ve kullanacağımızı öğrendik. Şimdi gelin sizlerle birlikte bunun üzerine bir şeyler daha ekleyelim ve pythonda string indeksleme ve parçalama nasıl yapılır inceleyelim.
String indexleme ve parçalama
Pythonda stringler birer karakter dizileri oldukları için har bir karakterin aslında string içerisinde bir yer bulmaktadır. Örnek olarak “Savaşan Adam” stringinde S,a,v,a,ş,a,n, ,A,d,a,m karakterlerinin yerleri indeks olarak adlandırılır. Pythonda ve çoğu yazılım dilinde stringlerin indekslenmesi “0” dan başlamaktadır. Şimdi sizlere pythonda string içeriklerinin nasıl indeks yoluyla nasıl ulaşabileceğimizi gösterelim.
# 0. elemana ulaşalım . Bunun için [] operatörünü kullanacağız.
Input : a = "SavaşanAdam"
Input : a[0]
Output : 'S'
#SavaşanAdam kelimesinin 0.harf değeri olan S harfini çıktı olarak verdi
# 1.eleman için aynı yolu izliyoruz..
Input : a[1]
Output : 'a'
#SavaşanAdam kelimesinin 1.harf değeri olan a harfini çıktı olarak verdi
Input : a[2]
Output : 'v'
#Son olarak SavaşanAdam kelimesinin 2.harf değeri olan v çıktısını aldık.
Pythonda stringler baştan olabildiği gibi sondan başlayacak şekilde de indekslenebilirler. Pythonda stringler sondan indekslenebilmesi için -1,-2 … şeklinde indekslenirler.Yani yukarıda yaptığımız sıralamanın tersten işlenmesi durumu birkaç örnekle
Input : a = "SavaşanAdam"
Input : a[-1]
Output : 'm'
#SavaşanAdam kelimesinin -1.harf değeri olan(- olduğu için sondan saymaya #başlıyoruz ve 0 değer kabul görmez) m harfini çıktı olarak verdi
Input : a[-2]
Output : 'a'
#SavaşanAdam kelimesinin -2.harf değeri olan a harfini çıktı olarak verdi
Input : a[-3]
Output : 'd'
#SavaşanAdam kelimesinin -3.harf değeri olan d harfini çıktı olarak verdi
Input : a[-4]
Output : 'A'
#SavaşanAdam kelimesinin -4.harf değeri olan A harfini çıktı olarak verdi
Pythonda stringleri indekslemeyi öğrendik. Peki sadece belirli bir yeri indeksleyebilir miyiz? Gelin şimdi belirli bir kısmı indeksleyebilmek için ne yapmamız gereken kombinasyon şu şekilde: [başlama indeksi:bitiş indeksi:atlama değeri].Örneklerle daha açık bir şekilde anlayalım.
a = "Python Programlama Dili"
# 4. indeksten başla 10.indekse kadar(dahil değil) al.
Input : a[4:10]
Output : 'on Pro'
# Başlangıç değeri belirtilmemişse en baştan başlayarak alır.
Input : a[:10]
Output : 'Python Pro'
# Bitiş değeri belirtilmemişse en sonuna kadar alır.
Input : a[4:]
Output : 'on Programlama Dili'
# İki değer de belirtilmemişse tüm stringi al.
Input : a[:]
Output : 'Python Programlama Dili'
#Son karaktere kadar al.
Input : a[:-1]
Output : 'Python Programlama Dil'
# Baştan sona 2 değer atlaya atlaya stringi al.
Input : a[::2]
Output : 'Pto rgalm ii'
# 4.indeksten 12'nci indekse 3'er atlayarak stringi al.
Input : a[4:12:3]
Output : 'oPg'
# Baştan sona -1 atlayarak stringi al. (String'i ters çevirme)
Input : a[::-1]
Output : 'iliD amalmargorP nohtyP'
Pythonda string özellikleri
Pythonda bir string’in uzunluğunu nasıl buluruz ? Bunun için python’da len() fonksiyonu bulunmaktadır.
# len() fonksiyonunu kullanma.
Input : a = "Python Programlama Dili"
Input : len(a)
Output : 23
Peki sizce bir string’in belirli bir karakterini direkt olarak değiştirebilme şansımız var mı? Hemen birlikte deneme yapalım.
Input : a = "SavaşanAdam"
Input : a[0] = 'T'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-87cff85377e0> in <module>()
1 ----> 2 a[0] = 'T'
TypeError: 'str' object does not support item assignment
Burada Python bu işleme izin vermedi. Gördüğümüz gibi, bir string’in karakterlerini direkt olarak değiştiremiyoruz. Çünkü stringler böyle bir işlemi desteklemiyor.
Peki, Pythonda stringler toplanabiliyor mu ? Python’da bunu yapmak da mümkündür.
# Stringleri toplayalım yani birbirine ekleyelim.
Input : a = "Python "
Input : b = "Programlama "
Input : c = "Dili"
Input : a + b + c
Output : 'Python Programlama Dili'
Input : a = "SavaşanAdam "
Input : a = a + "SavaşanAdam"
# Burada stringleri birleştirerek yine a değişkenine atıyoruz.
Input : print(a)
Output : 'SavaşanAdam SavaşanAdam'
#Bir string ile bir sayıyı da çarpabiliriz.
# Python * 3 aslında Python + Python + Python işlemine eşdeğerdir.
Input : "Python" * 3
Output : 'PythonPythonPython'