1 of 36

PYTHON ile PROGRAMLAMANIN TEMELLERİ

2 of 36

PYTHON

  • Python ücretsiz açık kaynak kodlu bir programlama dilidir.�Kendi internet sitesinden indirilip bilgisayara kurulan Python programında IDLE derleyicisi üzerinde yazılan kodlar, derlenir ve programa dönüştürülür.
  • Site üzerinde çevrimiçi basit bir derleyici de bulunur.
  • IDLE ana penceresinde satır satır kod yazılır ve çalıştırılır. Yani her kdo tek satırda çalışır.
  • IDLE’ın «File» menüsünden «New File» ile açılan yeni pencerede kodlar bir bütün olarak yazılır tek sefer çalıştırılır.

3 of 36

DEĞİŞKENLER

Not: Sayısal değerler tırnak içinde yazılmaz, tırnak içinde karakter(alfanümerik) değerler yazılır.

4 of 36

print komutu

  • Print komutunda parantez içinde yazılanlar çıktı olarak yazılır. Print içinde tek tırnak ya da çift tırnak ile yazılanlar metin yani yazı olarak çıkar. Birden fazla ayrı ayrı bir şey yazılacaksa araya virgül konur. Virgüller çıktıda boşluk olur. Değişkenler parantez içine doğrudan yazılır.

  • Aşağıdaki örneğin çıktısını yazalım

5 of 36

Veri türleri

  • Ad ile yaş değişkenlerinin türleri farklı olduğundan işlem yapılamıyor.
  • Kırmızı yazı kodlar derlenirken bir hata olduğunu göstermek için verilen geri bildirimdir. Genel olarak hatayı noktası, virgülüne kadar bildirmektedir.

6 of 36

  • type() => parantez içine değişken adı ya da değer yazılır
  • Sonucunu aşağıdaki gibi class olarak verir.

  • Float = ondalıklı sayılar
  • İnt=tam sayılar
  • Str=dizi yani alfanümerik karakterler

7 of 36

Round komutu

  • round() parantez içine değişken ya da yazılan bir ondalıklı sayıyı yuvarlar. Noktadan sonraki sayı 5 ve 5ten büyükse bir üste, 5ten küçükse küsüratı atar. Sayıyı basamaklarına göre yuvarlamak için parantez içinde virgülden sonra basamak miktarı girilir.

8 of 36

Aritmetik ifadeler

  • + - / * <- dört işlem işaretleri
  • Matematikteki işlem öncelikleri geçerlidir. İşlemleri ayırmak ya da belirlemek için parantez kullanılır.
  • kf=fiyat+fiyat(kdv/100)
  • kaç=1000 //67 -1000 sayısının içinde kaç tane tam 67 var olduğunu verir
  • k=6854 % 55 - 6854 sayısının 55’e bölümünden kalanı verir

9 of 36

İnput komutu

  • Klavyeden bir değer girilmesi istenildiğinde kullanılan komuttur.��
  • input() parantez içinde tırnak işaretleri içinde bir mesaj yazıdırılabilir. İnput bir değişkene atanır ise giriş yapılan değer ilerleyen aşamalarda kullanılır. İnputta veri türü belirtilmez ise str olarak varsayılan tür olur.

  • Yukarıdaki örnekte input parantez içine alınıp int olarak belirtilmezse girilen not str yani karakter ifade olur. int tam sayıdır.
  • input komutunu print komutu ile karıştırmayın!

10 of 36

if/else ifadesi

  • if <şart> : <şart gerçekleşince yapılacaklar>

else : <şart gerçekleşmeyince yapılacaklar>

Else bir satır aşağıya yazılır. Else gerektiğinde kullanılır. İf olmadan else tek yazılamaz.

İf ve elseden sonra : işareti kullanılır.

  • : dan sonra birden fazla satır kullanılacaksa. : dan sonra enter ile alt satıra geçilir fakat satır başı girintisine dikkat edilmesi gerekir. Yandaki ilk 2 print komutu if ifadesine ait en alttaki print ise else ifadesine ait olduğunu gösterir.
  • Python’da bu satır başı girintileri diğer kod ifadelerinde de karşımıza çıkacaktır.

11 of 36

ÖRNEK:

if - else ile ilgili örnek ve bir önceki konuları da dahil eden genel bir örnek.�Kullanıcı ayrı ayrı 2 not girecek ve 2 notun ortalaması 90 ve üzeri ise üstün başarı belgesi aldığını yazacak. Değilse üstün başarı belgesi alamadığını yazacak.

12 of 36

Else:if yerine elif komutu kullanılabilir. Fakat satır girintilerine dikkat etmek gerekir.

Not: if içinde çoklu kıyaslama yapılacaksa

and ve or operatörleri

kullanılabilir. �And=ve�Or=veya

Yukarıdaki örnekte her zaman tüm satırlar çalışır. Yandaki şekilde if ile else kullanırsak her zaman tüm satırlar çalışmaz.

13 of 36

Boolean ifadesi

  • Bilgisayar sistemleri 0 ve 1 üzerine kurulmuştur diye çok duymuşsunuzdur. 0 ve 1 elektrik sinyalinin var ya da yok olduğunu bildirir. Bilgisayar bu sinyalleri işleyerek işlem yapar. Bu durum var ya da yok, doğru ya da yanlış gibi iki kavramı da belirtir. Boolean ifadeleri de sadece iki değer alır bunlardan biri True diğeri de False. İlk harfleri büyük yazılır.

Not: # işareti ile başlayan yazı açıklama satırıdır. Python # işaretinden sonrasını kod olarak görmez. Genelde not tutmak ya da kodları inceleyenlere bilgi vermek amacıyla kullanılır.

14 of 36

For Döngüsü

  • for (değişkenadı) in range (başlangıç,bitiş+1,değişim miktarı):
  • Değişken adı döngü içinde döngü başlangıç ve bitiş değerlerine kadar değer alır. Herhangi bir değişken ismi yazılır.

  • 20’den geriye ikişer ikişer yan yana aralarına çizgi koyarak yazdıralım.

  • Yan tarafta görüldüğü gibi Print içindeki end komutunu yazmazsak sayıları alt alta yazar ,end komutu ile birlikte tırnak içinde – işareti sayıları yan yana yazarken aralarına – işareti koyar.

15 of 36

print komutu içinde sep ve end

  • Print içeriğindeki ekrana yazdıktan sonra bir alt satıra geçer. Özellikle döngü içinde kullanılan print komutu

  • Yukarıdaki kodlarda end komutu kullanılmazsa yandaki gibi alt alta olur. End komutu kullanılırsa ve tırnak içinde tire işareti koyarsak yine yanda görüldüğü gibi yan yana olur. Tırnak içini boş bırakabiliriz ya da bir işaret koyabiliriz.

Print içinde birden fazla değer yazdırmak istediğimizde

Aralara virgül koyarız. Virgül çıktıda boşluk olarak çıkar.

Bu boşluklara bir karakter ya da ifade yazmak istersek

Sep komutu kullanılır. Sep komutunda tırnak içine yazılanlar

çıktıda çıkar. Tırnak içine bir şey eklemeden bırakılırsa

tüm değerleri bitişik yazar

16 of 36

  • ÖRNEK: Girilen kelimedeki a harfi sayısını bulan program

17 of 36

While Döngüsü

  • Şart doğru olduğu sürece çalışan döngüdür.

  • Yukarıdaki örnekte negatif sayı da girilince program sonlanır fakat toplama negatif sayıyı da ekler. Toplama negatif sayıyı eklememesi için ne yapmalıyız?

18 of 36

  • Bir önceki sorudaki soruna çözüm, sayı girildikten sonra if ile sayının 0’dan büyük olma durumu kontrol edilir ve 0’dan büyük ise toplam işlemi yapılır.

19 of 36

While’da continue ve break

  • Break : şart sağlanınca döngüden çıkar yani bu örnekte While’dan çıkıp en alttaki print komutu satırına gelir.
  • Continue: şart sağlanınca döngüye baştan başlar. Yani While satırına geri döner

20 of 36

Fonksiyonlar

  • Büyük ve kapsamlı bir program yazdığımızı ve program kapsamında pek çok kez aynı işlemi yapmamız gerektiğini düşünelim. Tekrarlanan bu kodları bir paket yapılır ve bu pakete fonksiyon denir.
  • Python içinde bir çok fonksiyon hazır gelir. Örnek print(), type(), round()
  • Hazır olarak gelmeyen fonksiyonlar. Aşağıdaki kod satırı ile çağırılır.
  • from (kütüphane adı) import (fonksiyon adı)
  • Örnek: karekök alan sqrt fonksiyonu

  • Math kütüphanesinden sqrt fonksiyonunu çağırdık.
  • Print ile 15’in karekökünü yazdırdık.
  • Sadece kütüphane(modül) de import ile alınabilir (import math)

Bu şekilde math kütüphanesindeki tüm fonksiyon çağrılmış olunur.

21 of 36

  • Fonksiyon kütüphanesi ya da modül içinde bir çok kütüphane barındırır. Bu kütüphane içinden az sayıda fonksiyon çağıracaksak �from (kütüphaneadı) import (fonksiyonadı1), (fonksiyonadı1)… kod yapısı kullanılabilir.
  • Kütüphane içinden birçok fonksiyon kullanacaksak yukarıdaki örnekteki gibi import (kütüphane adı) kod yapısı kullanılarak tüm fonksiyonlar çağırılır.
  • dir(kütüphane adı) komut yapısı ise kütüphanenin içindeki fonksiyonları listeler.
  • Yukarıdaki turtle kütüphanesi çizim ile ilgili fonksiyonları barındıran bir kütüphanedir.

22 of 36

Time kütüphanesinden time ve sleep fonksiyonları

Adımızı kaç saniyede yazdığımızı söylüyor ardından adımızı 5 defa aralarda 1 saniye bekleyerek yazıyor.

23 of 36

Kendi fonksiyonumuzu oluşturma

  • def (fonksiyon adı) (parametre listesi):
    • Fonksiyonun içi : � kodların bulunduğu yer.

Fonksiyon içinde tanımlanan değişkenler yerel değişkendir. Bu örnekte a ve b değişkeni. Ana programdaki

Değişkenler ise global değişkenlerdir. Bu örnekteki k ve m değişkenleri gibi.

24 of 36

Nesneler

  • Nesneler üzerinde birçok özellik ve fonksiyon çalıştırabileceğimiz yapılardır.
  • Yukarıdaki örnekte ad değişkenine upper fonskiyonu ekleyerek harfleri büyük yazmasını sağladık. Bu durumda str türündeki değişkeni nesneleştirmiş olduk.
  • Nesne adı.metot adı(parametre listesi)
  • Yandaki örnekte kelime değişkenine rjust ekledik.
  • Rjust fonskiyonu kelimeyi 10 karakter yapıyor. Kelime

İçeriğini sağa yaslayıp 10 karakterden boş kalan yerlere yıldız işareti ekliyor.

25 of 36

len komutu ile girilen bir str içeriğin karakter sayısı verilir.

Köşeli parantez içinde yazılan sayı ile str ifadenin o sıradaki karakterini verir. sayılar sıfırdan başlar.

Örnek; Feyza, 5 karakterden oluşmaktadır.

F e y z a

[0][1][2][3][4]

Girilen kelimenin her harfini köşeli paranteze alıp yazdıran örnek

26 of 36

  • Str değişkenlerini nesneleştirmek için kullanılan bazı yöntemler (fonksiyonlar)
  • Bu fonksiyonlar sayesinde onlarca satır yazacağımız kodları bir satırda yapabiliriz.
  • Hatırlayın! Daha önce kelimede a harfi sayısını bulan program 10 satırdan fazla idi. Burada find fonksiyonu ile tek satırda arama yapabiliriz.

27 of 36

Dosya nesneleri

  • Bugüne kadar yaptığımız kodlar çalıştığında girdiğimiz bilgiler programı kapatınca yok olmaktadır. Bu bilgileri bir yere kaydetmek istediğimizde dosya sistemini kullanabiliriz.
  • f = open("dosyam.txt", "r")
  • f = open("dosyam.txt", «w")
  • f = open("dosyam.txt", «a")
  • • ‘r’ yalnızca okunabilir.
  • • ‘w’ dosyayı yazmak için açar, yeni dosya oluşturur.
  • • ‘a’ dosyaya yeni veri eklenerek değiştirme yapılabilir.
  • Yukarıdaki kodlarla örnek dosya r,w,a parametreleri ile ihtiyaç durumana göre kullanılarak açılır ve f (değişken gibi isim veriyoruz f dışında başka isimler de kullanılabilir) adlı nesneye kaydedilir.
  • f.write("dosya içine yazılıyor")
  • Write fonskiyonu ile önceden açılıp f nesnesine eşitlenen dosyaya yazılır.

28 of 36

  • Bu kalıp ile dosya oluşturmak ve üzerinde işlem yapmak daha kolay olur.

  • Örnekte ilk kısımda «ilkdosyam» adında dosya oluşturuldu ve dsy nesnesine atandı. Döngü ile 10 kez içine input ile girilen bilgi yazıldı. \n bilgiyi yazdıktan sonra bir alt satıra geçmesi için.
  • İkinci kısımda ilk kısımda oluşturulan dosya açıldı ve dsy nesnesine atandı. Döngü ile dosya satır satır okunarak ekrana yazdırıldı.
  • Oluşturulan dosya Python dosyalarının kaydedildiği yere kaydedilir. �IDLE’da menüden File/Open açılan pencerede gösterilen dosya türlerini all files/tüm dosyalar işaretlerseniz oluşturduğunuz addaki dosyayı görebilirsiniz.

29 of 36

Turtle ve tkinter nesneleri

  • Bu nesne kütüphaneleri sayesinde çeşitli görsel nesneler hazırlanabilir. Aşağıdaki örneklerde buton ve renkli geometrik şekiller bu kütüphaneler sayesinde oluşturulmaktadır.
  • aşağıdaki örnekte bir buton hazırlanmış tıklanma sayısı bulunuyor.
  • yandaki örnekte dikdörtgen içinde daireler değiştir butonu ile renk değiştiriyor.

30 of 36

cokgen fonksiyonu içinde önce kalem hazırlanır, renk verilir vs. sonra for döngüsü ile kaç kenarlı çokgen istendiyse ona göre çizim yapar. yandaki örnekte kenar sayısı 5, kenar uzunluğu 30, x ve y 0, renk blue olarak veriler girilmiş ve cokgen fonksiyonu görülen çizimi yapmıştır. Çizim yaparken arkada farklı bir pencere açılır.

31 of 36

Listeler

  • Bir değişkene tek bir değer atayabiliriz. Birden çok değer için o sayıda değişken gerekir. Fakat listeler bu durumu kolaylaştırarak tek bir değişken içine birçok değer girmemizi sağlıyor.

  • İsimler değişkeni içinde 3 isim varmış gibi olsa da aslında tırnak işaretlerinden de anlaşılacağı üzere tek değerdir.
  • İsimler2 değişkeni ise köşeli parantezler içinde 3 ayrı değer taşımaktadır.
  • Listelerin ilk kuralı köşeli parantezlerdir. Köşeli parantez içine virgül ile ayırarak değişik türlerde veriler yazılabilir

32 of 36

  • Örnekteki karmaliste 5 elemanlı bir listedir. Eleman sıralaması 0 ile başlar 4’e kadardır.
  • Karmaliste[-1] 🡺 bu koddaki -1 son elemanı gösterir. -2 sondan bir önceki -3 de sondan 2 önce …..

  • Liste içindeki eleman(değer) sıralaması 0’dan başlar.
  • Değer gösterimi listeadı[eleman sıra numarası] şeklindedir.

33 of 36

  • Listeler üzerinde basit eklemeler yapılabilir.
  • Yukarıda kırmızı ok ile gösterilen yerlerde ilk kodda liste nesnesine yeni değerler ekleniyor ve kalıcı oluyor.
  • Alttaki kırmızı ok ile gösterilen kodda listenin yanında yeni değerler ekleniyor ama bu liste nesnesinin içeriğini değiştirmiyor.
  • Yukarıda list fonksiyonu ile belli aralıkta sayı oluşturduk. Yani rakamlar adlı liste nesnesine range ile 0 dan 10’a kadar ama 10 hariç birer birer artarak rakamlar oluşturduk.
  • Range ifadesini for döngüsünden hatırlarsak parantez içine başlangıç, bitiş ve değişim miktarı yazılarak list fonksiyonu ile çeşitli aralıklarda sayıları liste nesnesi olarak oluşturabiliriz.

34 of 36

  • if a in liste�Liste adındaki bir listede a değişkeni varsa�if a not in liste�Liste adındaki bir listede a değişkeni yoksa
  • sayilar += [sayi]�sayilar adındaki listeye sayi değişkeni içindeki değer ekleniyor.
  • Bir listenin istenilen sıradaki elemanını değiştirmek için o eleman numarasına başka bir değer atamak yeterli�örnek : �b=[1,2,3]�b[1]=0�b=[1,0,3]
  • Bir listeyi başka bir isimdeki listeye eşitlersek listeyi başka isimde kopyalamış oluruz�a=[4,7,8]�a=b�b=[4,7,8]
  • Bir listeyi dilimleyebiliriz.�liste=[2,4,6,8,10,12,14,16]�liste[0:3] > 2,4,6�liste[2:6] > 6,8,10,12�liste[başlangıç, bitiş+1]
  • Listeden eleman çıkarma�isimler=["Merve","Can","Aslı","Ali"]�del isimler[2] > ["Merve","Can","Ali"]�not dilimleme gibi de silinebilir > del isimler[1:3]
  • Listelerle birlikte çeşitli fonksiyonlar da kullanılabilir.�sayilar=[3,6,1,9]�sayilar.sort() > [1,3,6,9] �sort fonksiyonu liste içinde artan sırada sıralama yapar.

35 of 36

  • Çok boyutlu listeler
  • Hem satır hem sütundan oluşan listelerdir.�

  • cokliste adında 4 tane 5 elemanlı liste oluşturulmuş. Ana köşeli parantez içine listeler kendi köşeli parantezinde ve aralarında virgül vardır. Print komutu ile listeyi yazıdırırsak yukarıdaki örnekteki gibi listeyi yan yana yazar. İç içe for ile satır sütun gezinerek ve format komutu ile daha düzenli satır sütun şeklinde gösterilir. format içindeki “{:>4}” bu yapı yazılacak sayıyı 4 haneli yazıp ok işareti yönüne dayalı olarak yazdırır.“{:<5}” böyle olsaydı sola dayalı 5 haneli yapardı.

  • cokliste[satır numarası][sütun numarası] şeklinde elemanlara ulaşılır.�cokliste[0][2] > 32�cokliste[3][4] > 823�cokliste[2][2] > 237

36 of 36

  • Python ile Programlamanın Temelleri konusu Bilgisayar Bilimi Dersi Kur 1 kitabının 2. bölümü olarak geçmektedir.
  • Bu sunuda bu kitap konu başlıklarına ve müfredat kapsamına göre gidilmiştir. Kitap içeriği bazı durumlarda doğrudan bazı durumlarda da değiştirelerek, farklı örnekler türetilerek yansıtılmıştır.
  • UNUTMAYIN! Bu sunu sadece bir özettir. Daha fazla anlatım ve örnek için kitabı incelemeniz gerekir.
  • M.E.B. Tarafından oluşturulan bu kitaba aşağıdaki adresten ulaşabilirsiniz.
  • Bu kitap ve bu sunu ile Python konusunda temel anlamda bir eğitim almış olursunuz. Python konusunda daha ileri gitmek ve kendinizi geliştirmek isterseniz internetteki diğer kaynaklar ve kurslardan yardım alabilirsiniz.
  • Anlatılan konuları Python IDLE’da uygulama yaparak daha iyi pekiştirebilirsiniz.
  • Kitap : https://ogmmateryal.eba.gov.tr/panel/upload/etkilesimli/kitap/bilgisayarbilimikur1/sec/unite1/bolum2/index.html