SlideShare a Scribd company logo
1 of 283
Python Programlama Diline Giriş
(SD0194)
Murat KARA
2018
İç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
TANIŞMA, GİRİŞ, TEMEL BİLGİ VE
KAVRAMLAR
1. Hafta
Temel Terimler ve Kavramlar
• Program
• Programlama Dili
– Seviyeler (Düşük, Yüksek)
• Programlama
– Algoritma
– Kaynak Kod (Açık Kaynak)
– Derleme
– Yorumlama
– Debug
• IDE
• GUI
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.
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.
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.
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.
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)
Terimler / Kavramlar
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.
Ö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.
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.
Derleyici / Yorumlayıcı
• Kaynak Kod -> Derleyici -> Çalışabilir Program
• Kaynak Kod -> Yorumlayıcı -> Çalışan Kodlar
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.
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.
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.
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
Python
• Genel amaçlı,
• Nesne yönelimli,
• Yüksek seviyeli,
• Yorumlamalı,
• Modüler,
• Etkileşimli,
Bir programlama dilidir.
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)
https://octoverse.github.com/
PYTHON PROGRAMLAMA DİLİ NEDİR?
NEDEN PYTHON? NASIL ÇALIŞIR?
2. Hafta
Python
https://www.python.org
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
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
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.
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/
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
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
Python Logo
https://svn.python.org/www/branches/rest2web/beta.python.org/resources/docs/slideshow/s5.html
Just von Rossum
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/
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İ,..
Nasıl Çalışır?
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
Güncel Sürümleri
• Python 3.7.0 2018-06-27
• Python 3.6.6 2018-06-27
• Python 3.5.6 2018-08-02
• Python 3.4.9 2018-08-02
• Python 2.7.15 2018-05-01
• Python 3.6.5 2018-03-28
• Python 3.6.4 2017-12-19
• Python 3.6.3 2017-10-03
• Python 3.3.7 2017-09-19
• Python 2.7.14 2017-09-16
• Python 3.4.7 2017-08-09
• …..
• 2009 dan itibaren 3.0
• 95 ten fazla sürüm geliştirilmiş.
(toplam 2 ve 3)
• v3
• Python 3.7.0 2018-06-27
• Python 3.6.6 2018-06-27
• Python 3.6.4 2017-12-19
• v2
• Python 2.7.15 2018-05-01
• Python 2.7.14 2017-09-16
• Python 2.0.1 2001-06-22
https://www.python.org
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
• …
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
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/
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
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/
https://www.jetbrains.com/pycharm/
Online Python Editörleri
• https://www.python.org/shell
• https://python.codnex.net/
• https://www.onlinegdb.com/online_python_compiler
• http://pythonfiddle.com/
• https://repl.it/languages/python3
• http://www.compileonline.com/execute_python_online.php
• https://www.remoteinterview.io/online-python-compiler
• https://www.tutorialspoint.com/execute_python_online.php
• http://www.pythontutor.com/visualize.html#mode=edit
• https://www.jdoodle.com/python-programming-online
• http://techmums.co/python.html
• http://rextester.com/l/python3_online_compiler
• http://www.muratkara.com/python/shell/
(çalışması için öncelikle python.org/shell girilmelidir.)
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..
PYTHON 2X VE 3X SÜRÜMLERİ,
PYTHON KURULUMU
3. Hafta
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.
Kurulumlar
• Python (3.7.0)
– www.python.org
python-3.7.0.exe ~25MB
Kurulumlar
• Python (3.x)
– www.python.org
İlgili işletim sistemine uygun sürüm indirilir..
Kurulumlar;
• Windows
• MacOS
• Linux
Windows
• İndirmiş olduğumuz dosyaya çift tıklayıp
başlayabiliriz.
Windows
Windows
Windows
Windows
Windows
Windows
Windows
MacOS
MacOS
MacOS
MacOS
• Homebrew paket kurulum yöneticisidir.
$ brew search python
$ brew update
$ brew install python3
$ brew upgrade python3
MacOS
MacOS
MacOS
MacOS
MacOS
• Python3 açıyoruz..
• Terminal
$ python3
Linux
• Hemen hemen bütün Linux sistemlerinde
kurulu geliyor.
• Sürüm bilgisini öğrenmek için;
$ python –V
veya
$ python3 –V
Linux
Debian tabanlı sistemlerde paket ile kurmak için;
$ sudo apt-get update
$ sudo apt-get upgrade -y
$ sudo apt-get dist-upgrade
$ sudo apt-get install python3.6
veya
$ sudo apt-get install python3-all-dev
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
Linux
CentOs/RedHat sistemlerine kurmak için;
# yum -y groupinstall development
# yum -y install zlib-devel
# yum -y install python36u
Linux
• Python3 açıyoruz..
$ python3
Başlıyoruz..
• Kurulumlar tamam.. Python ı açıyoruz..
IDLE’ı açıyoruz..
• Windows Python IDLE
İlk Programımız
>>> print (‘’Merhaba Dünya’’)
Merhaba Dünya
Python Shell (Etkileşimli Kabuk)
Programlarımızı veya küçük kodları yazıp
deneyebildiğimiz temel araç.
Python IDLE’dan çıkmak
Çıkmak için..
exit()
veya
quit()
Yazıyoruz..
veya
Ctrl + D
Biraz Alışalım..
>>> print (‘’Merhaba Dünya’’)
Merhaba Dünya
>>> "Adınız Soyadınız"
‘Adınız Soyadınız’
>>> 'Çukurova Üniversitesi‘
‘Çukurova Üniversitesi’
Veri Tipleri
• String (cümle – str - ) -> Karakter dizisi
‘’Merhaba Dünya’’
• Int(tamsayı – sayı -) -> Tam Sayı
2018
• Float (Ondalık sayı – kesirli -) -> Ondalık sayı
3.14159
• Değerlerin türlerini öğrenmek için;
type()
Veri Tipleri
Karakter Dizisi
• Tırnaklar içinde yazılanlardır.
"Abcdef"
"Çukurova"
'Herkese Merhabalar'
"""Uzun bir cümlede tırnak içinde"""
"250"
"2018"
Sayılar
• Tırnaklar kullanılmadan yazılan değerlerdir.
2018
100
3.14159
10+20
50-30
50/2
print()
• Tek tırnak (' ')
• Çift tırnak (" ")
• Üç tırnak (""" """)
>>> print('Python programlama dili')
Python programlama dili
>>> print("Python programlama dili")
Python programlama dili
>>> print("""Python programlama dili""")
Python programlama dili
print() fonksiyonu
• Fonksiyon olarak print() ve parametreleri.
• print (sep, end, file, flush)
>>> print("Çukurova", "Üniversitesi", sep="*")
Çukurova*Üniversitesi
DEĞİŞKENLER
4. Hafta
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
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..!
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..!
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.
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.
Notasyon Örnekleri
• Pascal
– ToString, AdiSoyadi, TcKimlikNo, KategoriAdi,..
• Camel (Deve)
– toString, adiSoyadi, tcKimlikNo, kategoriAdi,..
• Macar (Hungarian)
– strString, txtAdiSoyadi, intTcKimlikNo, strKategoriAdi,..
• Uppercase (Büyük Harf)
– STRING, ADISOYADI, TCKIMLIKNO, KATEGORIADI,..
• Underscore (Altçizgili)
– String, adi_soyadi, tc_kimlik_no, kategori_adi,..
Python’da Kullanılamayan Değişken İsimleri
• Özel anlam ifade eden kelimeler kullanılamaz.
– pass="123" veya pass=123
– elif="Başarılıdır"
– as="Kare"
• Keyword List (Anahtar Kelime Listesi) 33 adet kelimedir.
>>>import keyword
>>>keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class',
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal',
'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
Keyword List
Keyword List
Değişken Örnekleri
• sayi=5
• AdiSoyadi="Murat KARA"
• Personel_No=123456789
• kullanici="Öğrenci"
• Sayi1=10
• sayi_2=15
• OGR_NO=2018123456
• ogrenciBolum_no=98765431
• sehir="Adana"
• Sehir="Mersin"
Deneyiniz;
Adınızı,
Soyadınızı,
Numaranızı,
Bölümünüzü
değişken olarak
tanımlayıp yazdırınız.
Garbage Collector (Çöp toplayıcısı)
• Değişkene ilişkin atıf sona erince RAM’den
silinmesi işlemidir.
>>> a=5
>>> print(a)
5
>>> a="Adana"
>>> print(a)
Adana
Karakter Dizilerinde İşlemler
• adi="Murat"
• soyadi="Kara"
• sayi=3
• adi+soyadi
• adi*sayi
• sayi*soyadi
Deneyiniz..!
Kendi bilgileriniz ile..
print() parametreleri
>>> print (sep, end, file, flush)
• sep: Seperator(Ayırıcı, ayraç)
• end: Son, Varsayılanı ( n yeni satır veya satır başı)
• file: Dosya, (Yazma Nereye yapılacak) (sys.stdout)
• flush: True-False değerleri alır. Yazdırma
işleminin tamponda bekletilmesini ayarlar.
print() Örnekler
>>> print("P", "y", "t", "h", "o", "n", sep=".")
P.y.t.h.o.n
>>> print(*"Python", sep=".")
P.y.t.h.o.n
>>> print(*"Çukurova", sep=".")
Ç.u.k.u.o.r.v.a
Lütfen Deneyiniz..!
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..!
print() Örnekler
adi="Murat"
soyadi="Kara"
sehir="Adana"
yil=2018
>>> print(adi, soyadi, sehir, yil, sep="n")
Murat
Kara
Adana
2018
Deneyiniz..!
Kendi bilgileriniz ile..
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
• …
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..!
Kaçış Dizisi-Karakteri Örnekler
>>> print("ÇukurovanÜniversitesinAdana")
Çukurova
Üniversitesi
Adana
>>> print("bir", "iki", "üç", sep="t")
bir iki üç
Kaçış Dizisi-Karakteri Örnekler
>>> print("u0061") # Unicode
a
>>> print("x41") # Onaltılık
A
Veri Tipi Dönüşümleri
a=5
a=str(a)
b="Adana"
a=b
pi=3.14
pi=int(pi)
a=float(pi)
int(a)
b="Mersin"
b=a
a="Adana"
a=int(50)
Lütfen Deneyiniz..!
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.)
Dosya Kullanımı (.py) IDLE
1
2
Dosyamız Çalışıyor
Thonny
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
Alıştırmalar-Cevap
------------------------------------------------------------------------1
adi="Murat"
soyadi="Kara"
bolumu="Enformatik"
numarasi=123456789
print(adi, soyadi, bolumu, numarasi)
------------------------------------------------------------------------2
okul="ÇukuorvaÜniversitesi"
print(*okul, sep="_")
------------------------------------------------------------------------3
a="Adana"
b="Mersin"
c="Hatay"
print(a, b, c, sep="n")
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.)
Uygulama-Cevap
adi="Murat"
soyadi="Kara"
gun=20
Ucret=3
yol_Masrafi=gun*Ucret
print(adi, soyadi,"'nın", gun,"gün üzerinden, Günde", Ucret,
"TL'lik ücretle Aylık Yol Masrafı:", yol_Masrafi, "TL olmaktadır.")
İŞLEÇLER VE KOŞULLAR
5. Hafta
İş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
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
Aritmetiksel İşleçler
5 + 10
>>> 45 + 60
105
>>> 23 * 46
1058
>>> 10 – 5
5
>>> 25 / 4
6.25
>>> 30 % 4
2
>>> 5 // 2
2
İşlenen İşlenenİşleç
Aritmetiksel İşleçler
>>> 25 ** 2
625
>>> pow(25, 2)
625
>>> int(5/2)
2
>>> round(2.55)
3
>>> round(2.68, 1)
2.7
>>> pow(25,2,5)
0>>> (25**2)%5
0
25 sayısının 2. kuvvetini alıp, elde ettiğimiz
sayının 5 ‘ e bölünmesinden kalan sayıyı hesaplamış
Karşılaştırma İşleçleri
İşlenenler arasında bir karşılaştırma ilişkisi kuran
işleçlerdir.
== > >= and not
!= < <= or
>>> 7==7
True
Bool İşleçleri
1 ve 0 gibi True ve False (Doğru ve Yanlış)
>>> a=1
>>> a==1
True
>>> a==2
False
>>> bool(a)
True
Değer Atama İşleçleri
= Değer atama işlecidir.
+= -= /= *=
%= **= //=
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
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ı
Alıştırmalar
>>> x=7
>>> x+13/4
>>> 2*x+9
>>> (7+x)/2**2
>>> (6*x*3)/2
>>> (4**x)/(1/2)
? Lütfen Deneyiniz..!
KOŞULLAR
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.
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)
if
>>> a=5
>>> if a>2 :
print("a 2'den büyüktür")
a 2’den büyüktür
>>>
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)
elif
>>> yas=15
>>> if yas<18 :
print("Merhaba çocuklar")
elif yas>18 :
print("Merhaba Gençler")
Merhaba çocuklar
>>>
else
if koşul1 :
sonuç 1
elif koşul2 :
sonuç 2
elif koşul3 :
sonuç 3
else : # Hiçbirisi değilse..!
sonuç 4
else
>>> boy=140
>>> if boy<169 :
print("Kısa boylu")
elif boy>180 :
print("Uzun boylu")
else :
print(«Normal boylu")
Kısa boylu
>>>
VERİ GİRİŞİ (INPUT)
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
Ö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..!
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)
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..!
Uygulama-Cevap
adi=input("Adınız:")
kilo=int(input("Kilonuzu giriniz (85 gibi) : "))
boy=float(input("Boyunuzu giriniz (1.75 gibi) : "))
bki=round((kilo/(boy**2)),1)
if bki<18.5 :
sonuc="Zayıf"
elif bki<24.9 :
sonuc="Normal"
elif bki<29.9:
sonuc="Kilolu"
elif bki<34.9:
sonuc="Şişman"
else:
sonuc="Obez"
print("Sayın", adi, "BKİ", bki, "değerinize göre sonuç", sonuc, "çıkmıştır.")
İç İç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")
Ö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
DÖNGÜLER
6. Hafta
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.
Döngüler
Python’da döngüler;
• While döngüsü
• For döngüsü
While Döngüsü
• ... iken,
• ... olduğu sürece,
anlamlarına gelmektedir.
• Koşul sağlandığı sürece döngü devam eder.
while
>>> while koşul :
uygulanacak komutlar bloğu
(koşul sağlandığı sürece)
Bloğun dışında komutlar..
Döngü
While Örnek
i=1
while i<=5 :
print(i)
i += 1
Değişkenimiz : i
Koşulumuz : i<=5
Sayacımız : i += 1
1
2
3
4
5
Sonuç:
1 den 5 kadar yazan döngü
Alıştırma
sayac = 1
while (sayac < 10) :
print ("Bu sayacımız:", sayac)
# sayac = sayac + 1
sayac += 1
print ("Hoşçakal !")
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.
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.
for
>>> for değişken in sıralama :
ifadeler (komutlar)
Bloğun dışında kalan komutlar..
for
for karakter in "Python":
print ("Harf:", karakter)
Harf: P
Harf: y
Harf: t
Harf: h
Harf: o
Harf: n
for
# 0,1,2,3,4
for x in range(5):
print(x)
0
1
2
3
4
for
sayi = 1
for sayi in range(1,11):
print(sayi)
1
2
3
4
5
6
7
8
9
10
range()
• Ardışık sayılardan oluşan iterasyon edilebilen
bir nesnedir.
range(başlangıç, bitiş, basamak)
Varsayılanlar;
Başlangıç: 0
Basamak: 1
for in range()
for x in range(0,24,3):
print(x)
0
3
6
9
12
15
18
21
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..
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
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.")
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")
Ö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..
KARAKTER DİZİLERİ
7. Hafta
Karakter Dizileri
>>> cumle="Çukurova Üniversitesi"
>>> sayi="123456789"
>>> cumle[7]
'a'
>>> sayi[5]
'6'
>>> sayi[0]
'1'
>>> sayi[-1]
'9'
>>> sayi[-3]
'7‘
>>> cumle[-4]
't'
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
Ö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
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 '
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’
Ö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
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
Karakter Dizilerini Alfabetik Sıralamak
>>> sorted("Python")
['P', 'h', 'n', 'o', 't', 'y']
veri=input("Lütfen Sıralanacak veriyi giriniz: ")
sirala=sorted(veri)
print("Sıralama sonucu: ",sirala)
Karakter Dizilerinin Metotları
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
Örnekler
adi="çukurova üniversitesi?"
print("title:",adi.title())
print("count:",adi.count("ve"))
print("find:",adi.find("e"))
print("upper:",adi.upper())
print("isupper:",adi.isupper())
print("endswith:",adi.endswith("sitesi"))
print("isdigit:",adi.isdigit())
print("isalnum:",adi.isalnum())
print("strip:",adi.strip("?"))
print("replace:",adi.replace("?","."))
VİZE (ARA SINAV)
8. Hafta
DOSYA İŞLEMLERİ
9. Hafta
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.
Örnekler
dosya=open("dosya-olustur.txt","w")
dosya=open("dosya-oku.txt","r")
dosya=open("dosyaya-ekle.txt","a")
dosya=open("dosya-ikili.txt","b")
dosya=open("dosya-okunur.txt","t")
dosya=open("deneme.txt","a")
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)
Yol Tanımları
Windows
C:/Dene/abc.txt
C:Deneabc.txt
Linux
/home/murat/abc.txt
Dosya Oluşturmak
dosya=open("deneme.txt","w")
Windows IDLE
Linux Terminal
Dosyaya Yazmak
dosya=open("deneme.txt","w")
dosya.write("Merhaba")
dosya.close
Dosya Okumak
dosya=open("deneme.txt", "r")
print(dosya.read())
dosya.close
Dosyaya Ekleme Yapmak
dosya=open("deneme.txt", "a")
dosya.write("Hoşçakal")
dosya.close
Dosyada İlk Satıra Eklemek
dosya=open("deneme.txt","r+")
veri=dosya.read()
dosya.seek(0) #ilk satır için
dosya.write("Önce Bu satır gelsin..n"+veri)
dosya.close()
Dosyada Araya Satır Eklemek
dosya=open("deneme.txt","r+")
veri=dosya.readlines()
veri.insert(1,"ikinci satırn")
dosya.seek(0)
dosya.writelines(veri)
dosya.close()
Dosya Metodları
dosya=open("deneme.txt","r")
print(dosya.closed) #Dosya kapalımı?
print(dosya.name) #Dosya adı
print(dosya.mode) #Dosyanın açılma kipi
print(dosya.encoding) #Dosyanın dil kodlaması
Dosya İşlemleri
import os
#Dosyanın bulunduğu dizin
print(os.getcwd())
#Dosya ismini değiştirme
os.rename("deneme.txt","abc.txt")
#Dosya silmek
os.remove("abc.txt")
Örnekler
d=open("abc.txt","w")
d.write("Merhaba")
d.close
d=open("abc.txt","a")
d.write("nHoşçakal")
d.close()
d=open("abc.txt")
print(d.name, d.mode, d.encoding, d.closed)
print(d.read())
d.close()
d=open("abc.txt","r+")
veri=d.read()
d.seek(0)
d.write("Önce bu satır..n"+veri)
d.close()
d=open("abc.txt","r+")
veri=d.readlines()
veri.insert(1,"ikinci satırn")
d.seek(0)
d.writelines(veri)
d.close()
import os
print(os.getcwd())
#os.rename("dene123.txt","abc2.txt")
print(d.name)
os.remove("sil.txt")
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()
Ö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.
FONKSİYONLAR
10. Hafta
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..
def kullanımı
def fonksiyon_adi():
print("Fonksiyonu yaz.. ")
fonksiyon_adi()
Fonksiyon önce tanımlanır, sonra çağrılır.
Fonksiyon Tanımı
Fonksiyon Çağrısı
Fonksiyon bloğu
İlk Örnek
def mrb():
print("merhaba python")
mrb()
---------run--------
merhaba python
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.
Parametre ve Argüman
def adSoyad(adi,sehir): Parametre
print("Merhaba,",sehir,"şehrine ve ",adi,"Üniversitesine")
adSoyad("Çukurova","Adana") Argüman
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.
İsimli Parametre
def adSoyad(adi,sehir):
print("Merhaba,",sehir,"şehrine ve ",adi,"Üniversitesine")
adSoyad(sehir="Adana",adi="Çukurova")
Sırayı kullanmayıp isim tanımla ile değer belirtiyoruz.
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))
return
def karesi(x):
kare=x*x
#return kare
print(karesi(5))
-----run----
None
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())
Örnekler
def sirala():
for harf in adi:
print(harf)
adi=input("İsim Giriniz:")
sirala()
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())
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..
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ş")
Ö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.
LİSTELER
11. Hafta
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.
Listeler
liste=["Çukurova","Üniversitesi","Adana"]
liste2=[1979,2018,5,50,100]
liste3=["Çukurova","Üniversitesi",["Fakülte","Bölüm","Bilim Dalı"],"Adana"]
print(liste,liste[2],len(liste))
print(liste2,liste2[1],len(liste2))
print(liste3,liste3[2][2],len(liste3),len(liste3[2]))
['Çukurova', 'Üniversitesi', 'Adana'] Adana 3
[1979, 2018, 5, 50, 100] 2018 5
['Çukurova', 'Üniversitesi', ['Fakülte', 'Bölüm', 'Bilim Dalı'], 'Adana'] Bilim Dalı 4 3
list() fonksiyonu
alfabe="abcçdefgğhıijklmnoöprsştuüvyz"
alfabeList=list(alfabe)
print(alfabeList)
['a', 'b', 'c', 'ç', 'd', 'e', 'f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'ö', 'p', 'r', 's', 'ş', 't', 'u', 'ü', 'v', 'y', 'z']
sayilar=list(range(10))
print(sayilar)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Liste Öğeleri
liste=["Çukurova","Üniversitesi","Adana"]
Liste[0]
‘Çukurova’
for oge in liste:
print(oge)
Listeye Eklemek
liste.append("Balcalı")
veya
Listeye + ile yine bir liste öğesi eklenebilir.
Liste + ["Sarıçam"]
Listeleri Birleştirmek
derlenen=["C","C++","C#","Java"]
yorumlanan=["Python","Perl","Ruby"]
programlamaDil=derlenen + yorumlanan
print(programlamaDil)
Listeden Öğe Silmek
liste=['Çukurova', 'Üniversitesi', 'Adana', 'Balcalı', 'Mersin']
del liste[-1]
veya
liste.pop(4)
veya
liste.remove('Mersin')
print(liste)
['Çukurova', 'Üniversitesi', 'Adana', 'Balcalı']
Liste Öğelerini Değiştirmek
liste=["Çukurova","Üniversitesi","Adana"]
liste[2]="Mersin"
print(liste)
['Çukurova', 'Üniversitesi', 'Mersin']
Tüm listeyi değiştirmek için;
liste[:]="a","b","c"
print(liste)
['a', 'b', 'c']
Liste Silme
Listenin tamamını da del ile silebiliriz.
del liste
print(liste)
liste is not defined
Liste Üreteçleri (List Comprehensions)
Liste üretmeyi sağlar.
sayiListe = [i for i in range(100)]
veya
sayiliste2 = list(range(100))
print(sayiListe)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, 97, 98, 99]
Ö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]
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'>
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…
Liste Metodları
>>> dir(list)
veya
print(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']
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.
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)
Ö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.
SÖZLÜKLER
12. Hafta
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"}
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"}
Sözlük (Okunaklı yazım)
sözlük = {"kitap": "book", "bilgisayar": "computer",
"programlama": "programming",
"dil": "language", "defter": "notebook"}
sözlük = {"kitap" : "book",
"bilgisayar" : "computer",
"programlama" : "programming",
"dil" : "language",
"defter" : "notebook"}
Sözlük Öğesine Erişmek
sozluk[sözlük_öğesinin_adı]
seklinde ulaşılmaktadır.
sozluk={"kitap":"book"}
print(sozluk["kitap"])
book
Sözlüğe Öğe Eklemek
sozluk[anahtar]=değer
Şeklinde bir yapıdır.
sozluk["merhaba"]="hello"
print(sozluk)
Sözlük Öğesinde Değişiklik Yapmak
print(sozluk)
{'kitap': 'book', 'bilgisayar': 'computer', 'programlama': 'programming', 'dil': 'language',
'defter': 'notebook', 'merhaba': 'hello'}
sozluk["merhaba"]="Hi!"
print(sozluk)
{'kitap': 'book', 'bilgisayar': 'computer', 'programlama': 'programming', 'dil':
'language', 'defter': 'notebook', 'merhaba': 'Hi!'}
Sözlük Üreteçleri (Dictionary Comprehensions)
• Bir listeden sözlük elde etmek..
• Listedeki isimlerin uzunluklarını sözlüğe
ekleyelim
isimler = ["ahmet", "ayşe", "mehmet", "fatma", "can"]
isimler_sozluk = {i: len(i) for i in isimler}
print(isimler_sozluk)
{'ahmet': 5, 'ayşe': 4, 'mehmet': 6, 'fatma': 5, 'can': 3}
Sözlük Metotları
print(dir(dict))
['__class__', '__contains__', '__delattr__', '__delitem__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__gt__', '__hash__',
'__init__', '__init_subclass__', '__iter__', '__le__',
'__len__', '__lt__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__setattr__', '__setitem__',
'__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy',
'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem',
'setdefault', 'update', 'values']
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.
Sözlük Metotları
• sozluk.pop("öğe_adı", "öğe yok mesajı") #Öğe siler
• sozluk.popitem() #rastgele öğe siler.
• sozluk.setdefault() #sözlükde arama yapiyor,
anahtar sözlükte yoksa metot içinde belirtilen
anahtar-değerleri oluşturuyor.
• sozluk.update(yeni_sozluk) #sozluk değerleri
yeni_sozluk ten alınıp güncelleniyor..
Ö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."))
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)
Küme Metotları
print(dir(set))
['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__',
'__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__',
'__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__',
'__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear',
'copy', 'difference', 'difference_update', 'discard', 'intersection',
'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove',
'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
Dondurulmuş Kümeler frosenset()
Elemanları (öğeleri) üzerinde değişiklik yapılamayan kümelerdir.
#add(), remove(), update() gibi metotları yoktur.
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
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.
Örnek
roman=set(["macera","tarihsel","sosyal","polisiye"])
siir=set(["lirik","pastoral","epik"])
print("Birleşim:",roman|siir)
print("Fark:",roman-siir)
print("Kesişim:",roman&siir)
print("Simetrik Fark:",roman^siir)
Birleşim: {'pastoral', 'lirik', 'tarihsel', 'polisiye', 'macera', 'epik', 'sosyal'}
Fark: {'macera', 'tarihsel', 'polisiye', 'sosyal'}
Kesişim: set()
Simetrik Fark: {'polisiye', 'macera', 'sosyal', 'lirik', 'tarihsel', 'epik', 'pastoral'}
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)
Ö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.
NESNE TABANLI
PROGRAMLAMA
13. Hafta
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
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.
Ö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
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
Kendi Modülümüz
Python_dosyamız.py
import Python_dosyamız
şeklinde kullanılabilir.
Ör:
import rastgele_sayi
Nesne Tabanlı Programlama
(Object Oriented Programming)
• Nesneler (sınıflar) temel alınarak
gerçekleştirilen bir programlamadır.
• Sınıf (Class)
– Nesne (Object)
• Metot (Method)
– Kalıtım (Inheritance)
Sınıf Oluşturmak
class sinifimiz:
sınıf içi tanımlama ve kullanım..
veya
class sinif():
Örnek
class insan:
def __init__(self,isim):
self.isim = isim
def merbaha(self):
print("Merhaba, benim adım " + self.isim)
insan1 = insan("Murat")
insan2 = insan("Mehmet")
insan1.merbaha()
insan2.merbaha()
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()
Ö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.
HATA YAKALAMA-AYIKLAMA
15. Hafta
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.. )
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.
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..
try - except
try:
Program kodları
(Hata verebileceğini bildiğimiz kodlar)
except HataAdı:
Hatada yapılacaklar
(Hata durumunda yapılacak kodlar, mesajlar)
Genel İstisna (Hata)
try:
print(x)
except:
print("Hata oluştu!")
---------------
Hata oluştu!
ValueError (Değer Hatası)
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!")
ZeroDivisionError (0’a (sıfır’a) Bölüm Hatası )
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!")
try... except... as...
try:
sayi1=int(input("İlk Sayıyı giriniz:"))
sayi2=int(input("İkinci Sayıyı giriniz:"))
sonuc=sayi1/sayi2
print(sayi1,"/",sayi2,"=",sonuc)
except (ValueError, ZeroDivisionError) as hata:
print("Bir Hata Oluştu!")
print("Orjinal Hata Mesajı:", hata)
try... except... else...
try:
sayi1=int(input("İlk Sayıyı giriniz:"))
sayi2=int(input("İkinci Sayıyı giriniz:"))
sonuc=sayi1/sayi2
print(sayi1,"/",sayi2,"=",sonuc)
yanlis=str(sayi1/sayi2)
print(yanlis)
except ValueError:
print("Lütfen sadece sayı giriniz!")
except ZeroDivisionError:
print("Bir sayıyı 0'a bölemezsiniz!")
else:
print("Hata Oluştu!")
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.")
raise (Hata Yükseltme, İlave bilgi)
try:
sayi1=int(input("İlk Sayıyı giriniz:"))
sayi2=int(input("İkinci Sayıyı giriniz:"))
sonuc=sayi1/sayi2
print(sayi1,"/",sayi2,"=",sonuc)
except:
print("Hata Oluştu! Ayrıntılı Hata Mesajı Aşağıda..!")
raise
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()
Ö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.
WEB TABANLI PROGRAMLAMA
14. Hafta
Web Tabanlı Programlama
Python Web Framework
• Django
• TurboGears
• Web2py
• Grok
• Zope2
• Tornado
• Bottle
• Flask
• Pyramid
• Falcon
• …
https://wiki.python.org/moin/WebFrameworks
Python GUI Programlama
• Tkinter
• PyQT
• Kivy
• Pygame
• PyGUI
• WxPython
• PyForms
• …
• https://wiki.python.org/moin/GuiProgramming
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
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
Django Kurulumu (Windows-pip)
Django
Kurulduğu dizin;
• C:UsersMurat KARAAppDataLocalProgramsPythonPython36-32Scripts>
• django-admin startproject merhaba
• python manage.py runserver
• python manage.py startapp webdjango
Django
Django Admin
Django
İç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
Python Programlama Diline Giriş
(SD0194)
Murat KARA
2018

More Related Content

What's hot

Siber Güvenlik ve Etik Hacking Sunu - 2
Siber Güvenlik ve Etik Hacking Sunu - 2Siber Güvenlik ve Etik Hacking Sunu - 2
Siber Güvenlik ve Etik Hacking Sunu - 2Murat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 6
Siber Güvenlik ve Etik Hacking Sunu - 6Siber Güvenlik ve Etik Hacking Sunu - 6
Siber Güvenlik ve Etik Hacking Sunu - 6Murat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 7
Siber Güvenlik ve Etik Hacking Sunu - 7Siber Güvenlik ve Etik Hacking Sunu - 7
Siber Güvenlik ve Etik Hacking Sunu - 7Murat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 1
Siber Güvenlik ve Etik Hacking Sunu - 1Siber Güvenlik ve Etik Hacking Sunu - 1
Siber Güvenlik ve Etik Hacking Sunu - 1Murat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12Murat KARA
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıBGA Cyber Security
 
Siber Güvenlik ve Etik Hacking Sunu - 4
Siber Güvenlik ve Etik Hacking Sunu - 4Siber Güvenlik ve Etik Hacking Sunu - 4
Siber Güvenlik ve Etik Hacking Sunu - 4Murat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 11
Siber Güvenlik ve Etik Hacking Sunu - 11Siber Güvenlik ve Etik Hacking Sunu - 11
Siber Güvenlik ve Etik Hacking Sunu - 11Murat KARA
 
Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili EğitimiEnes Ateş
 
Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Murat KARA
 
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıZararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriPRISMA CSI
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Mehmet Ince
 
Siber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 SorularıSiber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 SorularıBGA Cyber Security
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Uğurkan Ateş
 
Bilgi güvenliği ve Kriptografi Soruları
Bilgi güvenliği ve Kriptografi SorularıBilgi güvenliği ve Kriptografi Soruları
Bilgi güvenliği ve Kriptografi SorularıAhmet Han
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 

What's hot (20)

Siber Güvenlik ve Etik Hacking Sunu - 2
Siber Güvenlik ve Etik Hacking Sunu - 2Siber Güvenlik ve Etik Hacking Sunu - 2
Siber Güvenlik ve Etik Hacking Sunu - 2
 
Siber Güvenlik ve Etik Hacking Sunu - 6
Siber Güvenlik ve Etik Hacking Sunu - 6Siber Güvenlik ve Etik Hacking Sunu - 6
Siber Güvenlik ve Etik Hacking Sunu - 6
 
Siber Güvenlik ve Etik Hacking Sunu - 7
Siber Güvenlik ve Etik Hacking Sunu - 7Siber Güvenlik ve Etik Hacking Sunu - 7
Siber Güvenlik ve Etik Hacking Sunu - 7
 
Siber Güvenlik ve Etik Hacking Sunu - 1
Siber Güvenlik ve Etik Hacking Sunu - 1Siber Güvenlik ve Etik Hacking Sunu - 1
Siber Güvenlik ve Etik Hacking Sunu - 1
 
Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12Siber Güvenlik ve Etik Hacking Sunu - 12
Siber Güvenlik ve Etik Hacking Sunu - 12
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
Siber Güvenlik ve Etik Hacking Sunu - 4
Siber Güvenlik ve Etik Hacking Sunu - 4Siber Güvenlik ve Etik Hacking Sunu - 4
Siber Güvenlik ve Etik Hacking Sunu - 4
 
Siber Güvenlik ve Etik Hacking Sunu - 11
Siber Güvenlik ve Etik Hacking Sunu - 11Siber Güvenlik ve Etik Hacking Sunu - 11
Siber Güvenlik ve Etik Hacking Sunu - 11
 
Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili Eğitimi
 
Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC KullanımıZararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
Zararlı Yazılım Tespiti ve Siber i̇stihbarat Amaçlı IOC Kullanımı
 
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik TemelleriBeyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
Beyaz Şapkalı Hacker CEH Eğitimi - Siber Güvenlik Temelleri
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
Siber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 SorularıSiber Güvenlik Kış Kampı'18 Soruları
Siber Güvenlik Kış Kampı'18 Soruları
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 2
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1Roket Yazılımı Eğitimi Hafta 1
Roket Yazılımı Eğitimi Hafta 1
 
Bilgi güvenliği ve Kriptografi Soruları
Bilgi güvenliği ve Kriptografi SorularıBilgi güvenliği ve Kriptografi Soruları
Bilgi güvenliği ve Kriptografi Soruları
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 

Similar to Python Programlama Diline Giriş - Güncelleme 2018

Python dokumani
Python dokumaniPython dokumani
Python dokumanisersld98
 
Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - SeminerCihan Özhan
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama DiliCihan Özhan
 
Python odev-sitesi
Python odev-sitesiPython odev-sitesi
Python odev-sitesisersld98
 
Python danismani
Python danismaniPython danismani
Python danismanisersld98
 
Python sitesi
Python sitesiPython sitesi
Python sitesisersld98
 
Python seminerleri
Python seminerleriPython seminerleri
Python seminerlerisersld98
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri TanıtımAtilla Özgür
 
Python teknikeri
Python teknikeriPython teknikeri
Python teknikerisersld98
 
Python kursu-catalca
Python kursu-catalcaPython kursu-catalca
Python kursu-catalcasersld93
 
Python semineri
Python semineriPython semineri
Python seminerisersld98
 
Python teknigi
Python teknigiPython teknigi
Python teknigisersld98
 
Python tasarimi
Python tasarimiPython tasarimi
Python tasarimisersld98
 
Python kursu-avcilar
Python kursu-avcilarPython kursu-avcilar
Python kursu-avcilarsersld93
 
Python kursu-gungoren
Python kursu-gungorenPython kursu-gungoren
Python kursu-gungorensersld93
 
Python proje
Python projePython proje
Python projesersld98
 
Python ornek
Python ornekPython ornek
Python orneksersld98
 
LibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçLibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçMuhammet Kara
 

Similar to Python Programlama Diline Giriş - Güncelleme 2018 (20)

Python dokumani
Python dokumaniPython dokumani
Python dokumani
 
Go Programlama Dili - Seminer
Go Programlama Dili - SeminerGo Programlama Dili - Seminer
Go Programlama Dili - Seminer
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
Phyton Programlama Dili
Phyton Programlama DiliPhyton Programlama Dili
Phyton Programlama Dili
 
Python odev-sitesi
Python odev-sitesiPython odev-sitesi
Python odev-sitesi
 
Python danismani
Python danismaniPython danismani
Python danismani
 
Python sitesi
Python sitesiPython sitesi
Python sitesi
 
Python seminerleri
Python seminerleriPython seminerleri
Python seminerleri
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
Python teknikeri
Python teknikeriPython teknikeri
Python teknikeri
 
Python kursu-catalca
Python kursu-catalcaPython kursu-catalca
Python kursu-catalca
 
Python
PythonPython
Python
 
Python semineri
Python semineriPython semineri
Python semineri
 
Python teknigi
Python teknigiPython teknigi
Python teknigi
 
Python tasarimi
Python tasarimiPython tasarimi
Python tasarimi
 
Python kursu-avcilar
Python kursu-avcilarPython kursu-avcilar
Python kursu-avcilar
 
Python kursu-gungoren
Python kursu-gungorenPython kursu-gungoren
Python kursu-gungoren
 
Python proje
Python projePython proje
Python proje
 
Python ornek
Python ornekPython ornek
Python ornek
 
LibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı BaşlangıçLibreOffice Geliştirmeye Hızlı Başlangıç
LibreOffice Geliştirmeye Hızlı Başlangıç
 

More from Murat KARA

Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfMurat KARA
 
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfMurat KARA
 
Klavye Kullanımı
Klavye KullanımıKlavye Kullanımı
Klavye KullanımıMurat KARA
 
Siber Güvenlik ve Etik Hacking Sunu - 14
Siber Güvenlik ve Etik Hacking Sunu - 14Siber Güvenlik ve Etik Hacking Sunu - 14
Siber Güvenlik ve Etik Hacking Sunu - 14Murat KARA
 
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018Murat KARA
 
Google Hakkında Bildiklerimiz-Bilmediklerimiz
Google Hakkında Bildiklerimiz-BilmediklerimizGoogle Hakkında Bildiklerimiz-Bilmediklerimiz
Google Hakkında Bildiklerimiz-BilmediklerimizMurat KARA
 
Photoshop cs 5
Photoshop cs 5 Photoshop cs 5
Photoshop cs 5 Murat KARA
 
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-Murat KARA
 
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)Murat KARA
 
Kablosuz Ağlar (Wireless)
Kablosuz Ağlar (Wireless)Kablosuz Ağlar (Wireless)
Kablosuz Ağlar (Wireless)Murat KARA
 
Web Site Tasarimi (HTML)
Web Site Tasarimi (HTML)Web Site Tasarimi (HTML)
Web Site Tasarimi (HTML)Murat KARA
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Murat KARA
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Murat KARA
 
Linux İşletim Sistemi
Linux İşletim SistemiLinux İşletim Sistemi
Linux İşletim SistemiMurat KARA
 

More from Murat KARA (14)

Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-BB.pdf
 
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdfSiber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
Siber_Guvenlik_ve_Etik_Hacking-2023-Z.pdf
 
Klavye Kullanımı
Klavye KullanımıKlavye Kullanımı
Klavye Kullanımı
 
Siber Güvenlik ve Etik Hacking Sunu - 14
Siber Güvenlik ve Etik Hacking Sunu - 14Siber Güvenlik ve Etik Hacking Sunu - 14
Siber Güvenlik ve Etik Hacking Sunu - 14
 
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018
Web Site Tasarımı (HTML-Css) Dersi Güncelleme - 2018
 
Google Hakkında Bildiklerimiz-Bilmediklerimiz
Google Hakkında Bildiklerimiz-BilmediklerimizGoogle Hakkında Bildiklerimiz-Bilmediklerimiz
Google Hakkında Bildiklerimiz-Bilmediklerimiz
 
Photoshop cs 5
Photoshop cs 5 Photoshop cs 5
Photoshop cs 5
 
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-
Bilgisayar Ağları (Network Jeopardy) Büyük Risk -1-
 
İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)İşletim Sistemleri (Operating Systems)
İşletim Sistemleri (Operating Systems)
 
Kablosuz Ağlar (Wireless)
Kablosuz Ağlar (Wireless)Kablosuz Ağlar (Wireless)
Kablosuz Ağlar (Wireless)
 
Web Site Tasarimi (HTML)
Web Site Tasarimi (HTML)Web Site Tasarimi (HTML)
Web Site Tasarimi (HTML)
 
Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş Network - Bilgisayar Ağlarına Giriş
Network - Bilgisayar Ağlarına Giriş
 
Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-Siber Guvenlik ve Etik Hhacking -2-
Siber Guvenlik ve Etik Hhacking -2-
 
Linux İşletim Sistemi
Linux İşletim SistemiLinux İşletim Sistemi
Linux İşletim Sistemi
 

Python Programlama Diline Giriş - Güncelleme 2018

  • 1. Python Programlama Diline Giriş (SD0194) Murat KARA 2018
  • 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
  • 3. TANIŞMA, GİRİŞ, TEMEL BİLGİ VE KAVRAMLAR 1. Hafta
  • 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)
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. PYTHON PROGRAMLAMA DİLİ NEDİR? NEDEN PYTHON? NASIL ÇALIŞIR? 2. Hafta
  • 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
  • 39. Güncel Sürümleri • Python 3.7.0 2018-06-27 • Python 3.6.6 2018-06-27 • Python 3.5.6 2018-08-02 • Python 3.4.9 2018-08-02 • Python 2.7.15 2018-05-01 • Python 3.6.5 2018-03-28 • Python 3.6.4 2017-12-19 • Python 3.6.3 2017-10-03 • Python 3.3.7 2017-09-19 • Python 2.7.14 2017-09-16 • Python 3.4.7 2017-08-09 • ….. • 2009 dan itibaren 3.0 • 95 ten fazla sürüm geliştirilmiş. (toplam 2 ve 3) • v3 • Python 3.7.0 2018-06-27 • Python 3.6.6 2018-06-27 • Python 3.6.4 2017-12-19 • v2 • Python 2.7.15 2018-05-01 • Python 2.7.14 2017-09-16 • Python 2.0.1 2001-06-22 https://www.python.org
  • 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/
  • 46. Online Python Editörleri • https://www.python.org/shell • https://python.codnex.net/ • https://www.onlinegdb.com/online_python_compiler • http://pythonfiddle.com/ • https://repl.it/languages/python3 • http://www.compileonline.com/execute_python_online.php • https://www.remoteinterview.io/online-python-compiler • https://www.tutorialspoint.com/execute_python_online.php • http://www.pythontutor.com/visualize.html#mode=edit • https://www.jdoodle.com/python-programming-online • http://techmums.co/python.html • http://rextester.com/l/python3_online_compiler • http://www.muratkara.com/python/shell/ (çalışması için öncelikle python.org/shell girilmelidir.)
  • 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.
  • 50. Kurulumlar • Python (3.7.0) – www.python.org python-3.7.0.exe ~25MB
  • 51. Kurulumlar • Python (3.x) – www.python.org İlgili işletim sistemine uygun sürüm indirilir.. Kurulumlar; • Windows • MacOS • Linux
  • 52. Windows • İndirmiş olduğumuz dosyaya çift tıklayıp başlayabiliriz.
  • 60. MacOS
  • 61. MacOS
  • 62. MacOS
  • 63. MacOS • Homebrew paket kurulum yöneticisidir. $ brew search python $ brew update $ brew install python3 $ brew upgrade python3
  • 64. MacOS
  • 65. MacOS
  • 66. MacOS
  • 67. MacOS
  • 69. Linux • Hemen hemen bütün Linux sistemlerinde kurulu geliyor. • Sürüm bilgisini öğrenmek için; $ python –V veya $ python3 –V
  • 70. Linux Debian tabanlı sistemlerde paket ile kurmak için; $ sudo apt-get update $ sudo apt-get upgrade -y $ sudo apt-get dist-upgrade $ sudo apt-get install python3.6 veya $ sudo apt-get install python3-all-dev
  • 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
  • 72. Linux CentOs/RedHat sistemlerine kurmak için; # yum -y groupinstall development # yum -y install zlib-devel # yum -y install python36u
  • 74. Başlıyoruz.. • Kurulumlar tamam.. Python ı açıyoruz..
  • 76. İlk Programımız >>> print (‘’Merhaba Dünya’’) Merhaba Dünya
  • 77. Python Shell (Etkileşimli Kabuk) Programlarımızı veya küçük kodları yazıp deneyebildiğimiz temel araç.
  • 78. Python IDLE’dan çıkmak Çıkmak için.. exit() veya quit() Yazıyoruz.. veya Ctrl + D
  • 79. Biraz Alışalım.. >>> print (‘’Merhaba Dünya’’) Merhaba Dünya >>> "Adınız Soyadınız" ‘Adınız Soyadınız’ >>> 'Çukurova Üniversitesi‘ ‘Çukurova Üniversitesi’
  • 80. Veri Tipleri • String (cümle – str - ) -> Karakter dizisi ‘’Merhaba Dünya’’ • Int(tamsayı – sayı -) -> Tam Sayı 2018 • Float (Ondalık sayı – kesirli -) -> Ondalık sayı 3.14159 • Değerlerin türlerini öğrenmek için; type()
  • 82. Karakter Dizisi • Tırnaklar içinde yazılanlardır. "Abcdef" "Çukurova" 'Herkese Merhabalar' """Uzun bir cümlede tırnak içinde""" "250" "2018"
  • 83. Sayılar • Tırnaklar kullanılmadan yazılan değerlerdir. 2018 100 3.14159 10+20 50-30 50/2
  • 84. print() • Tek tırnak (' ') • Çift tırnak (" ") • Üç tırnak (""" """) >>> print('Python programlama dili') Python programlama dili >>> print("Python programlama dili") Python programlama dili >>> print("""Python programlama dili""") Python programlama dili
  • 85. print() fonksiyonu • Fonksiyon olarak print() ve parametreleri. • print (sep, end, file, flush) >>> print("Çukurova", "Üniversitesi", sep="*") Çukurova*Üniversitesi
  • 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.
  • 92. Notasyon Örnekleri • Pascal – ToString, AdiSoyadi, TcKimlikNo, KategoriAdi,.. • Camel (Deve) – toString, adiSoyadi, tcKimlikNo, kategoriAdi,.. • Macar (Hungarian) – strString, txtAdiSoyadi, intTcKimlikNo, strKategoriAdi,.. • Uppercase (Büyük Harf) – STRING, ADISOYADI, TCKIMLIKNO, KATEGORIADI,.. • Underscore (Altçizgili) – String, adi_soyadi, tc_kimlik_no, kategori_adi,..
  • 93. Python’da Kullanılamayan Değişken İsimleri • Özel anlam ifade eden kelimeler kullanılamaz. – pass="123" veya pass=123 – elif="Başarılıdır" – as="Kare" • Keyword List (Anahtar Kelime Listesi) 33 adet kelimedir. >>>import keyword >>>keyword.kwlist ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
  • 96. Değişken Örnekleri • sayi=5 • AdiSoyadi="Murat KARA" • Personel_No=123456789 • kullanici="Öğrenci" • Sayi1=10 • sayi_2=15 • OGR_NO=2018123456 • ogrenciBolum_no=98765431 • sehir="Adana" • Sehir="Mersin" Deneyiniz; Adınızı, Soyadınızı, Numaranızı, Bölümünüzü değişken olarak tanımlayıp yazdırınız.
  • 97. Garbage Collector (Çöp toplayıcısı) • Değişkene ilişkin atıf sona erince RAM’den silinmesi işlemidir. >>> a=5 >>> print(a) 5 >>> a="Adana" >>> print(a) Adana
  • 98. Karakter Dizilerinde İşlemler • adi="Murat" • soyadi="Kara" • sayi=3 • adi+soyadi • adi*sayi • sayi*soyadi Deneyiniz..! Kendi bilgileriniz ile..
  • 99. print() parametreleri >>> print (sep, end, file, flush) • sep: Seperator(Ayırıcı, ayraç) • end: Son, Varsayılanı ( n yeni satır veya satır başı) • file: Dosya, (Yazma Nereye yapılacak) (sys.stdout) • flush: True-False değerleri alır. Yazdırma işleminin tamponda bekletilmesini ayarlar.
  • 100. print() Örnekler >>> print("P", "y", "t", "h", "o", "n", sep=".") P.y.t.h.o.n >>> print(*"Python", sep=".") P.y.t.h.o.n >>> print(*"Çukurova", sep=".") Ç.u.k.u.o.r.v.a Lütfen Deneyiniz..!
  • 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..!
  • 102. print() Örnekler adi="Murat" soyadi="Kara" sehir="Adana" yil=2018 >>> print(adi, soyadi, sehir, yil, sep="n") Murat Kara Adana 2018 Deneyiniz..! Kendi bilgileriniz ile..
  • 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 üç
  • 106. Kaçış Dizisi-Karakteri Örnekler >>> print("u0061") # Unicode a >>> print("x41") # Onaltılık A
  • 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.)
  • 111. Thonny
  • 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
  • 113. Alıştırmalar-Cevap ------------------------------------------------------------------------1 adi="Murat" soyadi="Kara" bolumu="Enformatik" numarasi=123456789 print(adi, soyadi, bolumu, numarasi) ------------------------------------------------------------------------2 okul="ÇukuorvaÜniversitesi" print(*okul, sep="_") ------------------------------------------------------------------------3 a="Adana" b="Mersin" c="Hatay" print(a, b, c, sep="n")
  • 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.)
  • 115. Uygulama-Cevap adi="Murat" soyadi="Kara" gun=20 Ucret=3 yol_Masrafi=gun*Ucret print(adi, soyadi,"'nın", gun,"gün üzerinden, Günde", Ucret, "TL'lik ücretle Aylık Yol Masrafı:", yol_Masrafi, "TL olmaktadı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
  • 119. Aritmetiksel İşleçler 5 + 10 >>> 45 + 60 105 >>> 23 * 46 1058 >>> 10 – 5 5 >>> 25 / 4 6.25 >>> 30 % 4 2 >>> 5 // 2 2 İşlenen İşlenenİşleç
  • 120. Aritmetiksel İşleçler >>> 25 ** 2 625 >>> pow(25, 2) 625 >>> int(5/2) 2 >>> round(2.55) 3 >>> round(2.68, 1) 2.7 >>> pow(25,2,5) 0>>> (25**2)%5 0 25 sayısının 2. kuvvetini alıp, elde ettiğimiz sayının 5 ‘ e bölünmesinden kalan sayıyı hesaplamış
  • 121. Karşılaştırma İşleçleri İşlenenler arasında bir karşılaştırma ilişkisi kuran işleçlerdir. == > >= and not != < <= or >>> 7==7 True
  • 122. Bool İşleçleri 1 ve 0 gibi True ve False (Doğru ve Yanlış) >>> a=1 >>> a==1 True >>> a==2 False >>> bool(a) True
  • 123. Değer Atama İşleçleri = Değer atama işlecidir. += -= /= *= %= **= //=
  • 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ı
  • 126. Alıştırmalar >>> x=7 >>> x+13/4 >>> 2*x+9 >>> (7+x)/2**2 >>> (6*x*3)/2 >>> (4**x)/(1/2) ? Lütfen Deneyiniz..!
  • 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
  • 135. else >>> boy=140 >>> if boy<169 : print("Kısa boylu") elif boy>180 : print("Uzun boylu") else : print(«Normal boylu") Kısa boylu >>>
  • 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..!
  • 141. Uygulama-Cevap adi=input("Adınız:") kilo=int(input("Kilonuzu giriniz (85 gibi) : ")) boy=float(input("Boyunuzu giriniz (1.75 gibi) : ")) bki=round((kilo/(boy**2)),1) if bki<18.5 : sonuc="Zayıf" elif bki<24.9 : sonuc="Normal" elif bki<29.9: sonuc="Kilolu" elif bki<34.9: sonuc="Şişman" else: sonuc="Obez" print("Sayın", adi, "BKİ", bki, "değerinize göre sonuç", sonuc, "çıkmıştır.")
  • 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.
  • 146. Döngüler Python’da döngüler; • While döngüsü • For döngüsü
  • 147. While Döngüsü • ... iken, • ... olduğu sürece, anlamlarına gelmektedir. • Koşul sağlandığı sürece döngü devam eder.
  • 148. while >>> while koşul : uygulanacak komutlar bloğu (koşul sağlandığı sürece) Bloğun dışında komutlar.. Döngü
  • 149. While Örnek i=1 while i<=5 : print(i) i += 1 Değişkenimiz : i Koşulumuz : i<=5 Sayacımız : i += 1 1 2 3 4 5 Sonuç: 1 den 5 kadar yazan döngü
  • 150. Alıştırma sayac = 1 while (sayac < 10) : print ("Bu sayacımız:", sayac) # sayac = sayac + 1 sayac += 1 print ("Hoşçakal !")
  • 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
  • 155. for # 0,1,2,3,4 for x in range(5): print(x) 0 1 2 3 4
  • 156. for sayi = 1 for sayi in range(1,11): print(sayi) 1 2 3 4 5 6 7 8 9 10
  • 157. range() • Ardışık sayılardan oluşan iterasyon edilebilen bir nesnedir. range(başlangıç, bitiş, basamak) Varsayılanlar; Başlangıç: 0 Basamak: 1
  • 158. for in range() for x in range(0,24,3): print(x) 0 3 6 9 12 15 18 21
  • 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..
  • 165. Karakter Dizileri >>> cumle="Çukurova Üniversitesi" >>> sayi="123456789" >>> cumle[7] 'a' >>> sayi[5] '6' >>> sayi[0] '1' >>> sayi[-1] '9' >>> sayi[-3] '7‘ >>> cumle[-4] 't'
  • 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
  • 172. Karakter Dizilerini Alfabetik Sıralamak >>> sorted("Python") ['P', 'h', 'n', 'o', 't', 'y'] veri=input("Lütfen Sıralanacak veriyi giriniz: ") sirala=sorted(veri) print("Sıralama sonucu: ",sirala)
  • 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)
  • 185. Dosyaya Ekleme Yapmak dosya=open("deneme.txt", "a") dosya.write("Hoşçakal") dosya.close
  • 186. Dosyada İlk Satıra Eklemek dosya=open("deneme.txt","r+") veri=dosya.read() dosya.seek(0) #ilk satır için dosya.write("Önce Bu satır gelsin..n"+veri) dosya.close()
  • 187. Dosyada Araya Satır Eklemek dosya=open("deneme.txt","r+") veri=dosya.readlines() veri.insert(1,"ikinci satırn") dosya.seek(0) dosya.writelines(veri) dosya.close()
  • 188. Dosya Metodları dosya=open("deneme.txt","r") print(dosya.closed) #Dosya kapalımı? print(dosya.name) #Dosya adı print(dosya.mode) #Dosyanın açılma kipi print(dosya.encoding) #Dosyanın dil kodlaması
  • 189. Dosya İşlemleri import os #Dosyanın bulunduğu dizin print(os.getcwd()) #Dosya ismini değiştirme os.rename("deneme.txt","abc.txt") #Dosya silmek os.remove("abc.txt")
  • 190. Örnekler d=open("abc.txt","w") d.write("Merhaba") d.close d=open("abc.txt","a") d.write("nHoşçakal") d.close() d=open("abc.txt") print(d.name, d.mode, d.encoding, d.closed) print(d.read()) d.close() d=open("abc.txt","r+") veri=d.read() d.seek(0) d.write("Önce bu satır..n"+veri) d.close() d=open("abc.txt","r+") veri=d.readlines() veri.insert(1,"ikinci satırn") d.seek(0) d.writelines(veri) d.close() import os print(os.getcwd()) #os.rename("dene123.txt","abc2.txt") print(d.name) os.remove("sil.txt")
  • 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..
  • 195. def kullanımı def fonksiyon_adi(): print("Fonksiyonu yaz.. ") fonksiyon_adi() Fonksiyon önce tanımlanır, sonra çağrılır. Fonksiyon Tanımı Fonksiyon Çağrısı Fonksiyon bloğu
  • 196. İlk Örnek def mrb(): print("merhaba python") mrb() ---------run-------- merhaba python
  • 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.
  • 200. İsimli Parametre def adSoyad(adi,sehir): print("Merhaba,",sehir,"şehrine ve ",adi,"Üniversitesine") adSoyad(sehir="Adana",adi="Çukurova") Sırayı kullanmayıp isim tanımla ile değer belirtiyoruz.
  • 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())
  • 204. Örnekler def sirala(): for harf in adi: print(harf) adi=input("İsim Giriniz:") sirala()
  • 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.
  • 212. list() fonksiyonu alfabe="abcçdefgğhıijklmnoöprsştuüvyz" alfabeList=list(alfabe) print(alfabeList) ['a', 'b', 'c', 'ç', 'd', 'e', 'f', 'g', 'ğ', 'h', 'ı', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'ö', 'p', 'r', 's', 'ş', 't', 'u', 'ü', 'v', 'y', 'z'] sayilar=list(range(10)) print(sayilar) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  • 214. Listeye Eklemek liste.append("Balcalı") veya Listeye + ile yine bir liste öğesi eklenebilir. Liste + ["Sarıçam"]
  • 216. Listeden Öğe Silmek liste=['Çukurova', 'Üniversitesi', 'Adana', 'Balcalı', 'Mersin'] del liste[-1] veya liste.pop(4) veya liste.remove('Mersin') print(liste) ['Çukurova', 'Üniversitesi', 'Adana', 'Balcalı']
  • 217. Liste Öğelerini Değiştirmek liste=["Çukurova","Üniversitesi","Adana"] liste[2]="Mersin" print(liste) ['Çukurova', 'Üniversitesi', 'Mersin'] Tüm listeyi değiştirmek için; liste[:]="a","b","c" print(liste) ['a', 'b', 'c']
  • 218. Liste Silme Listenin tamamını da del ile silebiliriz. del liste print(liste) liste is not defined
  • 219. Liste Üreteçleri (List Comprehensions) Liste üretmeyi sağlar. sayiListe = [i for i in range(100)] veya sayiliste2 = list(range(100)) print(sayiListe) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
  • 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…
  • 223. Liste Metodları >>> dir(list) veya print(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']
  • 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"}
  • 230. Sözlük (Okunaklı yazım) sözlük = {"kitap": "book", "bilgisayar": "computer", "programlama": "programming", "dil": "language", "defter": "notebook"} sözlük = {"kitap" : "book", "bilgisayar" : "computer", "programlama" : "programming", "dil" : "language", "defter" : "notebook"}
  • 231. Sözlük Öğesine Erişmek sozluk[sözlük_öğesinin_adı] seklinde ulaşılmaktadır. sozluk={"kitap":"book"} print(sozluk["kitap"]) book
  • 232. Sözlüğe Öğe Eklemek sozluk[anahtar]=değer Şeklinde bir yapıdır. sozluk["merhaba"]="hello" print(sozluk)
  • 233. Sözlük Öğesinde Değişiklik Yapmak print(sozluk) {'kitap': 'book', 'bilgisayar': 'computer', 'programlama': 'programming', 'dil': 'language', 'defter': 'notebook', 'merhaba': 'hello'} sozluk["merhaba"]="Hi!" print(sozluk) {'kitap': 'book', 'bilgisayar': 'computer', 'programlama': 'programming', 'dil': 'language', 'defter': 'notebook', 'merhaba': 'Hi!'}
  • 234. Sözlük Üreteçleri (Dictionary Comprehensions) • Bir listeden sözlük elde etmek.. • Listedeki isimlerin uzunluklarını sözlüğe ekleyelim isimler = ["ahmet", "ayşe", "mehmet", "fatma", "can"] isimler_sozluk = {i: len(i) for i in isimler} print(isimler_sozluk) {'ahmet': 5, 'ayşe': 4, 'mehmet': 6, 'fatma': 5, 'can': 3}
  • 235. Sözlük Metotları print(dir(dict)) ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
  • 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.
  • 237. Sözlük Metotları • sozluk.pop("öğe_adı", "öğe yok mesajı") #Öğe siler • sozluk.popitem() #rastgele öğe siler. • sozluk.setdefault() #sözlükde arama yapiyor, anahtar sözlükte yoksa metot içinde belirtilen anahtar-değerleri oluşturuyor. • sozluk.update(yeni_sozluk) #sozluk değerleri yeni_sozluk ten alınıp güncelleniyor..
  • 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)
  • 240. Küme Metotları print(dir(set)) ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] Dondurulmuş Kümeler frosenset() Elemanları (öğeleri) üzerinde değişiklik yapılamayan kümelerdir. #add(), remove(), update() gibi metotları yoktur.
  • 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.
  • 243. Örnek roman=set(["macera","tarihsel","sosyal","polisiye"]) siir=set(["lirik","pastoral","epik"]) print("Birleşim:",roman|siir) print("Fark:",roman-siir) print("Kesişim:",roman&siir) print("Simetrik Fark:",roman^siir) Birleşim: {'pastoral', 'lirik', 'tarihsel', 'polisiye', 'macera', 'epik', 'sosyal'} Fark: {'macera', 'tarihsel', 'polisiye', 'sosyal'} Kesişim: set() Simetrik Fark: {'polisiye', 'macera', 'sosyal', 'lirik', 'tarihsel', 'epik', 'pastoral'}
  • 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
  • 252. Nesne Tabanlı Programlama (Object Oriented Programming) • Nesneler (sınıflar) temel alınarak gerçekleştirilen bir programlamadır. • Sınıf (Class) – Nesne (Object) • Metot (Method) – Kalıtım (Inheritance)
  • 253. Sınıf Oluşturmak class sinifimiz: sınıf içi tanımlama ve kullanım.. veya class sinif():
  • 254. Örnek class insan: def __init__(self,isim): self.isim = isim def merbaha(self): print("Merhaba, benim adım " + self.isim) insan1 = insan("Murat") insan2 = insan("Mehmet") insan1.merbaha() insan2.merbaha()
  • 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)
  • 262. Genel İstisna (Hata) try: print(x) except: print("Hata oluştu!") --------------- Hata oluştu!
  • 263. ValueError (Değer Hatası) 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!")
  • 264. ZeroDivisionError (0’a (sıfır’a) Bölüm Hatası ) 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!")
  • 265. try... except... as... try: sayi1=int(input("İlk Sayıyı giriniz:")) sayi2=int(input("İkinci Sayıyı giriniz:")) sonuc=sayi1/sayi2 print(sayi1,"/",sayi2,"=",sonuc) except (ValueError, ZeroDivisionError) as hata: print("Bir Hata Oluştu!") print("Orjinal Hata Mesajı:", hata)
  • 266. try... except... else... try: sayi1=int(input("İlk Sayıyı giriniz:")) sayi2=int(input("İkinci Sayıyı giriniz:")) sonuc=sayi1/sayi2 print(sayi1,"/",sayi2,"=",sonuc) yanlis=str(sayi1/sayi2) print(yanlis) except ValueError: print("Lütfen sadece sayı giriniz!") except ZeroDivisionError: print("Bir sayıyı 0'a bölemezsiniz!") else: print("Hata Oluştu!")
  • 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.")
  • 268. raise (Hata Yükseltme, İlave bilgi) try: sayi1=int(input("İlk Sayıyı giriniz:")) sayi2=int(input("İkinci Sayıyı giriniz:")) sonuc=sayi1/sayi2 print(sayi1,"/",sayi2,"=",sonuc) except: print("Hata Oluştu! Ayrıntılı Hata Mesajı Aşağıda..!") raise
  • 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.
  • 273. Python Web Framework • Django • TurboGears • Web2py • Grok • Zope2 • Tornado • Bottle • Flask • Pyramid • Falcon • … https://wiki.python.org/moin/WebFrameworks
  • 274. Python GUI Programlama • Tkinter • PyQT • Kivy • Pygame • PyGUI • WxPython • PyForms • … • https://wiki.python.org/moin/GuiProgramming
  • 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
  • 278. Django Kurulduğu dizin; • C:UsersMurat KARAAppDataLocalProgramsPythonPython36-32Scripts> • django-admin startproject merhaba • python manage.py runserver • python manage.py startapp webdjango
  • 279. Django
  • 281. 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
  • 283. Python Programlama Diline Giriş (SD0194) Murat KARA 2018