Listeler (oluşturma, indis, dilimleme, append, remove, len, sum, max, min, sort), liste üzerinde döngü; string işlemleri; fonksiyon tanımlama (def), parametre ve dönüş değeri (return), yerel ve genel değişken; hazır modüller (random, math); hata ayıklama (debugging) ve hata türleri; modüler program tasarımı: not hesaplama örneği.
Listeler
Liste: Birden fazla değeri sıralı olarak tutan veri yapısı
notlar = [70, 85, 90, 65]
isimler = ["Ada", "Can", "Ece"]
| İşlem | Kod | Sonuç |
|---|---|---|
| İndis (0’dan başlar) | notlar[0] | 70 |
| Son eleman | notlar[-1] | 65 |
| Dilimleme | notlar[1:3] | [85, 90] |
| Ekleme | notlar.append(100) | sona 100 eklenir |
| Silme | notlar.remove(65) | 65 silinir |
| Uzunluk | len(notlar) | eleman sayısı |
| Toplam / en büyük / en küçük | sum(), max(), min() | |
| Sıralama | notlar.sort() | küçükten büyüğe |
Liste üzerinde döngü:
for n in notlar:
····if n >= 50:
········print(n, "geçti")
⚠️ İndis 0’dan başlar: 4 elemanlı listenin son indisi 3’tür; notlar[4] → IndexError.
Fonksiyonlar
Fonksiyon: Belirli bir işi yapan, adı olan ve tekrar kullanılabilen kod bloğu → kodu kısaltır, okunur kılar, hataları azaltır.
defile tanımlanır; parametre alabilir;returnile değer döndürür.- Yerel değişken: Fonksiyonun içinde tanımlanır, dışarıdan erişilemez.
- Genel değişken: Programın her yerinden erişilebilir.
Hazır fonksiyonlar ve modüller:
import random → random.randint(1, 6) (zar at)
import math → math.sqrt(16) = 4.0, math.pi
String işlemleri: len("bilgisayar") = 10 · "merhaba".upper() = "MERHABA" · "a,b,c".split(",") = ["a", "b", "c"]
Hata ayıklama ve modüler tasarım
Hata türleri:
| Hata | Örnek | Açıklama |
|---|---|---|
| SyntaxError | print("Merhaba" | Yazım (sözdizimi) hatası: parantez eksik |
| NameError | print(sayi) (tanımlanmamış) | Değişken bulunamadı |
| TypeError | "5" + 3 | Uyumsuz veri türleri |
| IndexError | Listede olmayan indis | |
| Mantık hatası | Ortalama için toplamı 2’ye bölmek | Program çalışır ama sonuç yanlış |
Hata ayıklama (debugging): Hata mesajını oku → satırı bul → değişkenleri print ile izle → küçük adımlarla test et
Modüler tasarım: Büyük problemi küçük fonksiyonlara böl:
not_al() → ortalama() → harf_notu() → rapor_yaz()
Her fonksiyon tek bir iş yapmalı; ayrı ayrı test edilebilir.
Kavramlar
- liste
- sıralı veri yapısı
- indis
- elemanın sıra numarası
- fonksiyon
- adı olan tekrar kullanılabilir kod
- parametre
- fonksiyona verilen girdi
- debugging
- hata ayıklama
- Liste: sıralı değer topluluğu; indis 0’dan başlar
- append, remove, len, sum, max, min, sort
- Fonksiyon: def ile tanımlanır, return ile değer döndürür
- Yerel değişken fonksiyon içinde, genel değişken her yerde
- Hatalar: SyntaxError, NameError, TypeError, IndexError, mantık
- Modüler tasarım: her fonksiyon tek iş
Örnek soru ve çözümü
Kod bloğundaki ortalama fonksiyonu [70, 85, 90, 65] listesi için neden 77.5 döndürür? Listeye 100 eklenirse sonuç ne olur?
sum = 310, len = 4 → 310 / 4 = 77.5. 100 eklenirse toplam 410, eleman sayısı 5 → 82.0.
Çözümlü örnekler
1. l = [4, 7, 9] için l[1] nedir? Kolay
Çözüm7 (indis 0’dan başlar).
2. Bir listedeki en büyük ve en küçük değer arasındaki farkı döndüren fonksiyon yazınız. Orta
Çözümdef fark(l): return max(l) - min(l)
3. “5” + 3 neden hata verir, nasıl düzeltilir? Zor
ÇözümMetin ile sayı toplanamaz (TypeError). int("5") + 3 = 8 ya da "5" + str(3) = "53" yazılır.
Sık yapılan hatalar
- Listenin ilk elemanının indisinin 1 olduğunu sanmak.
- Fonksiyon içinde return yazmayıp sonucu kullanmaya çalışmak.
- Mantık hatasının program çalıştığı için olmadığını sanmak.
Biliyor muydun?
Python’un adı yılan türünden değil, yaratıcısı Guido van Rossum’un çok sevdiği “Monty Python” adlı İngiliz komedi grubundan gelir!