Kurs içeriği (5 / 7)
  1. 1 Python’a Giriş ve Temel Kavramlar 40 dk
  2. 2 Değişkenler ve Veri Türleri 80 dk
  3. 3 Koşul İfadeleri 80 dk
  4. 4 Döngüler 80 dk
  5. 5 Listeler ve Temel Veri Yapıları 80 dk
  6. 6 Fonksiyonlar 80 dk
  7. 7 Basit Uygulama ve Mini Projeler 80 dk

Python Temel Kurs · Ders 5 / 7

Listeler ve Temel Veri Yapıları

Konu anlatımı ⏱ 80 dk

Birden fazla bilgiyi tek bir değişkende saklamak için listeleri kullanıyoruz: indeksleme, append(), remove(), len() ve listeler üzerinde döngü. Ardından demet (tuple) ve sözlük (dict) yapılarıyla kısaca tanışıyoruz.

Bu derste

  • Liste oluşturur ve indeks numarasıyla elemanlara erişir.
  • append(), remove() ve len() ile listeyi düzenler ve eleman sayısını bulur.
  • for döngüsüyle bir listenin tüm elemanları üzerinde işlem yapar.
  • Demet (tuple) ve sözlük (dict) yapılarını tanır ve basit örneklerde kullanır.

Malzemeler

  • Bilgisayar
  • Python 3 ve Thonny
  • Çevrim içi Python editörü (alternatif)

Sınıftaki 30 öğrencinin notlarını saklamak için 30 ayrı değişken oluşturmak hiç pratik olmazdı. Bunun yerine hepsini tek bir kutuda, sıralı biçimde tutabiliriz. Bu derste Python’un en çok kullanılan veri yapısı olan listeleri öğrenecek, ardından demet ve sözlüklerle kısaca tanışacağız.

Dersin Amacı ve Kazanımlar

Bu dersin sonunda:

  1. Liste oluşturabilecek ve indeks numarasıyla elemanlara erişebileceksiniz.
  2. append(), remove() ve len() ile listeyi düzenleyebilecek ve eleman sayısını bulabileceksiniz.
  3. for döngüsüyle bir listenin tüm elemanları üzerinde işlem yapabileceksiniz.
  4. Demet (tuple) ve sözlük (dict) yapılarını tanıyıp basit örneklerde kullanabileceksiniz.

Gerekli Malzemeler

Malzeme Açıklama
Bilgisayar Windows, macOS veya Linux yüklü herhangi bir bilgisayar
Python 3 ve Thonny Bilgisayara kurulu Python 3 ve Thonny editörü (thonny.org)
Çevrim içi editör (alternatif) Kurulum yapılamıyorsa tarayıcıda çalışan bir Python editörü (ör. Programiz, Trinket)

Liste Nedir?

Liste, birden fazla değeri sıralı olarak saklayan bir yapıdır. Köşeli parantez [ ] içinde, elemanları virgülle ayırarak yazılır. Bir listede sayılar, metinler, hatta farklı türde değerler bir arada bulunabilir.

Listedeki her elemanın bir sıra numarası, yani indeksi vardır. Python’da sayma 0’dan başlar: İlk elemanın indeksi 0, ikincisinin 1’dir. Negatif indeksler sondan saymamızı sağlar: -1 son eleman, -2 sondan ikinci elemandır.

Eleman "elma" "armut" "çilek" "muz"
İndeks 0 1 2 3
Negatif indeks -4 -3 -2 -1

Örnek 1: Listeyi Tanıyalım

# Liste oluşturma ve elemanlara erişme
meyveler = ["elma", "armut", "çilek", "muz"]
print(meyveler)
print(meyveler[0])     # ilk eleman
print(meyveler[2])     # üçüncü eleman
print(meyveler[-1])    # son eleman
print("Eleman sayısı:", len(meyveler))

Beklenen çıktı:

['elma', 'armut', 'çilek', 'muz']
elma
çilek
muz
Eleman sayısı: 4

Listeyi Düzenlemek

  • liste.append(deger): Listenin sonuna yeni bir eleman ekler.
  • liste.remove(deger): Verilen değeri listeden çıkarır (aynı değerden birden fazla varsa ilkini).
  • len(liste): Listedeki eleman sayısını verir.
  • liste[indeks] = yeni_deger: Belirtilen sıradaki elemanı değiştirir.
  • deger in liste: Değer listede varsa True, yoksa False verir.

Örnek 2: Ders Listesi

# Listeye ekleme, çıkarma ve değiştirme
dersler = ["Matematik", "Türkçe"]
dersler.append("Bilişim")
dersler.append("Fen Bilimleri")
print(dersler)

dersler.remove("Türkçe")
print(dersler)

dersler[0] = "Matematik (5 saat)"
print(dersler)
print("Ders sayısı:", len(dersler))
print("Bilişim listede mi?", "Bilişim" in dersler)

Beklenen çıktı:

['Matematik', 'Türkçe', 'Bilişim', 'Fen Bilimleri']
['Matematik', 'Bilişim', 'Fen Bilimleri']
['Matematik (5 saat)', 'Bilişim', 'Fen Bilimleri']
Ders sayısı: 3
Bilişim listede mi? True

Liste Üzerinde Döngü

Bir önceki derste for döngüsünü range() ile kullanmıştık. for döngüsü listelerle de çalışır: Her turda listenin sıradaki elemanını değişkene koyar. Böylece listenin uzunluğu ne olursa olsun tüm elemanları tek tek işleyebiliriz.

Örnek 3: Not Ortalaması

# Liste üzerinde döngü: not ortalaması
notlar = [85, 72, 90, 64, 78]
toplam = 0

for not_degeri in notlar:
    print("Not:", not_degeri)
    toplam = toplam + not_degeri

ortalama = toplam / len(notlar)
print("Ortalama:", ortalama)
print("En yüksek not:", max(notlar))
print("En düşük not:", min(notlar))

Beklenen çıktı:

Not: 85
Not: 72
Not: 90
Not: 64
Not: 78
Ortalama: 77.8
En yüksek not: 90
En düşük not: 64

Değişkene not yerine not_degeri adını verdiğimize dikkat edin. not, Python’da mantıksal operatör olarak kullanılan özel bir kelimedir ve değişken adı olamaz. max() ve min() fonksiyonları ise listedeki en büyük ve en küçük değeri bulur.

💡 İpucu

Boş bir listeyle başlayıp elemanları sonradan eklemek çok kullanışlıdır: isimler = [] yazın, sonra bir döngü içinde isimler.append(input("İsim: ")) ile kullanıcıdan gelen değerleri ekleyin. 7. dersteki mini projelerde bu yöntemi bolca kullanacağız.

Demet (tuple) ve Sözlük (dict)

Demet (tuple), listeye çok benzer ama normal parantez ( ) ile yazılır ve oluşturulduktan sonra değiştirilemez. Haftanın günleri ya da bir noktanın koordinatları gibi sabit kalması gereken bilgiler için uygundur.

Sözlük (dict) ise bilgileri sıra numarasıyla değil, anahtar ile saklar. Gerçek bir sözlükte kelimeye bakıp anlamını bulduğumuz gibi, Python sözlüğünde de anahtara bakıp değeri buluruz. Süslü parantez { } ile yazılır ve her eleman anahtar: deger biçimindedir.

Örnek 4: Demet ve Sözlük

# Demet (tuple): değiştirilemeyen liste
gunler = ("Pazartesi", "Salı", "Çarşamba")
print(gunler[1])

# Sözlük (dict): anahtar ve değer çiftleri
ogrenci = {"ad": "Mert", "sinif": 7, "okul_no": 154}
print(ogrenci["ad"])
ogrenci["sinif"] = 8          # değeri güncelle
ogrenci["kulup"] = "Robotik"  # yeni anahtar ekle
print(ogrenci)

for anahtar in ogrenci:
    print(anahtar, "->", ogrenci[anahtar])

Beklenen çıktı:

Salı
Mert
{'ad': 'Mert', 'sinif': 8, 'okul_no': 154, 'kulup': 'Robotik'}
ad -> Mert
sinif -> 8
okul_no -> 154
kulup -> Robotik

⚠️ Önemli Not

İndeksler 0’dan başladığı için 4 elemanlı bir listenin son indeksi 4 değil, 3’tür. meyveler[4] yazarsanız IndexError: list index out of range hatası alırsınız. Benzer şekilde, listede olmayan bir değeri remove() ile silmeye çalışmak ValueError, sözlükte olmayan bir anahtarı istemek de KeyError hatası verir. Emin değilseniz önce in ile kontrol edin: if "Türkçe" in dersler:

Sıra Sizde

  1. Kolay: En sevdiğiniz 5 filmden bir liste oluşturun. İlk ve son filmi, ardından listenin eleman sayısını ekrana yazdırın.
  2. Orta: Kullanıcıdan 5 arkadaşının adını isteyip boş bir listeye ekleyen, sonra adları numaralandırarak (1. Ali, 2. Ece …) yazdıran bir program yazın.
  3. Zor: Bir alışveriş listesini sözlük olarak tutun (ör. {"ekmek": 2, "süt": 1}). Kullanıcıdan ürün adı ve adet alarak sözlüğe ekleyin; ürün zaten varsa adedini artırın. Sonunda tüm listeyi yazdırın.

Kendini Dene

  1. sayilar = [10, 20, 30] ise sayilar[1] değeri nedir?
  2. Aynı listeye sayilar.append(40) uygulandıktan sonra len(sayilar) kaç olur?
  3. Demet (tuple) ile liste arasındaki temel fark nedir?

Cevaplar

  1. 20. İndeksler 0’dan başladığı için 1 numaralı indeks ikinci elemandır.
  2. 4.
  3. Liste değiştirilebilir; demet oluşturulduktan sonra değiştirilemez.