2. İçerik (Hafta/Konu)
1. Tanışma, Giriş, Temel Bilgi ve Kavramlar
2. Python programlama dili nedir? Neden Python? Nasıl Çalışır?
3. Python 2x ve 3x sürümleri ve Python kurulumu, ilk programımız
4. Değişkenler
5. İşleçler ve Koşullar
6. Döngüler
7. Karakter Dizileri
8. Ara Sınav (Vize)
9. Dosya İşlemleri
10. Fonksiyonlar
11. Listeler ve Demetler
12. Sözlükler ve Kümeler
13. Nesne Tabanlı Programlama
14. Web Tabanlı Programlama
15. Hata Yakalama-Ayıklama ve hatalar
16. Genel Tekrar ve Finale Hazırlık
http://www.muratkara.com/python
4. Temel Terimler ve Kavramlar
• Program
• Programlama Dili
– Seviyeler (Düşük, Yüksek)
• Programlama
– Algoritma
– Kaynak Kod (Açık Kaynak)
– Derleme
– Yorumlama
– Debug
• IDE
• GUI
5. Terimler / Kavramlar
• Program: Bilgisayara bir hesaplamayı nasıl
yapacağını söyleyen bir dizi yönergeye denir.
Veya
• Belirli bir işlemi/işlemleri gerçekleştirebilmek
için verilen komut ya da komutlar bütünüdür.
6. Terimler / Kavramlar
• Programlama Dili: İstenilen hesaplamaları
yapmak için, elde edilen veriyi saklamak,
girdi/çıktı aygıtlarına veri gönderme/alma gibi
işlemleri yapmak için kullanılan dildir.
• Programlama dillerinin belirli yazım kuralları
(Syntax) vardır.
7. Terimler / Kavramlar
• Seviye: Bir programlama dilinin insan
algılamasına olan yakınlığının bir ölçüsüdür.
• Programlama Dilleri Seviyelerine Göre;
– Çok Yüksek Seviyeli
– Yüksek Seviyeli
– Orta Seviyeli
– Alçak Seviyeli
– Makine Dilleri
şeklinde sınıflandırılırlar.
8. Terimler / Kavramlar
• Programlama: Bilgisayarın donanıma nasıl
davranacağını anlatan, bilgisayara yön veren
komutlar, kelimeler, aritmetik işlemlerdir.
• Bir programlama dilinde yapılır.
• Yazılan kaynak kod genellikle bir derleyici ve
yorumlayıcı yardımıyla belirli bir sistemde
çalıştırılabilir hale getirilir.
9. Terimler / Kavramlar
• Algoritma: Belirli bir sorunu çözmek için
izlenecek yol.
• Akış Diyagramı(Şeması): Yapılması gereken
işlemlerin adımlarını şema ile gösterilen
grafiktir. (FlowChart)
11. Terimler / Kavramlar
• Açık Kaynak: (Open Source) Bir bilgisayar
yazılımının makina diline dönüştürülüp
kullanımından önceki, programcılar tarafından
okunur, anlaşılır, yeni amaçlara uygun
değiştirilebilir hâlinin gizli tutulmayıp açık, yani
okunabilir hâlde kamuyla paylaşılıyor olmasına
verilen isimdir.
• Kaynak kodu isteyen herkese açık olan yazılımdır.
• Kullanıcıya değiştirme özgürlüğü sağlar.
12. Özgür Yazılım (Free software)
Kullanıcısına;
• Çalıştırma,
• Kopyalama,
• Dağıtma,
• İnceleme,
• Değiştirme ve
• Geliştirme
özgürlükleri tanıyan yazılım türüdür.
13. Terimler / Kavramlar
• Derleyici(Compiler): Kaynak dili yüksek seviyeli
bir dil, amaç dili alçak seviyeli(makine) bir dil
olan çevirici programlara denir.
(Kaynak koddan, donanıma veya işletim sistemine uygun başka
bir çalışan program oluşturmaktır.)
• Yorumlayıcı(Interpreter): Kaynak kodların satır
satır ele alınarak doğrudan çalıştırılmasıdır.
14. Derleyici / Yorumlayıcı
• Kaynak Kod -> Derleyici -> Çalışabilir Program
• Kaynak Kod -> Yorumlayıcı -> Çalışan Kodlar
15. Terimler / Kavramlar
• Debug: Mantıksal hataları giderebilmek ve
yazılımdaki bug'ları (hataları) bulabilmek için
yapılan işlemin adıdır.
• Genellikle yazılan programın adım adım ve
denetim altında çalıştırılmasıdır.
16. Terimler / Kavramlar
• IDE (Integrated Development Environment)
• Tümleşik Geliştirme Ortamı
• IDE bilgisayar programcılarının hızlı ve rahat
bir şekilde program geliştirebilmesi amacıyla
içerisinde birçok araç barındıran, programlama
diline göre sözdizimi renklendirmesi yapabilen
kod yazım editörüdür.
17. Terimler / Kavramlar
• GUI: (Graphical User Interface)
• Grafiksel Kullanıcı Arayüzü
• Bilgisayarlarda işletilen komutlar ve bunların
çıktıları yerine simgeler, pencereler, düğmeler
ve panellerin tümünü ifade etmek için
kullanılan genel addır.
18. Programlama Dillerinin Sınıflandırılması
• Genel özelliklerine göre;
– Temel
– Veriye Yönelik
– Nesneye Yönelik
• Seviyelerine göre;
– Çok Yüksek Seviyeli
– Yüksek Seviyeli
– Orta Seviyeli
– Alçak Seviyeli
– Makine Dilleri
• Uygulama Alanlarına göre;
– Genel Amaçlı
– Sistem Programlama
– Bilimsel Mühendislik
– Veritabanı
– Yapay Zeka
19. Python
• Genel amaçlı,
• Nesne yönelimli,
• Yüksek seviyeli,
• Yorumlamalı,
• Modüler,
• Etkileşimli,
Bir programlama dilidir.
20. Programlama Dillerinin Değerlemesi
• İfade Gücü (Expressivity)
• Veri Türleri ve Yapıları (Data Types and Structures)
• Giriş/Çıkış Kolaylığı (Input/Output Facilities)
• Taşınabilirlik (Portability)
• Alt programlama Yeteneği (Modularity)
• Verimlilik (Efficiency)
• Okunabilirlik (Readability)
• Esneklik (Flexibility)
• Öğrenme Kolaylığı (Pedagogy)
• Genellik (Generality)
• Yapısallık (Support for Structural Programming)
• Nesne Yönelimlilik (Object Orientation)
28. Python Tanıtım Kartı
Geliştirici
İlk Tasarımcı
İlk çıkış tarihi
Lisansı
İşletim Sistemi
Etkilendikleri
Etkiledikleri
Güncel sürümü
Dosya uzantıları
Web sitesi
Python Yazılım Vakfı
Guido van Rossum
20 Şubat 1991
Python Yazılım Vakfı Lisansı (PSF)
Çapraz platform (Win, Linux, Mac)
C, Haskel, Modula-3, Perl, Java, Lisp
D, Cobra, Falcon, Ruby, Go, JavaScript
3.7.0
.py, .pyw, .pyc, .pyo, .pyd
www.python.org
29. Python Adı? Okunuşu?
• Python
• «Piton»
• «Paytın»
• «Pitın»
• Komedi grubu Monty Python ‘a atıfla Guido
tarafından Python olarak adlandırılmıştır.
• Monty Python'un Uçan Sirki
(Monty Python's Flying Circus)
• İngiliz eskiz komedi dizisidir.
• Monty Python Komedi grubu.
http://www.montypython.com
30. Python Programlama Dili
• Yorumlamalı, etkileşimli, nesne yönelimli,
yüksek seviyeli bir dildir.
• Guido van Rossum tarafından geliştirilmeye
başlanmıştır.
• İlk olarak Şubat 1991 de (v0.9.0) ile
başlandığında Modula-3 den ödünç modül
sisitemi kullanılmıştır.
31. Guido van Rossum
• Hollandalı bir bilgisayar
programcısıdır.
• Amsterdam Üniversitesi mezunu.
• Amerika Kaliforniya’da yaşıyor.
• Google’da çalıştı. (2005-2012)
• Halen Dropbox’da çalışıyor.
(2013-ten günümüze)
• Kişisel sitesi:
https://gvanrossum.github.io/
32. Guido / Python
• Guido van Rossum:
Welcome to Python Programming
• https://www.youtube.com/watch?
v=SdH8fI1aNZA
• Guido Van Rossum :
Design of Computer Programs
• https://www.youtube.com/watch?
v=bDo18m-uOi8
33. Neden Python? (Artıları)
Net ve kolay okunabilen yazımı
Güçlü ifade yeteneği
Modüler yapısı
Kolay anlaşılır nesne tabanlı programlama
özellikleri
Çalışma esnasında objelerin özelliklerini
inceleyebilme imkanı
Exception tabanlı hata yönetimi
Çok yüksek seviye dinamik veri yapıları
Çok geniş kütüphaneleri
35. Python Yazılım Vakfı (PSF)
• Python Yazılım Vakfı (Python Software Foundation, kısaca PSF)
6 Mart 2001 tarihinde Python programlama
dilini korumak, geliştirmek ve uluslararası
alanda gelişimine destek sağlamak amacıyla
kurulmuş, kar amacı gütmeyen bir vakıftır.
https://www.python.org/psf/
36. Python Nerelerde?
Kullananlar
• Google
• Yahoo
• Dropbox
• Reddit
• NASA
• CERN
• Wikipedia
• ILM
• ITA
• …
Gömülü Ürünler
• 3dsMax
• Blender
• Cinema 4d
• Lightware
• Maya
• FreeCAD
• Nuke
• GIMP
• …
İşletim Sistemleri
• Linux
• FreeBSD
• MacOS
• OpenBSD
• AmigaOS
• Anaconda
(Ubuntu, RedHat, Fedora)
• Portage
(Gentoo paket yönetim sistemi)
…
LibreOffice, Yapay Zeka, Raspberry Pİ,..
38. Neler Yapılır?
• Veri Analizi
• Bilimsel
• Sistem Yönetimi
• Web Uygulamaları
• Ağ ve Soket prog.
• Web Tarama (Örümcek)
• API oluşturma (REST)
• Machine Learning
Ne Yapamazsınız?
• İşletim Sistemi yapamazsınız..
• Yüz Tanıma
• Veri Madenciliği
• Parola Decrypt
• Oyun geliştirme
• Http Sunucu
• Yük Dengeleyici
• Plugin geliştirmek
• Modül ve Kütüphaneler
40. IDE’ler
Entegre Geliştirme Ortamı (Integrated Development Environment)
• IDLE
• Notepad++
• Text editor (hepsi)
• SubLime
• Thonny
• PyCharm
• Wing
• Visual Studio (Python for Tools)
• PyStudio
• Komodo
• Netbeans
• Eclipse
• …
41. IDLE
• Python IDLE
• Integrated Development and Learning Environment
(Integrated Development Environment)
• Entegre Geliştirme ve Öğrenme Ortamı
(Entegre Geliştirme Ortamı)
• Python için entegre bir geliştirme ortamıdır.
(Etkileşimli Kabuk - interactive shell )
https://www.python.org
42. Notepad++
• GPL ile dağıtılan açık kaynak kodlu bir kaynak
kod düzenleyicisidir. Scintilla metin editörü
temel alınarak geliştirilmiştir.
• Türkçe dahil 84 ayrı konuşma diline destek
veren bir arabirimi vardır.
• 73 ayrı programlama dilinin söz dizimi ve
renklendirmesini yapabilen Windows
ortamının en popüler editörüdür.
https://notepad-plus-plus.org/
43. Thonny
• Yeni başlayanlar için bir Python IDE’dir.
• Adım adım ifade değerlendirmesi ve değişken
değeri gibi bildirimleri ile kolay kullanımlıdır.
• Tartu Üniversitesi (Estonya) tarafından MIT
lisansı ile dağıtılan Windows, Linux, MacOS’da
kullanılabilen bir IDE’dir.
http://thonny.org
44. PyCharm
• JetBrains firması tarafından ticari bir ürün olarak
özellikle python dili için geliştirilen bir IDE’dir.
• Kod analizi, grafiksel bir hata ayıklayıcı, entegre
bir ünite test cihazı, sürüm kontrol sistemleri ile
entegrasyon (VCSes) ve Django ile web geliştirme
desteği sunar.
• Windows, Linux ve MacOS da kullanılabilen
Community(Topluluk) ve Ticari lisanslı iki sürümü
vardır.
https://www.jetbrains.com/pycharm/
47. Haftaya Hazırlık (İndiriniz)
• Python (3.7.0)
– www.python.org
python-3.7.0.exe ~25MB
• Thonny
– http://thonny.org/
thonny-2.1.22.exe ~11MB
>>> Kurulum ve giriş haftaya..
48. PYTHON 2X VE 3X SÜRÜMLERİ,
PYTHON KURULUMU
3. Hafta
49. Sürümleri
• Güncel Sürümler;
– Python 3.7.0
– Python 2.7.15
• Python 1991 den beri gelişimini devam ettiren bir
dildir. Gelişim yeni sürümler ile devam etmektedir.
• Python3, python2 ye göre çok daha güçlüdür.
• Python2 belirli bir süre sonunda desteği kesilecek bir
sürümdür.
71. Linux
Kaynak kod ile kurmak için;
#wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
#tar xJf Python-3.6.3.tar.xz
# cd Python-3.6.3
# ./configure
# make
# make install
87. Değişken (Variable)
• Değer taşıyan isimdir.
• İçinde veri tutan birimdir.
• Ram’de ayrılan bellek miktarıdır.
• Bir değişkene değer atama ifadesi eşit(=)
kullanırız.
• Python’da değişkenleri önceden tanımlamak
gerekmez.
Değişken
88. Değişken Örnekleri
• a=5 -> a’nın değeri 5 tir.
• b=10 -> b’nin değeri 10 dur.
• adi="Murat" -> adi değişkeni Murat tır.
• numara=2018 -> numara 2018 dir.
• dil="Python" -> dil’in değeri Python dur.
• pi=3.14 -> pi bize 3.14 değeri verir.
Lütfen, Sizde Deneyiniz..!
89. Değişken Örnekleri
>>> ocak = mart = mayıs = temmuz = ağustos = ekim = aralık = 31
>>> nisan = haziran = eylül = kasım = 30
>>> şubat = 28
>>> ocak
31
>>> haziran
30
>>> şubat
28
>>> mayıs
31
Sıra Sizde!
Lütfen Deneyiniz..!
90. Python’da Değişken İsimleri..
• Değişkenler;
– Sayı ile başlayamaz, (2-Kisi=20 tl)
– Aritmetik işleçlerle başlayamaz, (+fayda=6789)
– Harf veya _ (alt_tire) ile başlamalıdır, (adi, _adi)
– Belirli fonksiyona sahip adlar kullanılamaz, (del, and,..)
– Kelimeler arasında boşluk bırakılmaz, (ogrenci no)
– Büyük Harf ve küçük harf ayrımı Vardır. (adi ≠ Adi)
• Tavsiyeler;
– Çok kısa veya çok uzun olmamalıdır,
– Mümkün olduğunca anlamlı olmalıdır,
– Türkçe karakter kullanmak ilerde sorun olabilir.
91. Değişken İsimlendirme Yöntemleri
• Yazılım dünyasında değişken adlandırmada kullanılan yöntemler
(Notasyon);
• Pascal
– İlk harfleri büyük, devamı küçük harf.
• Camel (Deve)
– İlk kelimenin tamamı küçük harf, geri kalan tüm kelimelerin ilk harfi
büyük.
• Macar (Hungarian)
– İlk 2 veya 3 harfte değişken tipi, sonrası anımsatıcı.
• Uppercase (Büyük Harf)
– Tamamı büyük harf.
• Underscore (Altçizgili)
– Kelimeler altçizgili.
101. print() Örnekler
>>> print("bir", "iki", "üç", "dört", "on dört", sep=" mumdur ",
end=" mumdur")
bir mumdur iki mumdur üç mumdur dört mumdur on
dört mumdur
>>> print("ÇukurovanÜniversitesinAdana")
Çukurova
Üniversitesi
Adana
[ n -> Satır Başı ]
Lütfen Deneyiniz..!
103. Kaçış Dizileri (Kaçış Karakterleri)
Python’da özel anlam taşıyan işaret veya karakterleri, sahip
oldukları bu özel anlam dışında bir amaçla kullanmamızı sağlayan
birtakım araçlardır.
• n satır başı
• t sekme
• u Unicode
• x Onaltılı Karakter
• …
104. Kaçış Dizisi(Karakteri) ve Anlamı
Kaçış Anlamı
’ Karakter dizisi içinde tek tırnak işaretini kullanabilmemizi sağlar.
” Karakter dizisi içinde çift tırnak işaretini kullanabilmemizi sağlar.
Karakter dizisi içinde işaretini kullanabilmemizi sağlar.
n Yeni bir satıra geçmemizi sağlar.
t Karakterler arasında sekme boşluğu bırakmamızı sağlar.
u UNICODE kod konumlarını gösterebilmemizi sağlar.
U UNICODE kod konumlarını gösterebilmemizi sağlar.
N Karakterleri UNICODE adlarına göre kullanabilmemizi sağlar.
x Onaltılı sistemdeki bir sayının karakter karşılığını gösterebilmemizi sağlar.
a Sistemlerde, kasa hoparlöründen bir ‘bip’ sesi verilmesini sağlar.
r Aynı satırın başına dönülmesini sağlar.
v Destekleyen sistemlerde düşey sekme oluşturulmasını sağlar.
b İmlecin sola doğru kaydırılmasını sağlar
f Yeni bir sayfaya geçilmesini sağlar.
r Karakter dizisi içinde kaçış dizilerini kullanabilmemizi sağlar
* Hepsi tüm sistemlerde çalışmayabilir..!
105. Kaçış Dizisi-Karakteri Örnekler
>>> print("ÇukurovanÜniversitesinAdana")
Çukurova
Üniversitesi
Adana
>>> print("bir", "iki", "üç", sep="t")
bir iki üç
108. Dosya Kullanımı (.py)
• IDLE dosya kullanımı
• Dosya uzantısı .py olmalıdır. (IDLE otomatik yapar.)
• File - > New File (Ctrl+N)
– Yeni Dosya Oluşturulur.
• Run -> Run Module (F5)
– Dosya Çalıştırılır.
• (Dosya çalıştırılmadan önce kaydedilir.)
112. Alıştırmalar
1. Adı, Soyadı, Bölümü ve Numarası değişkenlerini
yazıp ekrana basalım.
2. Okul değişkenini aşağıdaki şekilde yazdıralım.
Ç_u_k_u_r_o_v_a_Ü_n_i_v_e_r_s_i_t_e_s_i
3. a, b, c değişkenlerini aşağıdaki şekilde
yazdıralım. (alt alta)
Adana
Mersin
Hatay
114. Uygulama
• Her gün Üniversiteye gelip geri dönen bir
öğrencinin Aylık yol parası masrafını hesaplayan
programı yazınız.
– Detaylar;
• Gidiş: 1.55 TL,
• Dönüş: 1.55 TL,
• Haftada 5 gün,
• Ayda 20 gün,
• Değişkenler: Adi, Soyadi, Yol_Masrafi, Gun, Ucret
– Sonuç;
Adı Soyadının günde ~3 TLden 20 günde Aylık Yol
masrafı … TL olmaktadır. (şeklinde olmalıdır.)
117. İşleç (Operator)
Sağında ve solunda bulunan değerler(operand)
arasında bir ilişki kuran işaretlerdir.
• Aritmetik İşleçler
• Karşılaştırma İşleçleri
• Bool İşleçleri
• Değer Atama İşleçleri
• Aitlik İşleçleri
• Kimlik İşleçleri
118. Aritmetiksel İşleçler
Matematikte kullanılan ve sayılarla aritmetik işlemler
yapmamızı sağlayan yardımcı araçlardır.
+ Toplama // Tamsayı bölme (taban bölme)
- Çıkarma % Modüler bölme (modülüs)
* Çarpma ** Kuvvet alma
/ Bölme
124. Aitlik İşleçleri
Bir karakter dizisi ya da sayının, herhangi bir veri tipi
içinde bulunup bulunmadığını sorgulamamızı
sağlayan işleçlerdir.
>>> a="abcd"
>>> "a" in a
True
>>> "f" in a
False
125. Kimlik İşleçleri
Her nesnenin kimlik numarası (Identity) vardır.
id() Nesnenin bellekteki adresini gösterir.
>>> a=100
>>> id(a)
1406130748
>>> c=50
>>> id(c)
1406129984
Aynı kimlik
Numarası (id).
100 sayısı için
bellekte iki farklı
nesne oluşturmuyor.
-5 … 257 arası
128. Koşullar
• if
• elif
• else
• if(Eğer ise), elif(Doğru ise), else(Hiçbiri Değil ise)
• if, tüm olası sonuçlar,
• elif, sadece doğru olan ilk sonuç,
• else, koşulların hiçbiri olmazsa yapılacak olan.
129.
130. if
if koşul :
koşul doğruysa yap
eğer koşul(şöyle bir durum varsa) :
bunu yap
şunu da yap
: Girinti (kod bloğu başlatıyor)
131. if
>>> a=5
>>> if a>2 :
print("a 2'den büyüktür")
a 2’den büyüktür
>>>
132. elif
if koşul1 :
koşul1 doğruysa yap
elif koşul2(başka bir durum varsa) :
koşul2 doğruysa şunu da yap
: Girinti (kod bloğu başlatıyor)
133. elif
>>> yas=15
>>> if yas<18 :
print("Merhaba çocuklar")
elif yas>18 :
print("Merhaba Gençler")
Merhaba çocuklar
>>>
134. else
if koşul1 :
sonuç 1
elif koşul2 :
sonuç 2
elif koşul3 :
sonuç 3
else : # Hiçbirisi değilse..!
sonuç 4
137. input()
• Kullanıcıdan Bilgi almak veya veri girişi yapmasını
sağlamak için kullanılır.
>>> input("Adınızı Yazınız:")
Adınızı Yazınız: Murat
‘Murat’
>>>
adi=input("Adınız:")
print("Sayın", adi, "Hoşgeldiniz")
Adınız:Murat
Sayın Murat Hoşgeldiniz
138. Örnek
• Kullanıcının girdiği iki sayının toplamını bulan
programımız;
sayi1=input("Bir sayı giriniz:")
sayi2=input("İkinci sayı giriniz:")
toplam=int(sayi1)+int(sayi2)
print("Sayıların toplamı", toplam)
Lütfen deneyiniz..!
139. Alıştırmalar
Kullanıcının girdiği sayının karesini(üssü) bulan
programı yazınız.
sayi=int(input("Hesaplanacak sayıyı giriniz:"))
sonuc=sayi**2
print("Girdiğiniz sayı:",sayi,"nSayının Karesi:",sonuc)
140. Uygulama
Beden Kütle Endeksi hesaplayan bir program.
Kullanıcıdan kilo ve boy bilgisi alıp hesaplama sonucunu
aşağıdaki aralıklara göre veren programı yazınız.
• BKI=Kilo/boy2 (Kilo’yu, Boy’un karesine böleceğiz)
• Zayıf <18.5
• Normal 18.5-24.9
• Kilolu 25.0-29.9
• Şişman 30.0-34.9
• Obez >40 Lütfen yapınız..!
142. İç İçe Koşul
Örnek: Kullanıcın girdiği sayının negatif mi pozitif mi olduğunu
değerlendirdikten sonra sayının 3 bölünüp bölünmediğini kontrol eden
bir program.
sayi=float(input("Sayı giriniz:"))
if sayi>0:
if sayi %3==0:
print("Sayı 3 e bölünebilir")
else :
print("Sayı 3 e Bölünemez")
else:
print("Negatif sayı girdiniz")
143. Ödev
Kullanıcının girdiği veriden sonra en az 4 farklı
duruma göre değerlendirip sonucu ekrana yazdıran
programı yazınız.
Ör:
• Hesap makinası
• Öğrenci notlarının harf not karşılıkları
• Alan, yarıçap, vb. hesaplama (kare, diktörgen vb.)
• Hava sıcaklığına göre ortamın değerlendirilmesi
145. Döngü(Loop)
• Döngü, bir işi, belirlediğiniz sayıda (veya koşulda)
yapan kod bloklarıdır.
• Tekrar eden işlemlerde kullanılır.
• Döngüler koşul doğru olduğu sürece
dönmektedir.
• Koşul sağlanmadığı taktirde döngüden
çıkmaktadır.
151. Alıştırma
1 ‘ den 100 ‘ e kadar olan aralıktaki çift sayıları while
döngüsü kullanarak yazınız.
Lütfen deneyiniz..
sayi=0
while sayi < 100 :
sayi += 1
if sayi % 2 == 0 :
print(sayi)
# if bloğundan çıkıyoruz.
#while bloğundan çıkıyoruz.
152. For Döngüsü
• For -> İçin anlamına geliyor..
• Genelde in ifadesi ile kullanılmaktadır.
• İn -> İçinde anlamına geliyor..
• İşlemlerin tekrar sayısının önceden belli
olduğu durumlarda kullanılır.
• Tekrarlama veya yineleme anlamlarına gelen
iterasyon ile birlikte kullanılır.
153. for
>>> for değişken in sıralama :
ifadeler (komutlar)
Bloğun dışında kalan komutlar..
154. for
for karakter in "Python":
print ("Harf:", karakter)
Harf: P
Harf: y
Harf: t
Harf: h
Harf: o
Harf: n
159. Break ve Continue
• Break, devam eden bir süreci kesintiye
uğratmak için.
• Continue, kendisinden sonra gelen her şeyin
es geçilip döngünün başına dönülmesini
sağlamak için.
• Genellikle while, for veya if ile
kullanılmaktadırlar..
160. Break Örneği
while True:
sehir = input("Lütfen bir şehir yazınız:")
if len(sehir) < 3:
print("Şehir 3 karakterden az olmamalı!")
else:
print("Şehir belirlendi!")
break
161. Continue Örneği
while True:
s = input("Bir sayı giriniz: ")
print("Sayınız: ",s)
if s == "x": # x girilince program sona erecek.
break
if len(s) <= 3:
continue # 3 haneden az olursa başa dön
print("En fazla üç haneli bir sayı girebilirsiniz.")
162. Uygulama
En güney ilimizi soran ve kullanıcıya 2 şans veren programı
while döngüsü ile yazınız.
print("En güney il?")
print("iki şans var.")
girilen=""
i=1
while i <= 2 :
print(i,". şans")
girilen=input("Bir İl Giriniz:")
if girilen == "Hatay" :
print("Tebrikler!")
break
i+=1
else:
print("Üzgünüm, hakkınız bitti")
163. Ödev
• Kullanıcıdan 1-100 arası bir sayı girmesini
isteyip,
– Sayının verilen aralık dışında olması durumunda
uyarmasını sağlayan,
– Sayının devamını 100’e kadar olan çift sayıları
listeleyen
Bir program yazınız..
166. Karakter Dizileri
• Karakter Dizilerinin
uzunluğu len() ile
bulunur.
>>> len(cumle)
21
>>> len(sayi)
9
>>> for i in range(8):
print(cumle[i])
Ç
u
k
u
r
o
v
a
167. Örnek
ad=input("Adınız: ")
for i in range(len(ad)):
print("Adınızın {}. harfi: {}".format(i, ad[i]))
Adınız: Murat
Adınızın 0. harfi: M
Adınızın 1. harfi: u
Adınızın 2. harfi: r
Adınızın 3. harfi: a
Adınızın 4. harfi: t
168. Karakter Dizilerini Dilimlemek
• Dizinin istenilen başlanış ve bitiş aralığında
dilim olarak ayırmak için.
karakter_dizisi[alınacak_ilk_öğenin_sırası:alınacak_son_öğenin_sırasının_bir_fazlası]
>>> cumle="Çukurova Üniversitesi"
>>> cumle[5:9]
'ova '
169. Karakter Dizilerini Dilimlemek
M e r h a b a
0 1 2 3 4 5 6
-7 -6 -5 -4 -3 -2 -1
>>> s[başla:bitir]
>>> s[1:5] -> ‘erha’
>>>s[-4] -> ‘h’
>>>s[:-3] -> ‘Merh’
>>>s[-3:] -> ‘aba’
170. Örnek
cumle=input("Lütfen bir cümle giriniz: ")
basla=int(input("Başlangıç sayısı: "))
bitir=int(input("Bitiş sayısı: "))
dilim=cumle[basla:bitir]
print(dilim)
>>>
Lütfen bir cümle giriniz: Burada çook uzun bir cümle yazdık
Başlangıç sayısı: 7
Bitiş sayısı: 16
çook uzun
171. Karakter Dizilerini Ters Çevirmek
• Dizinin ters çevrimini aşağıdaki yapıya göre
gerçekleştirir.
karakterDizisi[ilk_karakter:son_karakter:atlama_sayısı]
>>> a="Adanalıyık"
>>> a[::-1]
'kıyılanadA'
veya
>>> print(*reversed(a))
k ı y ı l a n a d A
174. Karakter Dizilerinin Metotları
• lower()
• upper()
• title()
• count()
• find()
• isdigit()
• isalnum()
• strip()
• replace()
Küçük harfe çevirir
Büyük harfe çevirir
İlk harfleri büyüğe çevirir
Harf veya ifadenin kaç kez geçtiğini verir
Harf(karakter) arar, yer sayısını verir
Sayısal olup olmadığını verir
Alfa numerik(harf-sayı) olup olmadığı
İstenmeyen karakterleri siler
Harf veya karakterleri değiştirir
178. Dosya Komutu (open)
open() komutu dosya işlemlerinde kullanılır.
open("dosyaAdı.uzantı", "kip (veya mode, argüman)")
veya
abc=open("dosyaAdı.uzantı", "kip (mode, argüman)")
şeklinde kullanılır.
180. Dosya Kipleri (Argümanları)
Kip (Argüman) Görevi
w Yazma (write)
r Okuma (read) (öntanımlı)
a Ekleme (append)
b İkili (binary)
x Yazma (exclusive ) (var olan dosyayı silmeden)
+ Güncelleme (Okuma-Yazma)
191. Uygulama
Öğrenci listesini tutan bir dosya oluşturup içerisine 4 kayıt
ekleyen bir program yazınız.
i=1
dosya=open("ogrenci.txt","a+")
for i in range(1,5):
adi=input("Adi Soyadi:")
num=input("Numarası:")
dosya.write(num+"t"+adi+"n")
dosya.close()
dosya=open("ogrenci.txt","r")
oku=dosya.read()
print("Rehberdeki kayıtlar:n",oku)
dosya.close()
192. Ödev
Telefon rehberi uygulaması..
Telefon numaralarını ve Ad Soyad bilgilerinin
kullanıcı tarafından girilmesi ve onların dosyaya
yazılması şeklinde bir program yazınız.
194. Fonksiyon
• Belirli sayıda verileri kullanarak bunları işleyen ve
bir sonuç üreten komut grubudur.
• Tekrar eden komutların kolayca kullanımı için..
• Fonksiyon tanımlama def ile yapılmaktadır.
• define – definition
def fonksiyon_adi():
şeklinde tanımlanır..
197. Python’da Fonksiyonlar
• Gömülü Fonksiyonlar (builtin functions )
– Python dili içinde tanımlıdır.
– print(), open(), str(), int() vb…
• Özel (Kullanıcı Tanımlı) Fonksiyonlar (custom functions)
– Programı yazan kişi tarafından kodlanır.
198. Parametre ve Argüman
def adSoyad(adi,sehir): Parametre
print("Merhaba,",sehir,"şehrine ve ",adi,"Üniversitesine")
adSoyad("Çukurova","Adana") Argüman
199. Sıralı (İsimsiz) Parametre
def adSoyad(adi,sehir):
print("Merhaba,",sehir,"şehrine ve ",adi,"Üniversitesine")
adSoyad("Çukurova","Adana")
Sıralı adi ve sehir parametreleri mevcuttur.
201. return
return deyimi fonksiyonun geriye değer döndürmesini
sağlar.
def topla(a,b):
toplam=a+b
return toplam
print("Sayıların Toplamı:",topla(2,2))
203. global
• Bir değişkeni fonksiyon içinde kullanırsak sadece
fonksiyonda geçerli olur. Her zaman kullanmak istersek
global olarak tanımlamamız gereklidir.
sehir = "Adana"
def yaz():
global sehir
sehir += "Çukurova"
return sehir
print(yaz())
205. Alıştırmalar
Kullanıcının girdiği veriyi küçük harf, büyük harf ve alt alta harf harf sıralayan
bir program.
veri=input("Lütfen bir veri giriniz:")
def kucuk():
kucuk_harf=veri.lower()
return kucuk_harf
def buyuk():
buyuk_harf=veri.upper()
return buyuk_harf
def sirala():
for harf in veri:
print(harf)
print(kucuk())
print(buyuk())
print(sirala())
206. Uygulama
Kullanıcıdan yapacağı işlemi seçtiren, ardından
iki sayı girilmesini isteyen bir hesap makinası
programı yazalım.
İşlemler fonksiyonlar şeklinde olmalıdır.
1 Toplama
2 Çıkarma
3 Çarpma
4 Bölme
Şeklinde..
207. Hesap Makinası
# Toplama Fonksiyonu
def Topla(x, y):
return x + y
# Çıkarma Fonksiyonu
def Cikar(x, y):
return x - y
# Çarpma Fonksiyonu
def Carp(x, y):
return x * y
# Bölme Fonksiyonu
def Bol(x, y):
return x / y
print("Yapılacak İşlemi Seçiniz.")
print(25*"=")
print("1. Toplama")
print("2. Çıkarma")
print("3. Çarpma")
print("4. Bölme")
print(25*"=","n")
# Kullanıcıdan Seçim İsteme
secim = input("Seçiminiz (1 _ 2 _ 3 _ 4):")
sayi1 = int(input("1. Sayı: "))
sayi2 = int(input("2. Sayı: "))
if secim == '1':
print(sayi1,"+",sayi2,"=", Topla(sayi1,sayi2))
elif secim == '2':
print(sayi1,"-",sayi2,"=", Cikar(sayi1,sayi2))
elif secim == '3':
print(sayi1,"*",sayi2,"=", Carp(sayi1,sayi2))
elif secim == '4':
print(sayi1,"/",sayi2,"=", Bol(sayi1,sayi2))
else:
print("Geçersiz Giriş")
208. Ödev
• Kullanıcının girdiği veriye göre;
• Yazı ise harflerine ayırıp ekrana yazan,
• Sayı ise Asal olup olmadığını kontrol eden
bir program yazınız.
210. Listeler
• Listeler değiştirilebilen (mutable) bir veri tipidir.
liste=[ ] köşeli parantezler içinde tanımlanır.
liste=[öğe,öğe,öğe]
veya
liste=["öğe","öğe","öğe"]
şeklindedir.
220. Örnek
0 ile 1000 arasındaki çift sayıları listelemek için
liste üreteçlerini kullanalım.
ciftSayilar = [i for i in range(100) if i % 2 == 0]
print(ciftSayilar)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36,
38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70,
72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98]
221. Demetler (Tuple)
Demetler değiştirilemez (immutable) veri tipidir.
Demetler () parantezler ile tanımlanır.
demet=(‘Çukurova’ ,)
*Karakter dizisinden farkını belirtmek için sonuna virgül konur.
demet=('Çukurova',)
print(demet)
print(type(demet))
('Çukurova',)
<class 'tuple'>
222. Demetler Nerede Kullanılır
• Ayar, config, sabit değerler için kullanımı
yaygındır.
Ör;
TEMPLATE_DIRS = ('/home/projects/djprojects/blog/templates',)
Sonda bulunan virgül’e { , } dikkat…
224. Liste Metodları
• liste.append("Yeni öğe") # tek öğe eklemek
• liste.extend(baskaListe) #listeye liste ekler(genişletir)
• liste.insert(0, "öğe") #istenen sıraya öğe ekler.
• liste.remove("öğe adı") # öğe siler.
• print(*reversed(liste))
Veya
print(list(reversed(liste)))
• liste.pop(0) # sırası verilen öğeyi siler.
• liste.sort()
print(liste)
• liste.index("öğe adı") # indeksini sırasını verir.
• liste.count("öğe adı") # kaç kez geçtiğini verir.
• liste2 = liste.copy() # listeyi kopyalar.
veya liste2 = liste[:] veya liste2 = list(liste)
• liste.clear() # listenin içeriğini bolaştır.
225. Uygulama
Kullanıcıdan üç adet Şehir adı girmesini isteyen ve onları listeye çevirip
tutan, bitince öğe olarak ve tümünü listeleyen program.
i=1
liste=[]
while i <=3:
isim=input("Lütfen Şehir Adı Giriniz: ")
liste.append(isim)
#print(liste)
i+=1
else:
for oge in liste:
print(oge)
print("Tüm Liste: ",liste)
226. Ödev
Kullanıcıdan Müşteri bilgileri (adı, soyadı, kurumu
ve sipariş miktarı) bilgilerini alıp onları listeye
çeviren. Adı alanına «çık» girince çıkan ve çıkışta
tüm müşterileri öğe olarak sıralayan bir program
yazınız.
228. Sözlük (Dictionary)
Sözlükler; Anahtar ve Değer çiftlerinin
birbirleriyle eşleştirildiği bir veri tipidir.
İki nokta üst üste işaretinin;
solundaki karakter dizisine ‘anahtar’ (key),
sağındaki karakter dizisine ise ‘değer’ (value) adı verilir.
sozluk={"Anahtar":"Değer"}
kelimeler = {"kitap": "book"}
229. Sözlük Tanımlamak
• Sözlük tanımlamak için { } süslü parantez
(küme parantezi) içerisine anahtar ve değer ile
tanımlıyoruz.
• sozluk_adi = {"anahtar": "değer"}
• boş_sozluk={}
• Sozluk= {"anahtar1": "değer1", "anahtar2":
"değer2", "anahtar3": "değer3"}
236. Sözlük Metotları
• sozluk.keys() #Anahtarları verir.
• sozluk.values() #Değerleri verir.
• sozluk.items() #Öğeleri verir (anahtar ve değer)
• sozluk.get(öğe, "yoktur.!") #Öğe var mı, yoksa mesaj
• sozluk.clear() #Sözlüğün içini boşaltır.
• sozlukYeni=sozluk.copy() #Sözlüğü kopyalar
• dict.fromkeys(liste, "Değer") # Bir listeden
anahtarları alır ve değer ataması yapar.
238. Örnek
• Şehirlerin plaka ve ünlü yiyeceklerinin sözlüğünü
şehir adı ile veren program..
sor=input("Plaka ve meşhur yiyecek için Şehrinizin adını yazınız:")
sehir = {"Adana": "01 - Kebap",
"Malatya": "44- Kayısı",
"Antep": "27 - Baklava"}
print(sehir.get(sor, "Bu şehre ilişkin bilgi bulunmamaktadır."))
239. Kümeler set()
kume=set()
Kümeler için ayırt edici bir işaret yoktur.
set() ile tanımlanmaktadır.
Karakter dizisi, liste, demet, sözlük hepsi küme
olarak tanımlanabilir.
Kümelerde öğe sırası (indisi) yoktur.
liste = ["elma", "armut", "kebap"]
kume=set(liste)
241. Küme Metotları
• kume=set("Adana","Çukurova")
• kume.clear() #kümenin içini siler
• kume.copy() #kümeyi kopyalar
• kume.add() #kümeye eleman ekler
• kume.difference(kume2)
veya Kume-kume2 #iki kümenin farkını alır.
• kume.difference_update(kume2) # iki kümenin farkını alıp kume yi
onunla oluşturur.
• kume.discard() # öğe siler.
• kume.remove() #öğe siler (farkı, hata mesajı verir)
• kume.intersection(kume2) #Kesişim, iki kümenin kesişimi
veya kume & kume2
242. Küme Metotları
• kume.intersection_update(kume2) #Kesişim kümesini kumeye
günceller.
• kume.isdisjoint(kume2) #Kesişim boş mu kontrol eder
• kume.issubset(kume2) #Alt küme kontrolü yapar.
• kume.issuperset(kume2) #Küme küme2 yi kapsar mı kontrol eder.
• kume.union(kume2) #Birleşim, iki kümenin birleşimini alır.
veya kume | kume2
• kume.update(kume2) #Kümeyı günceller
• kume.symmetric_difference(kume2) #İki kümede de
bulunmayanları verir.
veya kume ^ kume2
• kume. symmetric_difference_update(kume2) #İkisinin farkını kume
de günceller.
• kume.pop() #Kümeden rastgele bir eleman (öğe) siler.
244. Uygulama
Kullanıcıdan 3 adet Kişi ve Telefon numarası isteyen ve kayıtları sözlük olarak
tutan sonrasında kayıtlarda arama yapmayı sağlayan bir program.
i=1
rehber={}
while i <=3:
isim=input("Lütfen İsim Giriniz: ")
tel=input("Lütfen Tel No Giriniz: ")
rehber[isim]=tel
#print(rehber)
i+=1
else:
kisi=input("Rehber'de arama yapmak için Lütfen isim giriniz:")
print(rehber.get(kisi,"nKişi rehberde mevcut değildir."))
print("n")
for oge in rehber:
print(oge)
print("nTüm Liste: ",rehber)
245. Ödev
• Bir kütüphaneye yeni 5 adet kitap kaydı alan
ve onları sözlük olarak tutan.
• Sonrasında kitap araması yapan.
• Kitap adına «x» yazınca çıkış yapan bir
Program yazınız.
247. Modül
• Kelime anlamı bütünün parçasıdır.
• Programın bir veya daha fazla rutin işlemini içeren
parçasıdır.
• Python da yazılan her program bir modül olarak
kullanılabilir.
• Bir python programında bulunan işlevden başka bir
program da da yararlanabiliyoruz.
– Hazır modüller
• Standart kütüphane modülleri (https://docs.python.org/3/library/ )
• Üçüncü şahıs modülleri
– Kendi hazırladığımız modüller
248. Modül Çağırmak (İçe Aktarmak)
import modül_Adı
şeklinde kullanılır.
Modül içerisinde bulunan fonksiyon veya
niteliklerin kullanımı;
modül_adı.Fonskiyon veya modülAdi.Nitelik
şeklinde kullanılır.
249. Önemli Python Modülleri
• os
– import os
– os.name
• sys
– import sys
– sys.path
• random
– import random
– random.randrange(1,10)
• datetime
– import time
– datetime.dattime.now()
• time
– import time
250. Rastgele Sayı
1’den 100’e kadar rastgele bir sayı üreten
program. (rastgele_sayi.py)
import random
sayi=random.randrange(1,101)
print(sayi)
16
255. Nesne Uygulaması
class ogrenciler:
ogrenci=[]
def __init__(self,adi):
self.adi=adi
self.ogrenci_ekle()
def ogrenci_ekle(self):
self.ogrenci.append(self.adi)
print(self.adi,"adlı öğrenci eklendi")
def ogrenci_liste(self):
print("Öğrenci Listesi:")
for kisi in self.ogrenci:
print(kisi)
ogr1=ogrenciler('Murat KARA')
ogr1=ogrenciler("Ali DAL")
ogr1.ogrenci_liste()
256. Ödev
1. Kullanıcı tarafından müşteri bilgilerinin
girildiği (ekleme),
2. Müşteri listesinden rastgele birisini
veren(listeleme),
3. Ekleme ve listelemeyi fonksiyon olarak yapan,
4. Bu işlemleri yapan programı modül olarak
çağıran,
5. Programı yazınız.
258. Hata
Programın çalışmasında karşılaşılan istenmeyen
durumlar.
• Hata Türleri;
– Programcı Hataları (Error)
• Yazım hataları (Syntax Error gibi..)
– Program Kusurları (Bug)
• Sistem hataları (İşletim sistemi, buffer overflow gibi..)
– İstisnalar (Exception)
• Kodlarda mantık hatası (Sayı yerine metin girme,
0’a(sıfıra) bölme hatası, vb.. )
259. Hata (İstisna) Yönetimi (Exception Handling)
Programın çalışma anında olağan dışı bir durum
meydana gelirse buna exception(İstisna) diyoruz.
Exception durumu meydana geldiğinde bu
hatayı kontrol altına almak için hata yönetimi
(exception handling) (İstisna Yönetimi)
uygulamamız gerekmektedir.
260. Hata (İstisna) Yakalama
Hata yakalama, yazdığımız beklenmedik durumlarda
karşılaşacağımız hatalarda programın hata vermesi
ya da kendini durdurması yerine hataya kendi
istediğimiz şekilde cevap vermesini sağlama
durumudur.
– Hata X’de yapılacaklar..
• X hatası oluştu.. Lütfen dikkatli olunuz..
– Hata Y’de yapılacaklar..
• Y hatası oluştu.. Lütfen dikkatli olunuz..
gibi..
261. try - except
try:
Program kodları
(Hata verebileceğini bildiğimiz kodlar)
except HataAdı:
Hatada yapılacaklar
(Hata durumunda yapılacak kodlar, mesajlar)
267. try... except... finally...
*Finally bloğu program hata verse de vermese de işletilecektir.
try:
sayi1=int(input("İlk Sayıyı giriniz:"))
sayi2=int(input("İkinci Sayıyı giriniz:"))
sonuc=sayi1/sayi2
print(sayi1,"/",sayi2,"=",sonuc)
except ValueError:
print("Lütfen sadece sayı giriniz!")
except ZeroDivisionError:
print("Bir sayıyı 0'a bölemezsiniz!")
finally:
print("Bu program ile girilen iki sayıya bölme işlemi yapılmıştır.")
269. Uygulama
Kullanıcıdan aldığı verileri dosyaya yazan ve sonra dosyayı okuyan
program, sonunda da dosya kapatılmıştır yazmakta ve dosyayı
kapatmaktadır.
try:
veri=input("Lütfen veri giriniz:")
dosya=open("dosya1.txt","a")
dosya.write(veri)
#dosya.close()
#dosya=open("dosya1.txt","r")
print("Girdiğiniz veriler:",dosya.read())
except:
print("Hata oluştu..! Ayrıntılar aşağıda:")
raise
finally:
print("Açılan Dosya kapatılmıştır.!")
dosya.close()
270. Ödev
• 1 den 100 kadar aralıkta bir sayı bulan,
• Kullanıcının girdiği sayı ile karşılaştırıp doğru
ise tebrik edecek yanlış ise bulamadın yazacak,
• Kullanıcı harf girerse Lütfen sayı giriniz yazan,
• Kullanıcı eksi sayı girerse hata oluştu mesajı ile
ayrıntıları veren,
• Programı try-except ile birlikte yazınız.
275. Django
• Python ile yazılmış açık kaynak bir web
çatısıdır(framework).
• İsmini Caz gitaristi Django Reinhardt Grubun
isminden almaktadır.
• BSD ile lisanslıdır.
• Django yazılım vakfı vardır.
• https://www.djangoproject.com
276. Django Kurulumu
Python paket yöneticisi pip ile kurulum
gerçekleşmektedir. (https://pypi.org/project/pip/)
- pip install paket_adı
• Linux
– pip install django
• Windows
– pip install django
282. İçerik (Hafta/Konu)
1. Tanışma, Giriş, Temel Bilgi ve Kavramlar
2. Python programlama dili nedir? Neden Python? Nasıl Çalışır?
3. Python 2x ve 3x sürümleri ve Python kurulumu, ilk programımız
4. Değişkenler
5. İşleçler ve Koşullar
6. Döngüler
7. Karakter Dizileri
8. Ara Sınav (Vize)
9. Dosya İşlemleri
10. Fonksiyonlar
11. Listeler ve Demetler
12. Sözlükler ve Kümeler
13. Nesne Tabanlı Programlama
14. Web Tabanlı Programlama
15. Hata Yakalama-Ayıklama ve hatalar
16. Genel Tekrar ve Finale Hazırlık
http://www.muratkara.com/python