Ders Raporu
← Nesne Tabanlı Programlama 2
Ders Raporu

Nesne Tabanlı Programlama 2

Açıköğretim Fakültesi » Bilgisayar Programcılığı Önlisans Programı » Atatürk Üniversitesi ATA AÖF · 14 ünite

Konu Özeti

Ünite 1: Temel Python Komutları

Python, 1991 yılında yayımlanmış, okunabilirliği yüksek, açık kaynaklı ve platform bağımsız bir programlama dilidir. Günümüzde en yaygın kullanılan sürüm ailesi Python 3'tür. Dilin en temel referans uygulaması C diliyle yazılmış olan CPython'dır.

Ünite 2: Python’da Akış Kontrol

Programlama dillerinde varsayılan çalışma mantığı, kodların yukarıdan aşağıya, sıralı ve doğrusal bir şekilde yürütülmesidir. Ancak gerçek dünya problemleri, belirli koşullara göre karar vermeyi, bazı işlemleri tekrarlamayı veya gereksiz kod bloklarını atlamayı zorunlu kılar. Bu doğrusal akışın yetersiz kaldığı noktalarda 'akış kontrol yapıları' devreye girerek programın yürütme sırasını dinamik bir hale getirir.

Ünite 3: Fonksiyonlar

Programlama sürecinde karmaşıklığı azaltmak ve kodun okunabilirliğini artırmak için kullanılan fonksiyonlar, belirli bir görevi yerine getirmek üzere tasarlanmış bağımsız kod bloklarıdır. Tek bir ana program bloğu yerine, işlemleri küçük ve yönetilebilir parçalara bölmek, hata yapma olasılığını düşürür ve kodun tekrar kullanılabilirliğini sağlar. Python'da fonksiyon tanımlamak için 'def' anahtar sözcüğü kullanılır.

Ünite 4: Listeler

Python'da listeler, birden fazla öğeyi tek bir değişken altında toplayan, sıralı ve dinamik veri yapılarıdır. Köşeli parantezler [] kullanılarak tanımlanan bu yapılar, içeriklerinde farklı veri türlerini aynı anda barındırabilirler. Örneğin, bir liste hem metin hem de sayısal değerleri içerebilir.

Ünite 5: Sözlük Veri Tipi

Python'da sözlük (dictionary), verileri anahtar-değer (key-value) çiftleri halinde saklayan, indeks yerine anlamlı anahtarlar kullanan esnek bir veri yapısıdır. Liste yapılarında veriye ulaşmak için sayısal bir sıra (indeks) gerekirken, sözlüklerde veriye doğrudan o veriyi temsil eden anahtar ile erişilir. Bu yapı, gerçek dünyadaki telefon rehberi, ürün-fiyat listesi veya öğrenci not sistemi gibi ilişkisel verileri modellemek için oldukça uygundur.

Ünite 6: Metin Yönetimi

Python'da metinler 'str' (string) veri türü ile temsil edilir ve programlamanın en temel yapı taşlarından biridir. Metinler yalnızca ekrana yazı yazdırmak için değil, kullanıcıdan alınan girdilerin işlenmesi, dosya yollarının yönetilmesi ve uygulamalar arası veri transferi gibi kritik süreçlerde kullanılır. Metinlerle etkileşim genellikle input() fonksiyonu ile kullanıcıdan veri alma ve print() fonksiyonu ile çıktı üretme şeklinde başlar.

Ünite 7: Nesne Yönelimli Tasarım

Yazılım geliştirme süreci, sadece kod yazmaktan ibaret olmayıp analiz, tasarım ve programlama aşamalarını içeren sistematik bir mühendislik faaliyetidir. Tasarım aşaması, kodlamadan önce sistemin yapısını planlamayı hedefler. Plansız geliştirilen yazılımlar kısa vadede çalışsa da, zamanla teknik borç biriktirerek bakımın zorlaşmasına, hata oranının artmasına ve genişletilebilirlik sorunlarına yol açar.

Ünite 8: Python’da Nesneler

Python'da nesne kavramı dilin temel taşıdır; sayılar, metinler, listeler ve hatta fonksiyonlar birer nesne olarak ele alınır. Nesne, veriyi (durum) ve bu veri üzerinde işlem yapan davranışları (metotları) bir arada tutan bir yapıdır. Prosedürel programlamadan farklı olarak, nesne yönelimli yaklaşımda odak noktası fonksiyonlar değil, sorumluluk sahibi nesnelerdir.

Ünite 9: İlişkili Nesneler

Nesne yönelimli programlama (NYP), yazılımı bağımsız bileşenlerden ziyade, birbirleriyle etkileşim hâlinde olan nesneler üzerinden kurgular. Nesne, gerçek dünyadaki varlıkların yazılım ortamındaki karşılığıdır; belirli verileri (özellikleri) ve bu veriler üzerinde işlem yapabilen davranışları (metotları) bünyesinde barındırır. Örneğin, bir elma gerçek dünyada bir nesne olduğu gibi, yazılımda da belirli özelliklere sahip bir nesne olarak temsil edilebilir.

Ünite 10: İstisna Yönetimi

Yazılım geliştirme sürecinde programların her zaman öngörülen şekilde çalışması beklenemez. Kullanıcı hataları, yanlış veri girişleri veya sistem kaynaklarının yetersizliği gibi durumlar programın normal akışını bozabilir. İstisna (exception), programın çalışma anında ortaya çıkan ve normal akışı kesintiye uğratan ancak sistem tarafından yakalanıp yönetilebilir hale getirilmiş olağan dışı durumlardır.

Ünite 11: Nesne Yönelimli Programlama Ne Zaman Kullanılır

Nesne yönelimli programlama, yazılım sistemlerini gerçek dünyadaki varlıkları temsil eden bağımsız nesneler bütünü olarak ele alan bir yaklaşımdır. Geleneksel programlamanın aksine, sadece işlem sırasına odaklanmak yerine, sistemin sorumluluklarını nesnelere paylaştırarak modülerlik ve sürdürülebilirlik sağlar. Bir nesne iki temel bileşenden oluşur: 'Durum' (state) yani nesnenin sahip olduğu veriler (öznitelikler) ve 'Davranış' (behavior) yani bu veriler üzerinde işlem yapan metodlar.

Ünite 12: Dosya Okuma ve Yazma

Bir dosyayı tanımlayan iki temel unsur dosya adı ve dosya yoludur. Dosya yolu, dosyanın bilgisayar üzerindeki konumunu hiyerarşik bir yapıda belirtir. Bu hiyerarşinin en üstünde kök klasör yer alır; Windows işletim sisteminde bu genellikle bir sürücü harfi (C:\) iken, macOS ve Linux sistemlerinde düz bölü (/) karakteri ile temsil edilir.

Ünite 13: Excel Dosya Yönetimi

Günümüzde elektronik tablolar, finansal kayıtlardan stok takibine kadar geniş bir yelpazede kullanılmaktadır. Ancak veri hacmi arttıkça, manuel işlemler zaman alıcı ve hata yapmaya açık hale gelir. Python, openpyxl kütüphanesi sayesinde bu süreci otomatize ederek, binlerce satırlık veriyi saniyeler içinde işleme, sınıflandırma ve raporlama imkanı sunar. openpyxl, .xlsx uzantılı dosyaları okumak, düzenlemek ve oluşturmak için kullanılan güçlü bir araçtır.

Ünite 14: Word ve Pdf Dosya Yönetimi

Dijital dönüşümle birlikte belge yönetimi, yazılım sistemlerinin ayrılmaz bir parçası haline gelmiştir. Word (.docx) ve PDF (.pdf) formatları, sadece düz metin değil; yazı tipi, stil, tablo ve görsel gibi biçimsel verileri içeren ikili (binary) dosyalardır. Bu yapı, onları basit metin dosyalarından ayırarak daha karmaşık işleme yöntemleri gerektirir.

Öne Çıkan Kavramlar

Derlenen DilKaynak kodun önceden bir derleyici tarafından makine diline çevrilerek çalıştırılabilir bir dosya oluşturulduğu dillerdir. Örnek: C veya C++ dillerinde kod, çalıştırılmadan önce tam bir makine kodu çıktısına dönüştürülür.
Yorumlanan DilKaynak kodun program çalışma anında yorumlayıcı tarafından satır satır okunup yürütüldüğü dillerdir. Python bu gruba girer; kodun çalışması için önceden bir derleme dosyası oluşturulması gerekmez.
CPythonPython programlama dilinin C diliyle geliştirilmiş en yaygın ve referans kabul edilen yorumlayıcısıdır. Çoğu kullanıcı Python'u çalıştırırken arka planda bu yorumlayıcıyı kullanır.
Atama Operatörü (=)Sağ taraftaki değeri alıp sol taraftaki değişken ismine kaydeden işlemdir. Örneğin 'x = 5' ifadesi, 5 değerini x değişkeninin içine yerleştirir.
Tam Bölme (//)Bölme işleminin sonucunu aşağı yuvarlayarak sadece tam sayı kısmını veren operatördür. Örneğin '22 // 8' işleminin sonucu 2'dir.
Kalan Bulma (%)Bir sayının diğerine bölünmesi sonucunda oluşan kalanı veren operatördür. Örneğin '22 % 8' işleminin sonucu 6'dır.
Tür DönüşümüBir veri türünü başka bir türe çevirme işlemidir. Örneğin 'int("25")' ifadesi, metin olan "25" değerini tam sayı olan 25'e dönüştürür.
input() FonksiyonuKullanıcıdan klavye aracılığıyla veri almayı sağlayan fonksiyondur. Her zaman metin (str) türünde değer döndürür.
print() FonksiyonuVerilen değerleri veya değişkenleri ekrana yazdırmak için kullanılan temel çıktı fonksiyonudur. Örneğin 'print("Merhaba")' ekrana Merhaba yazar.
DeğişkenProgram içinde verileri saklamak için kullanılan isimlendirilmiş hafıza alanlarıdır. Örneğin 'yas = 20' ifadesinde 'yas' bir değişkendir.
Yorum Satırı (#)Kodun içine açıklama eklemek için kullanılan ve Python tarafından çalıştırılmayan satırlardır. Örneğin '# Bu bir yorumdur' satırı programın akışını etkilemez.
Boolean Veri TipiSadece True veya False değerlerini alabilen mantıksal veri türüdür. Karşılaştırma işlemlerinin sonucunda elde edilir ve karar yapılarının akışını belirler.
Karşılaştırma Operatörleriİki değer arasında büyüklük, küçüklük veya eşitlik gibi ilişkileri sorgulayan operatörlerdir. Örneğin, 'a == b' ifadesi a ve b'nin eşitliğini sorgulayarak bir Boolean sonuç üretir.
Mantıksal OperatörlerBirden fazla koşulun birleştirilmesini sağlayan and, or ve not operatörleridir. Örneğin, '(x > 5) and (y < 10)' ifadesi her iki koşulun da aynı anda sağlanıp sağlanmadığını kontrol eder.
Şartlı DallanmaProgramın belirli bir koşula bağlı olarak farklı kod blokları arasında seçim yapmasıdır. if, if-else ve if-elif-else yapıları bu süreci yönetir.
while DöngüsüTekrar sayısı belli olmayan, bir koşul doğru olduğu sürece çalışmaya devam eden döngü yapısıdır. Koşul yanlış olduğunda döngü sona erer.
for DöngüsüYinelenebilir (iterable) veri yapıları üzerinde işlem yapan, genellikle tekrar sayısı belli olan döngü yapısıdır. Veri kümesindeki her bir eleman için döngü gövdesini bir kez çalıştırır.
break KomutuDöngü içerisinde belirli bir koşul gerçekleştiğinde döngüyü tamamen sonlandıran ve program akışını döngü dışına çıkaran komuttur.
continue KomutuDöngü içerisinde o anki iterasyonu yarıda kesip, döngü gövdesindeki geri kalan kodları atlayarak bir sonraki iterasyona geçilmesini sağlayan komuttur.
range() FonksiyonuBelirli bir aralıkta ardışık sayısal değerler üreten fonksiyondur. Genellikle for döngüleri ile birlikte sayısal sınırları belirlemek için kullanılır.
İterasyon (Yineleme)Bir kod bloğunun belirli bir koşul veya veri kümesi dahilinde tekrar tekrar çalıştırılması sürecidir. Döngüler bu sürecin temelini oluşturur.
FonksiyonBelirli bir görevi yerine getirmek üzere oluşturulan, ana programdan bağımsız, ihtiyaç duyulduğunda çağrılan kod bloklarıdır. Örneğin, 'kare_hesapla()' fonksiyonu sadece sayının karesini almak için kullanılır.
ParametreFonksiyon tanımlanırken parantez içinde belirtilen ve fonksiyonun dışarıdan alacağı verileri temsil eden değişkenlerdir. 'def topla(a, b):' ifadesindeki 'a' ve 'b' birer parametredir.
ArgümanFonksiyon çağrılırken parametrelere gönderilen gerçek değerlerdir. 'topla(5, 10)' çağrısında kullanılan 5 ve 10 değerleri argümandır.

Sınavda Dikkat Et

  • Tırnak işaretlerine dikkat edin: '10' ile 10 aynı şey değildir; biri metin, diğeri tam sayıdır.
  • input() her zaman metin döndürür: Sayısal işlem yapacaksanız mutlaka int() veya float() ile dönüştürün.
  • İşlem önceliğini unutmayın: Parantez, üs alma, çarpma/bölme ve toplama/çıkarma sırasını takip edin.
  • Değişken adlandırma kuralları: Değişkenlerin sayı ile başlayamayacağını ve boşluk içeremeyeceğini hatırlayın.
  • Hata mesajlarını okuyun: Python hata verdiğinde hangi satırda hata olduğunu belirtir, bu öğrenme sürecinde en büyük yardımcınızdır.
  • Operatör farkları: / (bölme) float sonuç verirken, // (tam bölme) tam sayı sonuç verir.
  • Karşılaştırma operatörleri ile atama operatörünü (=) karıştırmayın; '==' eşitliği, '=' ise atamayı temsil eder.
  • range() fonksiyonunda bitiş değerinin dahil edilmediğini unutmayın; range(5) 0'dan 4'e kadar sayı üretir.
  • while döngülerinde döngü kontrol değişkenini artırmayı veya güncellemeyi unutursanız programınız sonsuz döngüye girer.
  • if-elif-else yapısında koşulların sırasının önemli olduğunu unutmayın; ilk sağlanan koşul çalışır ve diğerleri atlanır.
  • break komutunun döngüyü tamamen sonlandırdığını, continue komutunun ise sadece o adımı atladığını mutlaka ayırt edin.
  • Boolean değerlerin sadece True ve False olduğunu, tırnak içinde yazılan 'True' ifadesinin bir string (metin) olduğunu unutmayın.