Python Unit 3
Python Unit 3
3. ÜNİTE
Kaynak: [Link]
Kaynak: [Link]
PROGRAMLAMA
• Python, nesne yönelimli bir dildir ve bu
yaklaşımda, gerçek hayattaki varlıkları
programlama dünyasına aktarmak için sınıflar
(class) ve nesneler (object) kullanılır.
NESNE KAVRAMI
Kaynak: [Link]
Kaynak: [Link]
Bir nesnenin iki temel öğesi vardır:
Kaynak: [Link]
SINIF YAPISI (SADECE İNCELEYİN, AYRINTILAR DAHA SONRA)
Kaynak: [Link]
Attribute ve
Kaynak: [Link]
Metotların Detayları
Nitelikler (Attributes):
• [Link], [Link], ve
[Link] gibi sınıfın yapıcı
metodu (__init__) içinde
tanımlanır.
Metotların Detayları
• Metotlar (Methods):
• Sınıf içinde tanımlanan fonksiyonlardır
ve genellikle nesne ile ilgili işlemleri
gerçekleştirir.
bilgileri_goster(self) , kornaya_bas(self)
Kaynak: [Link]
Yordamsal Programlama (Procedural Programming)
Yaklaşım
Kaynak: [Link]
Yordamsal Programlama (Procedural Programming)
Amaç
• Problemi küçük ve bağımsız alt görevler (fonksiyonlar) hâline
getirerek çözmek.
Veri Yönetimi
• Veriler genellikle global değişkenler ile saklanır ve bu
değişkenler, programın farklı yerlerinden erişilebilir. Bu, veri
bütünlüğü sorunlarına yol açabilir.
Kaynak: [Link]
Yordamsal Programlama (Procedural Programming)
Avantajları:
• Basit ve küçük projelerde etkili.
• Anlaması ve uygulaması kolaydır.
Dezavantajları:
• Büyük ve karmaşık projelerde kodun okunabilirliği ve
yönetilebilirliği zorlaşır.
• Veri ve davranışların ayrılığı nedeniyle, bir değişiklik
yapmak programın diğer bölümlerini etkileyebilir.
Kaynak: [Link]
Yordamsal Programlama (Procedural Programming)
Avantajları:
• Basit ve küçük projelerde etkili.
• Anlaması ve uygulaması kolaydır.
Dezavantajları:
• Büyük ve karmaşık projelerde kodun okunabilirliği ve
yönetilebilirliği zorlaşır.
• Veri ve davranışların ayrılığı nedeniyle, bir değişiklik
yapmak programın diğer bölümlerini etkileyebilir.
Kaynak: [Link]
Yordamsal Programlama (Procedural Programming) Örnek Kod
Yapısı
Kaynak: [Link]
Nesne Yönelimli Programlama (Object-Oriented Programming - OOP)
Yaklaşım
Kaynak: [Link]
Nesne Yönelimli Programlama (Object-Oriented Programming - OOP)
Amaç
Gerçek hayattaki varlıkları yazılım dünyasına yansıtmak ve her bir
varlık için bir sınıf (class) tanımlamak.
Veri Yönetimi
Veriler nesneye özgüdür ve nesneler dışarıdan izole edilmiştir. Bu,
veri bütünlüğünü artırır.
Kaynak: [Link]
Nesne Yönelimli Programlama (Object-Oriented Programming - OOP)
Avantajları
Dezavantajları
Kaynak: [Link]
Nesne Yönelimli Programlama (Object-Oriented Programming - OOP) Örnek Kod Yapısı
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
ÖRNEK
class Araba:
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
ÖRNEK
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
Nitelikler (Attributes)
ÖRNEK
[Link] = marka
[Link] = model
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
Metotlar (Methods)
ÖRNEK
def bilgileri_goster(self):
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
Yazım Kuralları
Erişim Düzeni
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
Kaynak: [Link]
Dilin Kurallarına Uygun Bir Nesne Tanımlaması
Anlamlı İsimlendirme:
• Sınıf, nitelik ve metot adları anlamlı ve tanımlayıcı olmalıdır.
Yapılandırılmış Kodlama:
• Kod, okunabilir ve düzenli bir şekilde yazılmalıdır.
• Gereksiz tekrarlar (redundancy) olmamalıdır.
Kaynak: [Link]
DİL KURALLARI ÖRNEK KOD YAPISI (UYGULAYINIZ)
class Araba:
# Yapıcı metot (__init__)
def __init__(self, marka, model, yil):
[Link] = marka # Genel nitelik
[Link] = model # Genel nitelik
self.__yil = yil # Özel nitelik (dışarıdan doğrudan erişim yok)
# Nesne oluşturma
araba1 = Araba("Toyota", "Corolla", 2020)
Örneğin:
• Verileri bir dosyaya yazmak
(kayıt/log tutma).
• Bir dosyadan veri okumak
(örneğin, ayar dosyalarını
yüklemek).
Dosya Nesneleri Gerekli Olan Projeler
Kaynak: [Link]
Senaryo:
Kolaylık:
Senaryo:
Bir bankacılık sisteminde müşteri bilgilerini (Musteri) saklıyorsunuz. Bu
sınıfta müşteri adı, hesap bakiyesi ve PIN kodu bulunuyor.
Kolaylık:
Kapsülleme sayesinde verilere doğrudan erişim yerine metotlarla
erişilir:
• get_bakiye() ve set_bakiye() gibi metotlar, verilerin
doğruluğunu ve güvenliğini sağlar.
• Örneğin, negatif bir bakiye değerinin atanmasını
engelleyebilirsiniz.
Aynı Sınıfa Tanımlanan Verilerde Değişiklik Yapmanın Sağladığı Kolaylıklar ve Örnek
Projeler
Kaynak: [Link]
Senaryo:
Bir oyun geliştirdiniz ve karakter özelliklerini (Karakter) bir sınıfta
topladınız. Her karakterin adı, gücü ve can puanı bulunuyor.
Kolaylık:
Tüm karakterler aynı sınıftan türetildiği için bir özelliği (örneğin, can
puanı hesaplama) değiştirdiğinizde tüm karakterler otomatik olarak
etkilenir. Tek tek her nesne için değişiklik yapmanız gerekmez.
Aynı Sınıfa Tanımlanan Verilerde Değişiklik Yapmanın Sağladığı Kolaylıklar ve Örnek
Projeler
Kaynak: [Link]
Senaryo:
Bir araba kiralama uygulamasında her araç için bir Araba sınıfı
tanımladınız. Bu sınıfta aracın marka, model ve günlük kira fiyatı gibi
özellikleri var.
Kolaylık:
Veriler bir sınıfta toplandığı için sistemdeki her araç nesnesinin
özellikleri merkezi bir noktadan düzenlenebilir.
Bu, büyük projelerde kodun daha anlaşılır ve düzenli olmasını sağlar.
Aynı Sınıfa Tanımlanan Verilerde Değişiklik Yapmanın Sağladığı Kolaylıklar ve Örnek
Projeler
Kaynak: [Link]
Senaryo:
Bir ulaşım uygulaması yapıyorsunuz. Arac temel sınıfından Otomobil ve
Otobus sınıfları türettiniz. Arac sınıfında motor hacmi ve yakıt türü gibi
genel özellikler var.
Kolaylık:
Eğer Arac sınıfında bir değişiklik yaparsanız, bu değişiklik Otomobil ve
Otobus sınıflarını da otomatik olarak etkiler.
Kodun farklı yerlerinde aynı bilgiyi değiştirmek yerine, temel sınıfta
yapılan bir değişiklik yeterli olur.
Aynı Sınıfa Tanımlanan Verilerde Değişiklik Yapmanın Sağladığı Kolaylıklar ve Örnek
Projeler
Kaynak: [Link]
Senaryo:
Bir öğrenci yönetim sistemi için bir Ogrenci sınıfı oluşturuldu. Sınıfta
öğrenci adı, notlar ve mezuniyet durumu gibi özellikler var.
Kolaylık:
Öğrenci mezuniyet durumu gibi bir bilgiyi hesaplamak için sınıfın bir
metodunu kullanabilirsiniz (mezuniyet_durumu_hesapla()).
Not güncellendiğinde mezuniyet durumu otomatik olarak değişir. Her
güncellemede elle kontrol yapmanıza gerek kalmaz.
Aynı Sınıfa Tanımlanan Verilerde Değişiklik Yapmanın Sağladığı Kolaylıklar ve Örnek
Projeler
Kaynak: [Link]
Esneklik ve Ölçeklenebilirlik
Senaryo:
Bir restoran sipariş sistemi tasarlıyorsunuz. Siparis sınıfında yemek adı,
miktar ve toplam fiyat gibi özellikler var.
Kolaylık:
Sınıfta yapılan bir değişiklik sistemi daha esnek hale getirir. Örneğin,
indirim oranı eklemek isterseniz, Siparis sınıfına bir nitelik veya metot
eklemeniz yeterlidir. Kodun geri kalanı bu değişiklikten etkilenmez.
Örnek çalışma yapınız.
Kaynak: [Link]
Python'un Açık Kaynak Yapısı ve Geniş
Kütüphane Desteği
Python, açık kaynaklı bir programlama dili olduğu için dünya
çapında birçok geliştirici tarafından katkı sağlanarak geniş bir
kütüphane ekosistemi oluşturulmuştur.
Kaynak: [Link]
time Modülü ve Örnek Kullanımı
Kaynak: [Link]
Örnek: Bir Programın Çalışma Süresini Ölçmek
Kaynak: [Link]
Örnek: İşlemi Belirli Süre Bekletmek
Kaynak: [Link]
random Modülü ve Örnek Kullanımı
Kaynak: [Link]
Örnek: Rastgele Sayı Üretmek
Kaynak: [Link]
Örnek: Bir Listeden Rastgele Seçim Yapmak
Kaynak: [Link]
Örnek: str Sınıfının Kullanımı
Kaynak: [Link]
Modül Kavramı
Kaynak: [Link]
Modülün Programa Dahil Edilmesi
Python'da bir modülü programa dahil etmek için import anahtar kelimesi
kullanılır.
Kaynak: [Link]
Kendi Modülümüzü Oluşturma
Python'da kendi modülünüzü yazabilirsiniz. Örneğin, [Link] adında bir
dosya oluşturup içine özel fonksiyonlar ekleyelim.
Adım 1: Modül Dosyasını Adım 2: Modülü Başka Bir Programda
Oluşturma ([Link]) Kullanma
Kaynak: [Link]
ÖRNEK PROJE
Kaynak: [Link]
ÖRNEK PROJE
Devamı var...
Kaynak: [Link]
ÖRNEK PROJE
Devamı var...
Kaynak: [Link]
ÖRNEK PROJE
Devamı var...
Kaynak: [Link]
ÖRNEK PROJE
Çok Biçimlilik (Polimorfizm)
Şimdi, Hayvan sınıfından türetilen Kedi ve Köpek nesnelerini oluşturup, her iki
nesnenin ses_cikar metodunu çağırarak çok biçimliliği (polimorfizmi) gösterelim.
Kaynak: [Link]
List (LİSTELER)
Python’daki liste veri türü, birden fazla öğeyi bir arada tutmak için
kullanılan bir veri yapısıdır.
Listeler, farklı veri türlerinden öğeleri bir arada tutabilir, yani bir
listenin içerisinde sayılar, metinler, hatta diğer listeler bir arada yer
alabilir.
Kaynak: [Link]
List (LİSTELER)
Liste Özellikleri:
[Link] Edilebilir (Duplicate): Aynı öğe bir listede birden fazla kez
bulunabilir.
Kaynak: [Link]
LİSTE TANIMLAMASI VE KULLANIMI
Kaynak: [Link]
Liste İşlemleri:
Devamı var...
Kaynak: [Link]
Liste İşlemleri:
Kaynak: [Link]
TUPLE (DEMETLER)
Python'daki tuple (demet) veri türü, list veri türüne çok benzer ancak bazı
önemli farklar vardır.
Benzerlikler:
Sıralı (Ordered): Tıpkı listeler gibi, tuple'lar da sıralıdır. Öğeler belirli bir
sırayla saklanır ve bu sıralama korunur.
Kaynak: [Link]
TUPLE (DEMETLER)
Python'daki tuple (demet) veri türü, list veri türüne çok benzer ancak bazı
önemli farklar vardır.
Farklar:
Kaynak: [Link]
Tuple Tanımlaması ve Kullanımı:
Kaynak: [Link]
Tuple'ın Değiştirilemezliği:
Kaynak: [Link]
Tuple'da Veri Ekleyemez veya Çıkartamazsınız
Kaynak: [Link]
Tuple'da Veri Okuma
Kaynak: [Link]
BİR TUPLE ÖRNEĞİ
OLUŞTURUNUZ!
Kaynak: [Link]
SET (KÜMELER)
Set (küme) veri türü, Python'da sırasız, yinelenen öğelere izin vermeyen ve
değiştirilebilir bir veri türüdür. Bir kümenin temel özellikleri şunlardır:
[Link] Elemanlara İzin Vermez: Aynı öğe birden fazla kez eklenemez.
4.Hızlıdır: Elemanların varlığını kontrol etme veya ekleme gibi işlemler hızlı bir
şekilde gerçekleştirilir.
Kaynak: [Link]
SET (KÜMELER)
ÖRNEK
Kaynak: [Link]
SET (KÜMELER)
Kaynak: [Link]
SET (KÜMELER)
Kaynak: [Link]
SET (KÜMELER)
Kaynak: [Link]
SET (KÜMELER)
Kaynak: [Link]
Dictionary (sözlük)
Kaynak: [Link]
Dictionary (sözlük)
ÖRNEK
Kaynak: [Link]
Dictionary (sözlük)
UYGULAMA
Kaynak: [Link]
Dosya Nesneleri ve Veri Depolama
Kaynak: [Link]
Metin Dosyalarında İşlemler
Dosya Açma
Python'da dosyalar open() fonksiyonu ile açılır. Dosya açma
modları:
Kaynak: [Link]
ÖRNEKLER
Kaynak: [Link]
ÖRNEKLER
Kaynak: [Link]
ÖRNEKLER
Kaynak: [Link]
ÖRNEKLER
Kaynak: [Link]
ÖRNEKLER – DOSYAYI SİLME
Kaynak: [Link]
LİSTELERİ DOSYAYA YAZDIRMA
Kaynak: [Link]
DOSYADAKİ VERİYİ LİSTEYE TANIMLAMA
Kaynak: [Link]
Dosya işlemlerinde with as, tell, ve seek metotları
ÇIKTI
Kaynak: [Link]
PROJE TASARLAYIN
Kaynak: [Link]
Python’da grafik arayüzü
Kaynak: [Link]
Python’da grafik arayüzü
Tkinter
PyQt / PySide
Kivy
wxPython
Kaynak: [Link]
Tkinter örnek kullanım
Kaynak: [Link]
Tkinter örnek kullanım
Kaynak: [Link]
Kaynak: [Link]
PYTHON 3.ÜNİTESİ VE
KONULARIN TAMAMI
SONA ERDİ!