gamedschool

Python’da Listeler, Fonksiyonlar ve Modüler Programlama konu anlatımı

10. sınıf Bilgisayar Bilimi · Programlama

Lise · 10. sınıf · Bilgisayar Bilimi · Ünite: Programlama · ~2 dk okuma

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"]

İşlemKodSonuç
İndis (0’dan başlar)notlar[0]70
Son elemannotlar[-1]65
Dilimlemenotlar[1:3][85, 90]
Eklemenotlar.append(100)sona 100 eklenir
Silmenotlar.remove(65)65 silinir
Uzunluklen(notlar)eleman sayısı
Toplam / en büyük / en küçüksum(), max(), min()
Sıralamanotlar.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.

  • def ile tanımlanır; parametre alabilir; return ile 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ÖrnekAçıklama
SyntaxErrorprint("Merhaba"Yazım (sözdizimi) hatası: parantez eksik
NameErrorprint(sayi) (tanımlanmamış)Değişken bulunamadı
TypeError"5" + 3Uyumsuz veri türleri
IndexErrorListede olmayan indis
Mantık hatasıOrtalama için toplamı 2’ye bölmekProgram ç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
Önemli noktalar
  • 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ü

Soru

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?

Çözüm

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üm

7 (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üm

def fark(l): return max(l) - min(l)

3. “5” + 3 neden hata verir, nasıl düzeltilir? ZorÇözüm

Metin 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!

Kendini dene

1. a = [10, 20, 30, 40] için a[2] nedir?
  1. 40
  2. 30
  3. 20
  4. 10
Cevabı göster

Doğru cevap: B) 30 · İndis 0’dan.

2. a = [10, 20, 30, 40] için a[-1] nedir?
  1. 30
  2. 10
  3. Hata
  4. 40
Cevabı göster

Doğru cevap: D) 40 · Son.

3. Listenin sonuna eleman ekleyen metot hangisidir?
  1. remove()
  2. len()
  3. append()
  4. sort()
Cevabı göster

Doğru cevap: C) append() · Ekle.

4. len([3, 5, 7, 9]) kaçtır?
  1. 4
  2. 3
  3. 9
  4. 24
Cevabı göster

Doğru cevap: A) 4 · Uzunluk.

5. Kod bloğuna göre ortalama([70, 85, 90, 65]) kaçtır?
  1. 85
  2. 310
  3. 70
  4. 77.5
Cevabı göster

Doğru cevap: D) 77.5 · Kod.

Konunun tüm sorularını ve testlerini gamedschool’da çözebilir, yanlışlarını tekrar edebilirsin.

10. Sınıf Bilgisayar Bilimi konuları
Konuyu oyunla pekiştir

gamedschool’da bu konunun testlerini çöz, XP ve altın kazan, Pixel Dünyası’nda arkadaşlarınla buluş. Öğrenciler için ücretsiz.

Ücretsiz kayıt ol