1)
Python özgür ve
ücretsiz bir programlama dilidir.
2)
Guido Van
Rossum adlı
Hollandalı bir programcı tarafından 90’lı yılların başında geliştirilmeye
başlanmıştır. Guido Van Rossum 2005 ile 2012 yılları arasında Google’da
çalışmıştır.
3)
Adı “The Monty
Python” adlı bir İngiliz komedi grubundan esinlenerek konmuştur.
4)
Python kelimesi Türkçe
“paytın” şeklinde telaffuz
edilir.
Neden
Python?
1)
Büyük kuruluşlar (Google,
YouTube ve Yahoo! gibi) her
zaman Python programcılarına ihtiyaç duyuyor.
2)
Python ile masaüstü,
oyun, mobil, web ve ağ alanında programlar yazabilirsiniz.
3)
Python kodları sade, basit ve hızlıdır. Derlenmeye
ihtiyaç duymaz.
4)
Python farklı işletim sistemleri üzerinde çalışabilir. Linux, Windows, Mac OS X, MS-DOS, iOS ve
Android gibi belki adını dahi duymadığınız pek çok ortamda Python
uygulamaları geliştirebilirsiniz.
Python Sürümleri:
1)
Piyasada iki çeşit Python sürümü vardır. Eğer bir Python sürümü 2 ile başlıyorsa
(2.7.11 gibi) Python 2.x, şayet 3
ile başlıyorsa (3.6.2 gibi) Python 3.x serisine aittir.
2)
Python3, Python2’ye göre daha güçlüdür ve hatalardan
arınmıştır.
3)
Python2 ile yazılmış bir program Python3’te çalışmaz.
Aynı şekilde Python3 ile yazdığınız bir program Python2’de çalışmaz.
Python’u Kurmak:
2)
Downloads linkini
tıkladığınızda ‘Download Python 3.x.x‘
ve ‘Download 2.x.x’ yazan yan yana
iki düğme göreceksiniz.
3)
Python’ı hangi dizine kurduğumuzu bilmek önemlidir. Zira
karşılaşacağımız bazı sorunlar bu dizine gitmemizi gerektirebilir.
Python Dosyaları Nerede?
Windows
kullanıcısı iseniz ve eğer siz farklı bir yere kaydetmemişseniz Python
dosyaları genellikle C:\Users\Kullanicilar\AppData\Local\Programs\Python
dizini içindedir. Klasörler gözükmüyorsa gizli dosyaları göster seçeneğini
aktifleştiriniz.
Bu bölümle birlikte artık Python öğrenmeye başlıyoruz.
Pythonda temeli sağlam atmamız için öncelikle veri tipleri ve veri yapılarını
öğrenmeliyiz.İsterseniz sayıları öğrenerek maratonumuza başlayalım.
Bu bölümde şunları öğreneceğiz.
1. Tamsayı(Integer)
ve Ondalıklı Sayı(Float ) Veri tipleri
2. Basit
Matematik İşlemleri
3. Değişken
Tanımlama
Tamsayılar (Integer)
Matematikte gördüğümüz tüm sayılar (negatif,pozitif)
aslında Python'da bir veri tipidir. Tamsayılar ise ingilizce olarak Integer olarak geçmektedir.
Örnek olarak, -1000,34,2,0 gibi sayılar Python'da birer
tamsayı(integer) değerleridir.
Ondalıklı Sayılar (Float)
Tamsayılar gibi Ondalıklı sayılar da bizim matematikte
gördüğümüz sayı çeşitlerinden bir tanesidir. Ondalıklı sayılar matematikte
olduğu gibi, Pythonda da bir veri tipidir.Ondalıklı Sayılar veya diğer adıyla
Kayan Sayılar İngilizce olarak Float
olarak geçmektedir.
Örnek olarak, 3.14, 3.554546, -13.54 gibi sayılar Python'da
birer ondalıklı sayı(float) değerleridir.
Şimdi de bu Pythondaki basit matematik işlemlerini
öğrenelim.
Basit Matematik Operatörleri
Basit 4 işlemi (Toplama,Çıkarma,Çarpma,Bölme) hepimiz
matematikten biliriz. Şimdi bu işlemlerin Pythonda nasıl yapıldığını görmeye
çalışalım.
Burada basit işlemlerimizi görmüş olduk. Ancak son işlem
kafanızı karıştırmış olabilir. Sonuç neden float
bir değer olarak karşımıza çıktı? Bunları Matematik
Operatörleri bölümünde görmek daha doğru olur diye düşünüyorum.
1. Değişken
isimleri bir sayı ile başlayamaz.
2. Değişken
ismi kelimelerden oluşuyorsa aralarında boşl uk olamaz.
3. :'",<>/?|\()!@#$%^&*~-+
Buradaki semboller değişken i smi içinde kullanılamaz.(Sadece _ sembolü
kullanılabilir)
4. Pythonda
tanımlı anahtar kelimeler değişken ismi olar ak kullanılamaz.(while, not vs. )
Yorum Satırları
Yorum satırları programlarımıza açıklama olarak eklediğimiz
satırlardır. Eğer bir programda yorum satırları kullanılmışsa bu satırlar
Python tarafından görülmez ve çalıştırılmaz.
VERİ TÜRLERİ:
string: Tırnak içindeki her türlü karakter dizileridir.
>>>”Merhaba Dünya”
‘Merhaba Dünya’
>>>”Merhaba Dünya”
‘Merhaba Dünya’
Not: string’lerde
çift tırnak kullanmak şart değildir. Tek tırnak veya üç tırnak da kullanabiliriz.
Burada üç tek tırnak veya üç çift tırnak kullanılabilir.
Ör:
>>>‘Merhaba
Dünya’ àtek
tırnak
‘Merhaba Dünya’
‘Merhaba Dünya’
>>>’’’Merhaba
Dünya’’’ àüç
tek tırnak
‘Merhaba Dünya’
‘Merhaba Dünya’
>>>”””Merhaba
Dünya””” àüç
çift tırnak
‘Merhaba Dünya’
‘Merhaba Dünya’
Not: Python’da
\n tırnak kullanmamızın sebebi alt satıra geçebilmektir.
Ör:
>>>Mesaj = 'Bir saat anlattım, bir tek buseni \nDoktorlar efsane sandılar seni'
>>>print(Mesaj)
Çıktı:
Bir saat anlattım, bir tek buseni
Bir saat anlattım, bir tek buseni
Doktorlar efsane sandılar seni
à Peki,
neden bazen tek tırnak veya çift tırnak kullanmamız gerekiyor? Örnek olarak şöyle
bir çıktı elde etmek isteyelim.
İstanbul'un havası
àYukarıdaki ifadede bir kesme işareti var. İçinde kesme işareti olan bir string’i tek tırnak içine alamayız. Bu yüzden diğer bir alternatif olan çift tırnağı ya da üç tırnağı kullanmalıyız.
İstanbul'un havası
àYukarıdaki ifadede bir kesme işareti var. İçinde kesme işareti olan bir string’i tek tırnak içine alamayız. Bu yüzden diğer bir alternatif olan çift tırnağı ya da üç tırnağı kullanmalıyız.
"İstanbul'un havası" İstanbul'un havası
"””İstanbul'un havası””" İstanbul'un havası
string indeksleme ve parçalama: stringlerde her bir karakterin kendine has bir konumu vardır. Bu konumlara indeks adı verilir. Python’da ve çoğu programlama dilinde indeksleme “0” dan başlar.
"””İstanbul'un havası””" İstanbul'un havası
string indeksleme ve parçalama: stringlerde her bir karakterin kendine has bir konumu vardır. Bu konumlara indeks adı verilir. Python’da ve çoğu programlama dilinde indeksleme “0” dan başlar.
Aşağıdaki örnekleri
inceleyelim.
>>> a="Kodlama"
>>> a[0] à0.karakter
'K'
>>> a[1] à1.karakter
'o'
>>> a[2] à2.karakter
'd'
>>> a[3] à3.karakter
'l'
>>> a[-1] àsondan 1.karakter
'a'
>>> a[-2] àsondan 2.karakter
'm'
>>> a[-3] àsondan 3.karakter
'a'
>>> a[2:6] à2.karakterden 6.karaktere kadar tüm karakterler
'dlam'
>>> a[:6] àBaşlangıç değeri olmadığı için baştan 6.karaktere kadar tüm karakterler
'Kodlam'
>>> a[2:] àBitiş değeri olmadığı için 2.karakterden sona kadar tüm karakterler
'dlama'
>>> a[:] àBaşlangıç ve bitiş değeri olmadığı için tüm karakterler
'Kodlama'
>>> a[2:-2] à2.karakterden sondan ikinci karaktere kadar tüm karakterler
'dla'
>>> a[:-2] àBaşlangıçtan sondan ikinci karaktere kadar tüm karakterler
'Kodla'
>>> a="Kodlama Eğitimi"
>>> a[2:13:2] à2.karakterden 13.karaktere kadar 2 sıra atlayarak
'daaEii'
>>> a[::2] àBaştan sona kadar 2 sıra atlayarak
'KdaaEiii'
>>> a[::-1] àSondan başa kadar tüm karakterler. Tersi yönde
'imitiğE amaldoK'
>>> a[0] à0.karakter
'K'
>>> a[1] à1.karakter
'o'
>>> a[2] à2.karakter
'd'
>>> a[3] à3.karakter
'l'
>>> a[-1] àsondan 1.karakter
'a'
>>> a[-2] àsondan 2.karakter
'm'
>>> a[-3] àsondan 3.karakter
'a'
>>> a[2:6] à2.karakterden 6.karaktere kadar tüm karakterler
'dlam'
>>> a[:6] àBaşlangıç değeri olmadığı için baştan 6.karaktere kadar tüm karakterler
'Kodlam'
>>> a[2:] àBitiş değeri olmadığı için 2.karakterden sona kadar tüm karakterler
'dlama'
>>> a[:] àBaşlangıç ve bitiş değeri olmadığı için tüm karakterler
'Kodlama'
>>> a[2:-2] à2.karakterden sondan ikinci karaktere kadar tüm karakterler
'dla'
>>> a[:-2] àBaşlangıçtan sondan ikinci karaktere kadar tüm karakterler
'Kodla'
>>> a="Kodlama Eğitimi"
>>> a[2:13:2] à2.karakterden 13.karaktere kadar 2 sıra atlayarak
'daaEii'
>>> a[::2] àBaştan sona kadar 2 sıra atlayarak
'KdaaEiii'
>>> a[::-1] àSondan başa kadar tüm karakterler. Tersi yönde
'imitiğE amaldoK'
Formatlama:
Bir stringin içine önceden tanımlanan bir
veri veya değişken yerleştirebiliriz. Bu işleme formatlama denir. Bunun için
süslü parantez kullanmalıyız.
Ör:
"{}{}{}".format(5,6,7)
'567'
àAçıklaması:
Tırnak işaretlerinin arasına üç adet açılıp
kapanan süslü parantez yerleştirdik. Sonra .format() fonksiyonunun içine sırasıyla 5,6,7
yazdık. Böylece ilk süslü parantezin içine 5,
ikinci süslü parantezin içine 6, üçüncü süslü parantezin içine de 7 koymuş ve
bunları yazdırmış olduk.
àŞimdi
de değişken kullanarak formatlama işlemi yapalım.
Ör:
a=3
b=4
"{}+{}'ün toplamı {}'dir.".format(a,b,a+b)
"3+4'ün toplamı 7'dir."
Ör:
a=3
b=4
"{}+{}'ün toplamı {}'dir.".format(a,b,a+b)
"3+4'ün toplamı 7'dir."
àSüslü
parantezlerin içine sayı koyarak yazdırma sıralamasını belirleyebiliriz.
Ör:
"{2}
{0} {1}".format("Ali","Veli","Murat")
'Murat Ali
Veli'
àAçıklaması:
Tırnak işaretlerinin arasına üç adet açılıp
kapanan süslü parantez yerleştirdik. Bu süslü parantezlerin içine de verilerin
hangi sırada olacağını gösteren sayılar koyduk. Yani burada {2} ‘nin anlamı ilk
sıraya 2.verinin yani “Murat” ın geleceğidir. Bu arada Python’da veri
sıralaması 1’den değil 0’dan başlamaktadır. O yüzden “Ali” 1.değil 0.sıradadır.
Dolayısıyla “Veli” de 1.sıradadır. Böylece ilk süslü parantezin içine "Murat",
ikinci süslü parantezin içine "Ali", üçüncü süslü parantezin içine de
“Veli” koymuş ve bunları yazdırmış olduk.
àOndalık
sayılarda formatlama işlemi yapalım.
Ör:
"{:.1f}
{:.2f}
{:.3f}".format(4.2767,6.8341,7.6749)
'4.3
6.83 7.675’
àAçıklaması:
{:.1f} demek ilk ondalık sayının noktadan
sonra gelen bir basamağını yuvarlayarak
almak demektir. Yani burada 4.2767 ondalık sayısının noktadan sonra gelen 2
sayısını kendinden sonra 7 geldiği için 3’e yuvarlamış olduk. Aynı şekilde
{:.2f} demek ilk ondalık sayının noktadan sonra gelen iki
basamağını yuvarlayarak
almak demektir. Burada da 6.8341 ondalık sayısının noktadan sonra gelen iki
basamağı 83’tür ve 3’ten sonra 4 geldiği için yuvarlama işlemi yapılmaz ve
sonuç direk 6.83 olur. Bu şekilde üçüncü veriyi de yazdırırsak çıktımız '4.3
6.83 7.675’ şeklinde olur.
integer: Tam sayılardır. Pozitif, negatif ya da sıfır değeri
alabilir. Kesirli değer içermez.
Ör: 10, 0, -10
Ör: 10, 0, -10
float: Reel sayılardır. Kayan noktalı sayılar da
denir. Ancak burada virgül yerine nokta kullanmamız gerekir.
Ör: 12.6, 12.0, -12.0, 0.0
Ör: 12.6, 12.0, -12.0, 0.0
complex: Karmaşık
sayılardır.
Ör: 10+2j
bool: Herhangi bir ifadenin doğruluğunu veya yanlışlığını sorgular. Bool iki değer alabilir.
Bunlar True ve False ’tur.
Ör: 10+2j
bool: Herhangi bir ifadenin doğruluğunu veya yanlışlığını sorgular. Bool iki değer alabilir.
Bunlar True ve False ’tur.
print() fonksiyonu: Ekrana yazdırma fonksiyonudur.
Örnekler:
Örnekler:
print("Merhaba
Dünya") àstringleri
tırnak içerisine almamız gerekir.
Merhaba Dünya
Merhaba Dünya
print(5) àsayıları
tırnak içerisine almamıza gerek yoktur.
5
5
print(5.8) àsayıları
tırnak içerisine almamıza gerek yoktur.
5
5
print(-5) àsayıları
tırnak içerisine almamıza gerek yoktur.
-5
-5
print(5+4) àburada
matematiksel işlem yapmamız gerekir.
9
9
print(“5”) àancak
sayıları tırnak içerisine alırsak o artık bir string’tir.
‘5’
‘5’
print(“5+4”) àdolayısıyla
artık matematiksel işlem de yapılamaz.
‘5+4’
‘5+4’
print(“
”)
àBir
boşluk karakteri yazdırır. Boşluklar da bir string’tir.
print(Merhaba
Dünya) àtırnak
işareti olmadığı için hata verir.
hata
print(“Merhaba Dünya) àtırnak işareti kapanmadığı için hata verir.
hata
print(‘Merhaba Dünya’) àstringlerde tek tırnak kullanabiliriz.
Merhaba Dünya
print(‘’’Merhaba Dünya’’’) à stringlerde üç adet tek tırnak da kullanabiliriz.
Merhaba Dünya
print(“””Merhaba Dünya”””) à hatta üç adet çift tırnak da kullanabiliriz.
Merhaba Dünya
hata
print(“Merhaba Dünya) àtırnak işareti kapanmadığı için hata verir.
hata
print(‘Merhaba Dünya’) àstringlerde tek tırnak kullanabiliriz.
Merhaba Dünya
print(‘’’Merhaba Dünya’’’) à stringlerde üç adet tek tırnak da kullanabiliriz.
Merhaba Dünya
print(“””Merhaba Dünya”””) à hatta üç adet çift tırnak da kullanabiliriz.
Merhaba Dünya
Ör:
print(“””””Ali”””””)
“”Ali
àAçıklaması: İlk üç tırnak ile string açıldı, sonraki iki tırnak ve Ali ekrana yazdırıldı, Ali’den sonra ki üç tırnak ile string kapandı, daha sonra tırnak ile yeni bir string açılıp yine tırnakla kapanarak içi boş bir string yazıldı. Geriye de “”Ali kaldı.
print(“””””Ali”””””)
“”Ali
àAçıklaması: İlk üç tırnak ile string açıldı, sonraki iki tırnak ve Ali ekrana yazdırıldı, Ali’den sonra ki üç tırnak ile string kapandı, daha sonra tırnak ile yeni bir string açılıp yine tırnakla kapanarak içi boş bir string yazıldı. Geriye de “”Ali kaldı.
Ör:
print(“Bilgisayar”,”Bilimi”,”Kodlama”)
Bilgisayar Bilimi Kodlama
Bilgisayar Bilimi Kodlama
àAçıklaması: Virgüller ifadelerin arasına birer boşluk
bırakır.
Ör:
print("bilgi"+”sayar") à +
işareti ile stringleri birleştirebiliriz.
bilgisayar
print( “bilgi""sayar”) à hatta + işaretine bile gerek yoktur.
bilgisayar
bilgisayar
print( “bilgi""sayar”) à hatta + işaretine bile gerek yoktur.
bilgisayar
Ör:
print( “bilgi"+"
"+"sayar”)
bilgi sayar
àAçıklaması: Ortadaki
çift tırnağın içinde bir boşluk karakteri var. O yüzden araya bir boşluk
karakteri girdi.
Ör:
print(999, “9”)
999 9
999 9
à
Açıklaması: Burada bir
işlem yoktur, virgülle yazdırma işlemi vardır, dolayısıyla 999 sayı olarak, 9
ise string olarak yazdırıldı.
Ör:
Ör:
print(999 + “9”)
hata
à Açıklaması: + işaretini kullanmak için aynı tür veri olması gerekir. Burada integer ve string olduğu için işlem yapılamaz.
hata
à Açıklaması: + işaretini kullanmak için aynı tür veri olması gerekir. Burada integer ve string olduğu için işlem yapılamaz.
Ör:
print(999 + 9)
1008
à Açıklaması: şimdi + işaretini kullanabiliriz çünkü ikisi de aynı tür veridir. Yani integer’dır. Bu durumda matematiksel işlem yapmamız gerekir.
1008
à Açıklaması: şimdi + işaretini kullanabiliriz çünkü ikisi de aynı tür veridir. Yani integer’dır. Bu durumda matematiksel işlem yapmamız gerekir.
Ör:
print(“9”+ klavye)
hata
à Açıklaması: klavye string değil çünkü tırnak içerisine alınmamış. Dolayısıyla diğerine bakmamıza gerek kalmadan direk hata mesajı alırız.
hata
à Açıklaması: klavye string değil çünkü tırnak içerisine alınmamış. Dolayısıyla diğerine bakmamıza gerek kalmadan direk hata mesajı alırız.
str(): Verileri string’e (karakter dizisi) çevirir.
str(4) ‘4’
str(4.0) ‘4.0’
str(10+2) ‘12’
str(10/2) ‘5’
str(10*2) ‘20’
int(): Verileri integer’a (tamsayı) çevirir.
int(28.9) 28
int(5+4) 9
int(5/3) 1
int(5*0.4) 2
int(0.8+0.9) 1
Not: Tırnak içindeki verilerin tamsayıya çevrilmesi için tırnak içindeki ifadenin tamsayı olması gerekmektedir. Aksi halde çevirme işlemi yapılamaz.
Örnekler:
int(“28.9”) à tırnak içerisindeki ifade tamsayı değildir.
hata
int(“5+4”) à hata, tırnak içerisindeki ifade tamsayı değildir.
hata
int(“bilgisayar”) àhata, tırnak içerisindeki ifade tamsayı değildir.
hata
int("5") à tırnak içerisindeki ifade tamsayıdır. O halde çevirme yapılabilir.
5
str(4) ‘4’
str(4.0) ‘4.0’
str(10+2) ‘12’
str(10/2) ‘5’
str(10*2) ‘20’
int(): Verileri integer’a (tamsayı) çevirir.
int(28.9) 28
int(5+4) 9
int(5/3) 1
int(5*0.4) 2
int(0.8+0.9) 1
Not: Tırnak içindeki verilerin tamsayıya çevrilmesi için tırnak içindeki ifadenin tamsayı olması gerekmektedir. Aksi halde çevirme işlemi yapılamaz.
Örnekler:
int(“28.9”) à tırnak içerisindeki ifade tamsayı değildir.
hata
int(“5+4”) à hata, tırnak içerisindeki ifade tamsayı değildir.
hata
int(“bilgisayar”) àhata, tırnak içerisindeki ifade tamsayı değildir.
hata
int("5") à tırnak içerisindeki ifade tamsayıdır. O halde çevirme yapılabilir.
5
int("-5") à
tırnak içerisindeki ifade tamsayıdır. O halde çevirme yapılabilir.
-5
-5
float(): Verileri
float’a (reel sayı) çevirir.
float(5) 5.0
float(-5) -5.0
float(0) 0.0
float(3+4) 7.0
float(3.5+4) 7.5
Not: Tırnak içindeki verilerin float’a çevrilmesi için tırnak içindeki ifadenin tamsayı veya float olması gerekmektedir. Aksi halde çevirme işlemi yapılamaz.
float(5) 5.0
float(-5) -5.0
float(0) 0.0
float(3+4) 7.0
float(3.5+4) 7.5
Not: Tırnak içindeki verilerin float’a çevrilmesi için tırnak içindeki ifadenin tamsayı veya float olması gerekmektedir. Aksi halde çevirme işlemi yapılamaz.
Örnekler:
float(“3+4”) àtırnak içerisindeki ifade tamsayı veya float değildir.
hata
float(“7”) àtırnak içerisindeki ifade tamsayıdır. O halde çevirme yapılabilir.
7.0
float(“5.7”) àtırnak içerisindeki ifade float’tur. O halde çevirme yapılabilir.
5.7
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.
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.
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.
Print() Fonksiyonu
Kodlarımızı dosyalara yazdığımızda, eğer ekrana bir değer bastırmak istersek print fonksiyonunu kullanırız. Kullanımı oldukça basittir ve
değişik özelliklere sahiptir. Örneklerimize bakalım.
In [1]: print(35)
In [2]: print(3.14)
In [3]: a = 4
b = 15
print(a+b)
In [4]: print("Mustafa Murat Coşkun")
In [5]: print("Murat'ın bugün dersi var.")
Buradaki işlemlerde gördüğümüz gibi biz print fonksiyonunun içine bastırmak istediğimiz değeri veriyoruz ve bu fonksiyon da ekrana
değerimizi bastırıyor. Peki aynı satırda birkaç değer bastırmak istersek ne yapıyoruz? Bunun için değerlerimizin arasına , karakterini atıyoruz.
In [6]: print("Murat",12,545,66767,3.56)
In [7]: print("Mustafa","Murat","Coşkun")
Stringlerdeki Özel Karakterler
Pythonda stringlerde kullanılan özel karakterler mevcuttur ve kullanıldıkları yerler de işlerimizi kolaylaştırır. En çok kullanılan 2 tanesi
şunlardır;
\n karakteri
Eğer print() fonksiyonu stringlerde böyle bir karakterle karşılaşırsa alt satırdan ekrana yazdırma işlemine devam eder. Hemen örneklerimize
bakalım.
In [8]: print("Merhaba\nNasılsın\nİyi misin")
In [9]: print("Selam\nGençler")
\t karakteri
Eğer print() fonksiyonu stringlerde böyle bir karakterle karşılaşırsa bir tab boşluk bırakarak ekrana yazdırma işlemine devam eder. Hemen
örneklerimize bakalım.
35
3.14
19
Mustafa Murat Coşkun
Murat'ın bugün dersi var.
Murat 12 545 66767 3.56
Mustafa Murat Coşkun
Merhaba
Nasılsın
İyi misin
Selam
Gençler
In [13]: print("Ocak\tMart\tŞubat")
In [18]: print("a\t\t\t\t\tb")
type() fonksiyonu
print() fonksiyonundan bahsetmişken type() fonksiyonunu öğrenmekte fayda var. type() fonksiyonu içine gönderilen değerin hangi veri
tipinden olduğunu söyler.
In [20]: # Integer (Tamsayı) türü
a = 65
print(type(a))
In [21]: # Float (Ondalıklı Sayı) türü
a = 5.87
print(type(a))
In [22]: # String (Karakter Dizisi) türü
a = "Murat"
print(type(a))
Print() Fonksiyonunun Özellikleri
Ekrana yazdırma işlemlerimiz sırasında print() fonksiyonunun faydalı özelliklerini kullanırsak yazdığımız kodu daha verimli kılabiliriz. Bunun
için burada 2 tane özellikten bahsedeceğiz.
sep parametresi
print() fonksiyonunda kullanılabilen sep parametresi yazdırdığımız değerlerin arasına istediğimiz karakterlerin yerleştirilmesini sağlar. Eğer bu
parametreyi kullanmazsak değerlerin arasına varsayılan olarak boşluk yerleştirildiğini biliyoruz.Örneklere bakalım.
In [23]: print(3,4,5,6,7,8,9)
In [24]: # sep parametresi sayesinde değerlerin arasına nokta konuyor.
print(3,4,5,6,7,8,9,sep = ".")
In [25]: # Değerlerin arasında "/" sembolü yerleştiriliyor.
print("06","04","2015",sep = "/")
In [26]: print("Mustafa","Murat","Coşkun",sep = "\n")
Yıldızlı Parametreler
Eğer bir stringin başına * işareti koyup, print fonksiyonuna gönderirsek bu string karakterlerine ayrılacak ve her bir karakter ayrı birer string
olarak davranılarak ekrana basılacaktır.
In [33]: # Varsayılan olarak karakterlerin arasına boşluk konuluyor.
print(*"Python")
In [34]: print(*"Python",sep = "\n")
Ocak Mart Şubat
a b
<class 'int'>
<class 'float'>
<class 'str'>
3 4 5 6 7 8 9
3.4.5.6.7.8.9
06/04/2015
Mustafa
Murat
Coşkun
P y t h o n
P
y
t
h
o
n
In [36]: print(*"TBMM",sep =".")
Formatlama
Programlama yaparken bazı yerlerde bir stringin içinde daha önceden tanımlı string,float, int vs. değerleri yerleştirmek isteyebiliriz. Böyle
durumlar için Pythonda format() fonksiyonu bulunmaktadır. Örneğin, programımızda 3 tane tamsayı değerimiz var ve biz bunları bir string
içinde ekrana basmak istiyoruz. Bunun için format() fonksiyonunu kullanabiliriz. format() fonksiyonunun çok fazla özelliği olduğu için, ben
burada sadece en çok kullandığımız özelliğini göstereceğim.
In [41]: # Burada 3 tane süslü parantezimiz ({}) var ve bunların yerine sırasıyla format fonksiyonun içindek
i değerler geçiyor.
"{} {} {}".format(3.1423,5.324,7.324324)
In [46]: a = 3
b = 4
print("{} + {} 'nin toplamı {} 'dır".format(a,b,a+b))
In [47]: # Süslü parantezlerin içindeki sayılar format fonksiyonun içinden hangi sıradaki değerin geleceğini
söylüyor.
"{1} {0} {2}".format(43,"Murat",54)
In [49]: # Süslü parantezlerin içindeki kullanım ondalıklı kısmın sadece 2 basamağına kadar almak istediğimi
z söylüyor.
"{:.2f} {:.2f} {:.3f}".format(3.1463,5.324,7.324324)
Format fonksiyonu ile ilgili kullanımları ihtiyacınız olduğu zaman şu web sitesinden yararlanarak uygulayabilirsiniz; https://pyformat.info/
float(“3+4”) àtırnak içerisindeki ifade tamsayı veya float değildir.
hata
float(“7”) àtırnak içerisindeki ifade tamsayıdır. O halde çevirme yapılabilir.
7.0
float(“5.7”) àtırnak içerisindeki ifade float’tur. O halde çevirme yapılabilir.
5.7
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 dizilerigerç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.
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 ikarakterlerinin 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.
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.
Print Fonksiyonu ve Formatlama
Bu bölümde ekrana veri tiplerini yazdırmak için kullandığımız print() fonksiyonunu ve formatlama yöntemlerini öğreneceğiz.Print() Fonksiyonu
Kodlarımızı dosyalara yazdığımızda, eğer ekrana bir değer bastırmak istersek print fonksiyonunu kullanırız. Kullanımı oldukça basittir ve
değişik özelliklere sahiptir. Örneklerimize bakalım.
In [1]: print(35)
In [2]: print(3.14)
In [3]: a = 4
b = 15
print(a+b)
In [4]: print("Mustafa Murat Coşkun")
In [5]: print("Murat'ın bugün dersi var.")
Buradaki işlemlerde gördüğümüz gibi biz print fonksiyonunun içine bastırmak istediğimiz değeri veriyoruz ve bu fonksiyon da ekrana
değerimizi bastırıyor. Peki aynı satırda birkaç değer bastırmak istersek ne yapıyoruz? Bunun için değerlerimizin arasına , karakterini atıyoruz.
In [6]: print("Murat",12,545,66767,3.56)
In [7]: print("Mustafa","Murat","Coşkun")
Stringlerdeki Özel Karakterler
Pythonda stringlerde kullanılan özel karakterler mevcuttur ve kullanıldıkları yerler de işlerimizi kolaylaştırır. En çok kullanılan 2 tanesi
şunlardır;
\n karakteri
Eğer print() fonksiyonu stringlerde böyle bir karakterle karşılaşırsa alt satırdan ekrana yazdırma işlemine devam eder. Hemen örneklerimize
bakalım.
In [8]: print("Merhaba\nNasılsın\nİyi misin")
In [9]: print("Selam\nGençler")
\t karakteri
Eğer print() fonksiyonu stringlerde böyle bir karakterle karşılaşırsa bir tab boşluk bırakarak ekrana yazdırma işlemine devam eder. Hemen
örneklerimize bakalım.
35
3.14
19
Mustafa Murat Coşkun
Murat'ın bugün dersi var.
Murat 12 545 66767 3.56
Mustafa Murat Coşkun
Merhaba
Nasılsın
İyi misin
Selam
Gençler
In [13]: print("Ocak\tMart\tŞubat")
In [18]: print("a\t\t\t\t\tb")
type() fonksiyonu
print() fonksiyonundan bahsetmişken type() fonksiyonunu öğrenmekte fayda var. type() fonksiyonu içine gönderilen değerin hangi veri
tipinden olduğunu söyler.
In [20]: # Integer (Tamsayı) türü
a = 65
print(type(a))
In [21]: # Float (Ondalıklı Sayı) türü
a = 5.87
print(type(a))
In [22]: # String (Karakter Dizisi) türü
a = "Murat"
print(type(a))
Print() Fonksiyonunun Özellikleri
Ekrana yazdırma işlemlerimiz sırasında print() fonksiyonunun faydalı özelliklerini kullanırsak yazdığımız kodu daha verimli kılabiliriz. Bunun
için burada 2 tane özellikten bahsedeceğiz.
sep parametresi
print() fonksiyonunda kullanılabilen sep parametresi yazdırdığımız değerlerin arasına istediğimiz karakterlerin yerleştirilmesini sağlar. Eğer bu
parametreyi kullanmazsak değerlerin arasına varsayılan olarak boşluk yerleştirildiğini biliyoruz.Örneklere bakalım.
In [23]: print(3,4,5,6,7,8,9)
In [24]: # sep parametresi sayesinde değerlerin arasına nokta konuyor.
print(3,4,5,6,7,8,9,sep = ".")
In [25]: # Değerlerin arasında "/" sembolü yerleştiriliyor.
print("06","04","2015",sep = "/")
In [26]: print("Mustafa","Murat","Coşkun",sep = "\n")
Yıldızlı Parametreler
Eğer bir stringin başına * işareti koyup, print fonksiyonuna gönderirsek bu string karakterlerine ayrılacak ve her bir karakter ayrı birer string
olarak davranılarak ekrana basılacaktır.
In [33]: # Varsayılan olarak karakterlerin arasına boşluk konuluyor.
print(*"Python")
In [34]: print(*"Python",sep = "\n")
Ocak Mart Şubat
a b
<class 'int'>
<class 'float'>
<class 'str'>
3 4 5 6 7 8 9
3.4.5.6.7.8.9
06/04/2015
Mustafa
Murat
Coşkun
P y t h o n
P
y
t
h
o
n
In [36]: print(*"TBMM",sep =".")
Formatlama
Programlama yaparken bazı yerlerde bir stringin içinde daha önceden tanımlı string,float, int vs. değerleri yerleştirmek isteyebiliriz. Böyle
durumlar için Pythonda format() fonksiyonu bulunmaktadır. Örneğin, programımızda 3 tane tamsayı değerimiz var ve biz bunları bir string
içinde ekrana basmak istiyoruz. Bunun için format() fonksiyonunu kullanabiliriz. format() fonksiyonunun çok fazla özelliği olduğu için, ben
burada sadece en çok kullandığımız özelliğini göstereceğim.
In [41]: # Burada 3 tane süslü parantezimiz ({}) var ve bunların yerine sırasıyla format fonksiyonun içindek
i değerler geçiyor.
"{} {} {}".format(3.1423,5.324,7.324324)
In [46]: a = 3
b = 4
print("{} + {} 'nin toplamı {} 'dır".format(a,b,a+b))
In [47]: # Süslü parantezlerin içindeki sayılar format fonksiyonun içinden hangi sıradaki değerin geleceğini
söylüyor.
"{1} {0} {2}".format(43,"Murat",54)
In [49]: # Süslü parantezlerin içindeki kullanım ondalıklı kısmın sadece 2 basamağına kadar almak istediğimi
z söylüyor.
"{:.2f} {:.2f} {:.3f}".format(3.1463,5.324,7.324324)
Format fonksiyonu ile ilgili kullanımları ihtiyacınız olduğu zaman şu web sitesinden yararlanarak uygulayabilirsiniz; https://pyformat.info/
Yorumlar
Yorum Gönder