Merhaba arkadaşlar, Python Yapay Zeka Günlüğü #3 phyton öğrenme serüvenime 3. yazısı ile devam... Yapay zeka programlamaya ulaşana kadar durmak yok inşallah. İçinde bulunduğumuz bu sıkıntılı zamanları hem sıkılmadan hem de faydalı bir şey yaparak geçirmek güzel oluyor. Her ne kadar yapay zeka programları yazabilmekten henüz çok uzak olsam da kısmet ise bu bir iki ay içerisinde ufak tefek şeyler başarabilmeyi umuyorum. Derslerin yayınlanma zamanı ilerleme hızımla orantılı değildir. Bu kısımları çoktan geçtim. Biraz mola vermek ve tekrar etmiş olmak amacı ile dersleri sonradan yazıyorum. Böylece bir kaç gün sonra dersleri tekrar etmiş oluyorum.
Siz yazılımcı arkadaşlarım içinde tavsiyemdir. En azından bir blogger yada wordress uzantılı ücretsiz web siteleri açarak kendinize notlar olarak yazılar yazabilirsiniz. Bunun size en büyük faydası bildiğiniz şeyleri göstermektir. Bir yazılımı olarak iş başvurusu yaptığınızda, işe alım ile ilgilenen kişi eğer sizi google üzerinde aratırsa, hakkınızda güzel şeyleri bulmasını istemez misiniz? Sizin iş başvurusu yaptığınız iş için bilgili olduğunuzun en somut kanıtıdır. Neyse fazla uzatmadan notlarıma geçiyorum.
Python Yapay Zeka Günlüğü #3 – Lists – Listeler
Python List İşlemleri
List(), içerisinde çok fazla veri tutabilen bir tür değişkendir. List() kavramı her programlama dilinde var olan bir kavramdır. Bu yüzden ikinci bir programla dili öğrenenler için yabancı olmayan bir kavramdır.
liste_int = [1,2,3,4,5,6,7,8,9] type(liste_int)
Burada int değerlerden oluşan bir liste görülmektedir. Bir List tanımlamak için List anahtar kelimesine ihtiyaç yoktur. Bir değişken tanımlayıp, köşeli parantez içinde bir ve ya bir kaç veri gönderirsek bu değişkenin tipi List olmaktadır. Yukarıdaki örnekte Type() metodunun (fonksiyonunun) geri dönüşü “list” olacaktır.
NOT: Metot ile Fonksiyon kullanış şekline göre aynı anlama gelmektedir. Type() koduna metot demek veya fonksiyon demek yanlış olmayacaktır. Eğer yanlış bir tanımlama olsa bile bazen fonksiyon bazen metot kullanıyor olabilirim. Metot kavramı C# ‘tan gelen bir huy. Umarım aldırmazsınız. :)
deger1= liste_int[0] # ilk değer # indexler sıfırsan başlar. Bu her dil için geçerlidir. deger2= liste_int[1] # ikinci değer deger3= liste_int[2] # üçüncü değer
Diğer programlama dillerinde de olduğu gibi bir veri kümesinden veri alabilmek için, almak istediğimiz verinin index numarasını bilmeliyiz. İndex’ler her programlama dilinde o’dan (sıfır) başlar.
liste_gun = ["pazartesi","salı","çarşamba","perşembe","cuma","cumartesi","pazar"] type(liste_gun) gun1 = liste_gun[0] # pazartesi gun2 = liste_gun[1] # salı gun3 = liste_gun[2] # çarşamba gun4 = liste_gun[3] # perşembe gun5 = liste_gun[4] # cuma gun6 = liste_gun[5] # cumartesi gun7 = liste_gun[6] # pazar
Yukarıdaki örnekte de Type() metodunun geri dönüşü de “list” olacaktır.
son_gun = liste_gun[-1] #sondan başlayarak ilk değeri veriyor. print(son_gun)
Yukarıdaki örnekte görüldüğü gibi, köşeli paranteler içeisine “-1” yazılır ise sondan başlama anlamına gelir. Yani en son değeri (örneğe göre günü) verir. “pazar”
son_gun = liste_gun[-3:] #son üç değeri (günü) veriyor. print(son_gun)
Yukarıdaki örnekte “-3” ile sondan üçüncü değeri alabiliyoruz ancak iki nokta (:) koyulduğundan sondan üç değeri ver diyoruz. Yani burada sadece son değeri değil, sondan başlayarak 3 değeri de veriyor. Örneğe göre alacağımız geri dönüş “[‘cuma’, ‘cumartesi’, ‘pazar’]” olacaktır.
gunler = liste_gun[0:3] # 0. indexten başlayarak 3 elemenı al diyoruz. Yani ilk 3 değeri alıyoruz. print(gunler)
Yukarıdaki örnekte de ilk üç değeri verecektir. Burada alacağımız geri dönüş “[‘pazartesi’, ‘salı’, ‘çarşamba’]” olacaktır.
Python List for Built in Functions – List’e Özel Fonksiyonlar
dir(list) #### ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
dir() komutu, yukarıda gördüğünüz gibi list ‘e ait olan tüm built in functions ‘ları bize listeler.
help(list)
help() komutu, dir komutunun yaptıklarını yapar ancak, her fonksiyonun sadece adını değil açıklamaları ile birlikte listeler.
help(list.append)
Bu örnekte, list kavramının sadece append metodu hakkında bilgileri verir.
liste_int = [1,2,3,4,5,6,7,8,9] liste_int.append(7) liste_int.remove(7) liste_int.reverse() liste_int.sort()
Yukarıdaki örnek üzerinden açıklayalım;
- Append metodu, listenin sonuna parametre olarak aldığı veriyi eleman olarak ekler.
- Remove metodu, parametre olarak aldığı değeri listeden kaldırır. Aynı değerden birden fazla varsa her çalışmasında sadece bir tanesini siler.
- Reverse metodu, listeyi ter çevirir, örnekte 1-9 iken reverse metodundan sonra 9-1 olur.
- Sort metodu, listeyi alfabetik olarak sıralar.
Python Tuple – (Bir Tür List)
Tuple, bir tür list ‘tir ancak çok fazla kullanılmayan bir kavramdır.
List’in aksine köşeli parantez ile değil normal parantez ile yazılır. Ayrıca, List ‘te olduğu kadar fazla metodu yoktur. Sadece 2 tane metodu var.
# çok fazla kullanılmayan bir list tipidir. # çok fazla metodu olmayan bir list tipidir. t = (1,2,3,3,4,5,6) t.count(3) # tuple içinde kaç tane 3 olduğunu sayıyor. t.index(3) # tuple içinde bulunan ilk 3 'ün indexini veriyor.
Python Dictionary – Sözlük
Dictionary, sözlük anlamına gelir. Bir key ve bu key’in bir value’si vardır. Yani bir anahtar ve o anahtarın değeri vardır. Görünüş olarak da sözlüğe benzerdir.
dictionary = { "Ali":32, "Veli":45,"Ayşe":15 }
Bir Dictionary’in (sözlüğün) görüntüsü böyledir. Örneğe baktığımızda Ali bir Key (anahtar) iken 32 ise bir Value’dir (değer).
Bir Key belirterek, Key’in değerini isteyebiliriz.
print(dictionary["Ali"]) type(dictionary["Ali"])
Bu kodu çalıştırdığımızda ekrana yazılacak değer 32 ‘dir. Type() metodu ile “Ali” Key’inin değerinin veri tipini de öğrenebiliriz.
dictionary.keys() # keys leri vrir dictionary.values() # values'leri verir.
Bir sözlük içindeki tüm anahtarları ve tüm değerleri ayrı ayrı alabiliriz.
Örnekler
def Deneme(): dic = { "Ali":32, "Veli":45,"Ayşe":15 } return dic Deneme() # tüm dictionary 'i verir. Deneme()["Ali"] # ali key'inin value'sini verir.
Yukarıdaki örnekte, Deneme adında bir user defination function oluşturduk. Bu fonksiyon bize bir Dictionary üretiyor. Metodu çalıştırdğımızda, dictionary’i geri dönüş olarak veriyor. Yani burada dictionary geri dönüşü yapan bir metod yazmış oluyoruz.
Son satırda yer alan işlem ile de “Ali” anahtarının değerini alabiliriz.
a = "mustafa bükülmez python öğreniyor" a[0:7] + " " + a[17]+a[18]+a[19]+a[20]+a[21]+a[22] + " " + a[-9:] a[0:7] + " " + a[17:23] + " " + a[-9:]
Yukarıdaki örneğe baktığımızda alacağımız sonuç şöyle olacaktır. ‘mustafa python öğreniyor’
İlk çözümde, ilk 7 karakteri aldık. Sonra 17. index ile 22. index arasında kalan karakterleri tek tek aldık. Son olarak da sondan ilk 9 karakteri aldık.
İkinci çözümde, aradaki karakterleri tek tek almak yerine 17.index ile 23.index arasında kalan karakterleri tek seferde aldık.(Bu kısım için ilk başta biraz uğraştım ama bulamamıştım. Yukarıdaki satırı yazarken jeton düştü ama ikisini de vermek istedim. :D )
NOT: Bu şekilde aralık olarak istediğimizde 17 dahil 23 dahil değil anlamına gelir. 23. index alınmaz. Yani 17 >= <23 olur.
d1 = {"mustafa" : 40,"bükülmez" : 45} d2 = {"mustafa" : 55,"bükülmez" : 45} d1 == d2
Bu örnekte, bir eşitlik kontrolü yapıyoruz. d2 sözlüğündeki “mustafa” anahtarının değeri d1’deki “mustafa” anahtarının değeri ile eşit olmadığından alacağımız sonuç “False” olacaktır. (False, True konusunu sonraki yazımda detaylıca göreceğiz. Yani if else konusunu)
Python Yapay Zeka Günlüğü #3 – Lists – Listeler yazımda bu kadardı arkadaşlar. Diğer yazılarımda görüşmek üzere
Diğer yazılarımda görüşmek üzere… Buraya tıklayarak tüm Python yazılarıma ulaşabilirsiniz.
Sağlıcakla ve Takipte kalın. :)