Python6
Sifirdan-Ileri-Seviyeye-Python-Programlama (/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama/tree/master)
/
Temel Python Objeleri ve Veri Yapıları (/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama/tree/master/Temel Python Objeleri ve Veri Yapıla
Karakter Dizileri (Stringler)
Tekrardan Hoşgeldiniz ! Bu konuda stringleri öğrenmeye çalışacağız.Pythonda bir veri tipi olan Stringler veya Türkçe ismiyle karakter dizileri
gerçek hayatta kullandığımız yazıların aynısıdır.Bu veri tipi aslında her biri bir karakter olan bir dizidir. Örnek olarak, "ali" stringi sırasıyla a,l,i
harflerinden veya karakterlerden oluşmaktadır. Bu konuda stringleri ve stringlerin özelliklerini görmeye çalışacağız.
String Oluşturma
Python'da string oluşturmanın birçok yolu bulunmaktadir.Bunların hangisini kullanacağınız tamamıyla size bağlıdır.İsterseniz string
oluşturma işlemlerini görmeye çalışalım.
In [1]: #Tek tırnak ile
'Mustafa Murat Coşkun'
In [2]: #Çift Tırnak ile
"Mustafa Murat Coşkun"
In [3]: # 3 tırnak ile
"""Mustafa Murat Coşkun"""
Burada dikkat etmemiz gereken nokta, eğer bir çift tırnak ile oluşturacaksak, stringin oluşturulması bitirmeyi yine çift tırnak ile yapmalıyız.
In [4]: # Hatalı Kod
"Merhaba'
In [5]: # Hatalı Kod
'Merhaba"
Peki şu şekilde bir stringi Pythonda nasıl tanımlarız: Murat'ın bugün dersi var.
In [10]: 'Murat'ın bugün dersi var.
Gördüğümüz gibi kodumuz sıkıntı çıkarttı. Çünkü karşılaştığı ilk ' işaretini bitirme işareti olarak algıladı. Ancak şöyle bir kullanım sıkıntı
yaratmayacaktır.
In [11]: "Murat'ın bugün dersi var"
Şimdi de bir tane string veri tipinde değişken oluşturalım. Stringler de bir veri tipi oldukları için bunlardan değişken oluşturup kullanabiliriz.
In [9]: a = "Merhaba"
a
Out[1]: 'Mustafa Murat Coşkun'
Out[2]: 'Mustafa Murat Coşkun'
Out[3]: 'Mustafa Murat Coşkun'
File "<ipython-input-4-52c28270f133>", line 2
"Merhaba'
^
SyntaxError: EOL while scanning string literal
File "<ipython-input-5-688eb17d1742>", line 2
'Merhaba"
^
SyntaxError: EOL while scanning string literal
File "<ipython-input-10-c94dae596bd7>", line 1
'Murat'ın bugün dersi var.
^
SyntaxError: invalid syntax
Out[11]: "Murat'ın bugün dersi var"
Out[9]: 'Merhaba'
In [13]: naber = "Naber iyi misin ?"
naber
String Indeksleme ve Parçalama
Stringler birer karakter dizileri oldukları için her bir karakterin aslında string içinde bir yeri vardır. Örnek olarak "ali" stringinde a,l ve i
karakterlerinin yerleri indeks olarak adlandırılır.Pythonda ve genellikle çoğu programlama dilinde (Octave hariç) stringlerin indekslenmesi "0"
dan başlamaktadır. Şimdi isterseniz bir string içindeki karakterlere indeks yoluyla nasıl ulaşacağımıza bakalım.
In [14]: # 0. elemana ulaşalım . Bunun için [] operatörünü kullanacağız.
a = "ali"
a[0]
In [15]: # 1.eleman
a[1]
In [16]: a[2]
Pythonda stringler baştan olduğu gibi sondan da indekslenebilirler. Sondan başlayarak -1,-2 ... şeklinde indekslenirler
In [18]: # Sondaki eleman "-1" eleman
a = "murat"
a[-1]
In [19]: a[-2]
In [20]: a[-3]
In [21]: a[-4]
In [22]: a[-5]
Peki uzun bir string'in sadece belirli bir kısmını elde etmek için ne yapacağız ? Bunun için indeksleri, : ve [] işaretini kullanacağız.
Formülümüz şu şekilde ;
[başlama indeksi : bitiş indeksi : atlama değeri]
İsterseniz örneklerimize bakalım.
In [23]: a = "Python Programlama Dili"
In [25]: # 4. indeksten başla 10.indekse kadar(dahil değil) al.
a[4:10]
In [26]: # Başlangıç değeri belirtilmemişse en baştan başlayarak alır.
a[:10]
In [28]: # Bitiş değeri belirtilmemişse en sonuna kadar alır.
a[4:]
In [29]: # İki değer de belirtilmemişse tüm stringi al.
a[:]
Out[13]: 'Naber iyi misin ?'
Out[14]: 'a'
Out[15]: 'l'
Out[16]: 'i'
Out[18]: 't'
Out[19]: 'a'
Out[20]: 'r'
Out[21]: 'u'
Out[22]: 'm'
Out[25]: 'on Pro'
Out[26]: 'Python Pro'
Out[28]: 'on Programlama Dili'
Out[29]: 'Python Programlama Dili'
Jupyter Notebook Viewer Sayfa 2 / 3
http://nbviewer.jupyter.org/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Pytho... 13.11.2017
In [30]: #Son karaktere kadar al.
a[:-1]
In [32]: # Baştan sona 2 değer atlaya atlaya stringi al.
a[::2]
In [33]: # 4.indeksten 12'nci indekse 3'er atlayarak stringi al.
a[4:12:3]
In [34]: # Baştan sona -1 atlayarak stringi al. (String'i ters çevirme)
a[::-1]
String Özellikleri
Bir string'in uzunluğunu nasıl buluruz ? Bunun için Python'da len() fonksiyonu bulunmaktadır.
In [35]: # len() fonksiyonunu kullanma.
a = "Python Programlama Dili"
len(a)
Peki sizce bir string'in belli bir karakterini direkt olarak değiştirebilir miyiz ? Hemen bir deneme yapalım.
In [37]: a = "Murat"
In [38]: # Biraz ilkokulluyum değil mi :) Ancak Python buna izin vermiyor Allahtan :)
a[0] = 'T'
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.
In [39]: # Stringleri toplayalım yani birbirine ekleyelim.
a = "Python "
b = "Programlama "
c = "Dili"
a+b+c
In [3]: a = "Mustafa "
a = a + "Murat Coşkun" # Burada stringleri birleştirerek yine a değişkenine atıyoruz.
a
Bir string ile bir sayıyı da çarpabiliriz.
In [41]: # Python * 3 aslında Python + Python + Python işlemine eşdeğerdir.
"Python" * 3
Stringler konusu şimdilik bu kadar ! İleriki konularımızda stringlerimize tekrardan döneceğiz ve güzel özelliklerine bakma imkanına sahip
olacağız.
Out[30]: 'Python Programlama Dil'
Out[32]: 'Pto rgalm ii'
Out[33]: 'oPg'
Out[34]: 'iliD amalmargorP nohtyP'
Out[35]: 23
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-87cff85377e0> in <module>()
1 # Biraz ilkokulluyum değil mi :) Ancak Python buna izin vermiyor Allahtan :)
----> 2 a[0] = 'T'
TypeError: 'str' object does not support item assignment
Out[39]: 'Python Programlama Dili'
Out[3]: 'Mustafa Murat Coşkun'
Out[41]: 'PythonPythonPython'
Jupyter Notebook Viewer Sayfa 3 / 3
http://nbviewer.jupyter.org/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Pytho... 13.11.2017
/
Temel Python Objeleri ve Veri Yapıları (/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Python-Programlama/tree/master/Temel Python Objeleri ve Veri Yapıla
Karakter Dizileri (Stringler)
Tekrardan Hoşgeldiniz ! Bu konuda stringleri öğrenmeye çalışacağız.Pythonda bir veri tipi olan Stringler veya Türkçe ismiyle karakter dizileri
gerçek hayatta kullandığımız yazıların aynısıdır.Bu veri tipi aslında her biri bir karakter olan bir dizidir. Örnek olarak, "ali" stringi sırasıyla a,l,i
harflerinden veya karakterlerden oluşmaktadır. Bu konuda stringleri ve stringlerin özelliklerini görmeye çalışacağız.
String Oluşturma
Python'da string oluşturmanın birçok yolu bulunmaktadir.Bunların hangisini kullanacağınız tamamıyla size bağlıdır.İsterseniz string
oluşturma işlemlerini görmeye çalışalım.
In [1]: #Tek tırnak ile
'Mustafa Murat Coşkun'
In [2]: #Çift Tırnak ile
"Mustafa Murat Coşkun"
In [3]: # 3 tırnak ile
"""Mustafa Murat Coşkun"""
Burada dikkat etmemiz gereken nokta, eğer bir çift tırnak ile oluşturacaksak, stringin oluşturulması bitirmeyi yine çift tırnak ile yapmalıyız.
In [4]: # Hatalı Kod
"Merhaba'
In [5]: # Hatalı Kod
'Merhaba"
Peki şu şekilde bir stringi Pythonda nasıl tanımlarız: Murat'ın bugün dersi var.
In [10]: 'Murat'ın bugün dersi var.
Gördüğümüz gibi kodumuz sıkıntı çıkarttı. Çünkü karşılaştığı ilk ' işaretini bitirme işareti olarak algıladı. Ancak şöyle bir kullanım sıkıntı
yaratmayacaktır.
In [11]: "Murat'ın bugün dersi var"
Şimdi de bir tane string veri tipinde değişken oluşturalım. Stringler de bir veri tipi oldukları için bunlardan değişken oluşturup kullanabiliriz.
In [9]: a = "Merhaba"
a
Out[1]: 'Mustafa Murat Coşkun'
Out[2]: 'Mustafa Murat Coşkun'
Out[3]: 'Mustafa Murat Coşkun'
File "<ipython-input-4-52c28270f133>", line 2
"Merhaba'
^
SyntaxError: EOL while scanning string literal
File "<ipython-input-5-688eb17d1742>", line 2
'Merhaba"
^
SyntaxError: EOL while scanning string literal
File "<ipython-input-10-c94dae596bd7>", line 1
'Murat'ın bugün dersi var.
^
SyntaxError: invalid syntax
Out[11]: "Murat'ın bugün dersi var"
Out[9]: 'Merhaba'
In [13]: naber = "Naber iyi misin ?"
naber
String Indeksleme ve Parçalama
Stringler birer karakter dizileri oldukları için her bir karakterin aslında string içinde bir yeri vardır. Örnek olarak "ali" stringinde a,l ve i
karakterlerinin yerleri indeks olarak adlandırılır.Pythonda ve genellikle çoğu programlama dilinde (Octave hariç) stringlerin indekslenmesi "0"
dan başlamaktadır. Şimdi isterseniz bir string içindeki karakterlere indeks yoluyla nasıl ulaşacağımıza bakalım.
In [14]: # 0. elemana ulaşalım . Bunun için [] operatörünü kullanacağız.
a = "ali"
a[0]
In [15]: # 1.eleman
a[1]
In [16]: a[2]
Pythonda stringler baştan olduğu gibi sondan da indekslenebilirler. Sondan başlayarak -1,-2 ... şeklinde indekslenirler
In [18]: # Sondaki eleman "-1" eleman
a = "murat"
a[-1]
In [19]: a[-2]
In [20]: a[-3]
In [21]: a[-4]
In [22]: a[-5]
Peki uzun bir string'in sadece belirli bir kısmını elde etmek için ne yapacağız ? Bunun için indeksleri, : ve [] işaretini kullanacağız.
Formülümüz şu şekilde ;
[başlama indeksi : bitiş indeksi : atlama değeri]
İsterseniz örneklerimize bakalım.
In [23]: a = "Python Programlama Dili"
In [25]: # 4. indeksten başla 10.indekse kadar(dahil değil) al.
a[4:10]
In [26]: # Başlangıç değeri belirtilmemişse en baştan başlayarak alır.
a[:10]
In [28]: # Bitiş değeri belirtilmemişse en sonuna kadar alır.
a[4:]
In [29]: # İki değer de belirtilmemişse tüm stringi al.
a[:]
Out[13]: 'Naber iyi misin ?'
Out[14]: 'a'
Out[15]: 'l'
Out[16]: 'i'
Out[18]: 't'
Out[19]: 'a'
Out[20]: 'r'
Out[21]: 'u'
Out[22]: 'm'
Out[25]: 'on Pro'
Out[26]: 'Python Pro'
Out[28]: 'on Programlama Dili'
Out[29]: 'Python Programlama Dili'
Jupyter Notebook Viewer Sayfa 2 / 3
http://nbviewer.jupyter.org/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Pytho... 13.11.2017
In [30]: #Son karaktere kadar al.
a[:-1]
In [32]: # Baştan sona 2 değer atlaya atlaya stringi al.
a[::2]
In [33]: # 4.indeksten 12'nci indekse 3'er atlayarak stringi al.
a[4:12:3]
In [34]: # Baştan sona -1 atlayarak stringi al. (String'i ters çevirme)
a[::-1]
String Özellikleri
Bir string'in uzunluğunu nasıl buluruz ? Bunun için Python'da len() fonksiyonu bulunmaktadır.
In [35]: # len() fonksiyonunu kullanma.
a = "Python Programlama Dili"
len(a)
Peki sizce bir string'in belli bir karakterini direkt olarak değiştirebilir miyiz ? Hemen bir deneme yapalım.
In [37]: a = "Murat"
In [38]: # Biraz ilkokulluyum değil mi :) Ancak Python buna izin vermiyor Allahtan :)
a[0] = 'T'
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.
In [39]: # Stringleri toplayalım yani birbirine ekleyelim.
a = "Python "
b = "Programlama "
c = "Dili"
a+b+c
In [3]: a = "Mustafa "
a = a + "Murat Coşkun" # Burada stringleri birleştirerek yine a değişkenine atıyoruz.
a
Bir string ile bir sayıyı da çarpabiliriz.
In [41]: # Python * 3 aslında Python + Python + Python işlemine eşdeğerdir.
"Python" * 3
Stringler konusu şimdilik bu kadar ! İleriki konularımızda stringlerimize tekrardan döneceğiz ve güzel özelliklerine bakma imkanına sahip
olacağız.
Out[30]: 'Python Programlama Dil'
Out[32]: 'Pto rgalm ii'
Out[33]: 'oPg'
Out[34]: 'iliD amalmargorP nohtyP'
Out[35]: 23
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-38-87cff85377e0> in <module>()
1 # Biraz ilkokulluyum değil mi :) Ancak Python buna izin vermiyor Allahtan :)
----> 2 a[0] = 'T'
TypeError: 'str' object does not support item assignment
Out[39]: 'Python Programlama Dili'
Out[3]: 'Mustafa Murat Coşkun'
Out[41]: 'PythonPythonPython'
Jupyter Notebook Viewer Sayfa 3 / 3
http://nbviewer.jupyter.org/github/mustafamuratcoskun/Sifirdan-Ileri-Seviyeye-Pytho... 13.11.2017
Yorumlar
Yorum Gönder