Kurs içeriği (7 / 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 7 / 7

Basit Uygulama ve Mini Projeler

Proje ⏱ 80 dk

Kurs boyunca öğrendiğimiz değişkenleri, koşulları, döngüleri, listeleri ve fonksiyonları bir araya getirerek üç mini proje geliştiriyoruz: sayı tahmin oyunu, not ortalaması hesaplayıcı ve yapılacaklar listesi.

Bu derste

  • Bir problemi küçük adımlara bölerek çözüm planı (algoritma) oluşturur.
  • Değişken, koşul, döngü, liste ve fonksiyonları bir arada kullanan programlar yazar.
  • random modülüyle rastgele sayı üretir.
  • Yazdığı programı farklı girdilerle test eder ve geliştirir.

Malzemeler

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

Tebrikler, kursun son dersine geldiniz! Şimdiye kadar öğrendiğimiz her şeyi bir araya getirme zamanı. Bu derste üç mini proje geliştireceğiz. Her projede hangi konuları kullandığımızı göreceğiz ve projeleri kendi fikirlerinizle geliştirmeniz için size görevler vereceğiz.

Dersin Amacı ve Kazanımlar

Bu dersin sonunda:

  1. Bir problemi küçük adımlara bölerek çözüm planı (algoritma) oluşturabileceksiniz.
  2. Değişken, koşul, döngü, liste ve fonksiyonları bir arada kullanan programlar yazabileceksiniz.
  3. random modülüyle rastgele sayı üretebileceksiniz.
  4. Yazdığınız programı farklı girdilerle test edip geliştirebileceksiniz.

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)

Bir Projeye Nasıl Başlanır?

Hemen kod yazmaya başlamak yerine önce bir plan yapın. Bu plana algoritma denir:

  1. Problemi anlayın: Program ne yapacak? Kullanıcıdan ne alacak, ekrana ne yazacak?
  2. Adımlara bölün: İşi küçük ve basit adımlar hâlinde kâğıda yazın.
  3. Parça parça kodlayın: Her adımı yazdıktan sonra programı çalıştırıp deneyin.
  4. Test edin: Programı farklı girdilerle, hatta yanlış girdilerle deneyin.

💡 İpucu

Projeyi tek seferde bitirmeye çalışmayın. Önce en basit hâlini çalıştırın (ör. sadece rastgele sayı üretip ekrana yazdırın), sonra adım adım yeni özellikler ekleyin. Her çalışan sürümü farklı bir adla kaydederseniz bir şeyler bozulduğunda geri dönebilirsiniz.

Mini Proje 1: Sayı Tahmin Oyunu

Bilgisayar 1 ile 50 arasında bir sayı tutacak, biz de 6 hakta bu sayıyı bulmaya çalışacağız. Her yanlış tahminde bilgisayar bize “daha büyük” ya da “daha küçük” diye ipucu verecek.

Kullandığımız kavramlar: random modülü, fonksiyon, for döngüsü, if/elif/else, tür dönüştürme.

Python’un hazır modüllerinden biri olan random, rastgele sayı üretmemizi sağlar. Programın başında import random yazarak modülü çağırırız; random.randint(1, 50) ise 1 ile 50 arasında (ikisi de dahil) rastgele bir tam sayı verir.

# Mini Proje 1: Sayı Tahmin Oyunu
import random

def oyun():
    gizli_sayi = random.randint(1, 50)   # 1-50 arası rastgele sayı
    hak = 6
    print("1 ile 50 arasında bir sayı tuttum. Bulabilir misin?")
    print("Toplam", hak, "tahmin hakkın var.")

    for deneme in range(1, hak + 1):
        tahmin = int(input(str(deneme) + ". tahminin: "))
        if tahmin == gizli_sayi:
            print("Tebrikler!", deneme, "denemede buldun!")
            return                        # oyunu bitir
        elif tahmin < gizli_sayi:
            print("Daha BÜYÜK bir sayı dene.")
        else:
            print("Daha KÜÇÜK bir sayı dene.")

    print("Hakların bitti. Tuttuğum sayı:", gizli_sayi)

oyun()

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: 25, 40, 35, 37)

Not: Program her çalıştığında farklı bir sayı tutar. Bu örnekte bilgisayarın tuttuğu sayı 37’dir; sizin çıktınız farklı olacaktır.

1 ile 50 arasında bir sayı tuttum. Bulabilir misin?
Toplam 6 tahmin hakkın var.
1. tahminin: 25
Daha BÜYÜK bir sayı dene.
2. tahminin: 40
Daha KÜÇÜK bir sayı dene.
3. tahminin: 35
Daha BÜYÜK bir sayı dene.
4. tahminin: 37
Tebrikler! 4 denemede buldun!

Doğru tahminde return kullandığımız için fonksiyon hemen sona erdi ve “Hakların bitti” satırına hiç ulaşılmadı. Peki en akıllı tahmin yöntemi nedir? Her seferinde kalan aralığın tam ortasını söylerseniz 6 hak her zaman yeterli olur!

Mini Proje 2: Not Ortalaması Hesaplayıcı

Kullanıcı kaç dersin notunu gireceğini söyleyecek, sonra her dersin adını ve notunu yazacak. Program ortalamayı hesaplayıp dereceyi gösterecek.

Kullandığımız kavramlar: return ile değer döndüren fonksiyon, boş liste ve append(), range() ile döngü, float() dönüştürme, sum(), len() ve round().

# Mini Proje 2: Not Ortalaması Hesaplayıcı
def derece_bul(ortalama):
    if ortalama >= 85:
        return "Pekiyi"
    elif ortalama >= 70:
        return "İyi"
    elif ortalama >= 60:
        return "Orta"
    elif ortalama >= 50:
        return "Geçer"
    else:
        return "Geçmez"

ders_sayisi = int(input("Kaç dersin notunu gireceksin? "))
notlar = []

for i in range(ders_sayisi):
    ders = input("Ders adı: ")
    puan = float(input(ders + " notu: "))
    notlar.append(puan)

ortalama = sum(notlar) / len(notlar)
print("-----------------------")
print("Ortalaman:", round(ortalama, 2))
print("Derecen:", derece_bul(ortalama))

if ortalama >= 50:
    print("Tebrikler, ortalaman geçer düzeyde!")
else:
    print("Biraz daha çalışmalısın, başarabilirsin!")

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: 3, Matematik, 80, Türkçe, 92, Bilişim, 75)

Kaç dersin notunu gireceksin? 3
Ders adı: Matematik
Matematik notu: 80
Ders adı: Türkçe
Türkçe notu: 92
Ders adı: Bilişim
Bilişim notu: 75
-----------------------
Ortalaman: 82.33
Derecen: İyi
Tebrikler, ortalaman geçer düzeyde!

round(ortalama, 2) ifadesi, ortalamayı virgülden sonra iki basamağa yuvarlar. Böylece 82.333333… yerine daha okunaklı olan 82.33 değerini görürüz.

Mini Proje 3: Yapılacaklar Listesi

Ödevlerimizi ve görevlerimizi takip etmek için küçük bir uygulama yazalım. Kullanıcı bir menüden seçim yaparak görev ekleyecek, silecek ve listeyi görecek. Program, kullanıcı “4” seçene kadar çalışmaya devam edecek.

Kullandığımız kavramlar: while True ile menü döngüsü, break, liste işlemleri, fonksiyon, mantıksal operatör and.

# Mini Proje 3: Yapılacaklar Listesi
yapilacaklar = []

def listeyi_goster():
    if len(yapilacaklar) == 0:
        print("Listen boş.")
    else:
        print("--- Yapılacaklar ---")
        sira = 1
        for gorev in yapilacaklar:
            print(str(sira) + ". " + gorev)
            sira = sira + 1

while True:
    print()
    print("1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış")
    secim = input("Seçimin: ")

    if secim == "1":
        gorev = input("Yeni görev: ")
        yapilacaklar.append(gorev)
        print("Görev eklendi.")
    elif secim == "2":
        listeyi_goster()
        numara = int(input("Silinecek görev numarası: "))
        if numara >= 1 and numara <= len(yapilacaklar):
            silinen = yapilacaklar[numara - 1]
            yapilacaklar.remove(silinen)
            print(silinen, "silindi.")
        else:
            print("Böyle bir görev yok.")
    elif secim == "3":
        listeyi_goster()
    elif secim == "4":
        print("Görüşmek üzere!")
        break
    else:
        print("Lütfen 1 ile 4 arasında bir seçim yap.")

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: 1, Matematik ödevini bitir, 1, 30 dakika kitap oku, 3, 2, 1, 3, 4)


1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 1
Yeni görev: Matematik ödevini bitir
Görev eklendi.

1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 1
Yeni görev: 30 dakika kitap oku
Görev eklendi.

1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 3
--- Yapılacaklar ---
1. Matematik ödevini bitir
2. 30 dakika kitap oku

1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 2
--- Yapılacaklar ---
1. Matematik ödevini bitir
2. 30 dakika kitap oku
Silinecek görev numarası: 1
Matematik ödevini bitir silindi.

1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 3
--- Yapılacaklar ---
1. 30 dakika kitap oku

1) Görev ekle  2) Görev sil  3) Listeyi göster  4) Çıkış
Seçimin: 4
Görüşmek üzere!

while True normalde hiç bitmeyen bir döngüdür; döngüden çıkmanın tek yolu kullanıcı “4” seçtiğinde çalışan break komutudur. Menü seçimini sayıya çevirmeden metin olarak karşılaştırdığımıza (secim == "1") dikkat edin. Böylece kullanıcı yanlışlıkla harf yazsa bile program çökmez, “Lütfen 1 ile 4 arasında bir seçim yap.” uyarısını verir.

⚠️ Önemli Not

Programlarınızı yalnızca “doğru” girdilerle değil, kullanıcının yapabileceği hatalarla da test edin. int(input(...)) satırına kullanıcı on ya da 5.5 gibi tam sayı olmayan bir şey yazarsa program ValueError hatası verip durur. Not hesaplayıcıda ondalıklı notları 80,5 değil 80.5 biçiminde girmek gerekir. Ayrıca not hesaplayıcıda ders sayısı olarak 0 girilirse liste boş kalır ve len(notlar) sıfır olduğu için ZeroDivisionError (sıfıra bölme) hatası oluşur. Bu durumları if ile önceden kontrol etmek, programınızı daha sağlam yapar.

Sıra Sizde

  1. Kolay: Sayı tahmin oyununda aralığı 1–100, hakkı 7 yapın. Oyuncu kazandığında kalan hak sayısını da ekrana yazdırın.
  2. Orta: Not hesaplayıcıda girilen not 0’dan küçük ya da 100’den büyükse “Geçersiz not!” uyarısı verip aynı dersin notunu yeniden isteyin (ipucu: while). Sonunda en yüksek ve en düşük notu da gösterin.
  3. Zor: Yapılacaklar listesine “5) Görevi tamamlandı olarak işaretle” seçeneği ekleyin. Tamamlanan görevin başına [✓] işareti koyun. Ayrıca oyun ve hesaplayıcı projelerini, kullanıcının baştan başlamak isteyip istemediğini soran bir döngüyle tekrar oynanabilir hâle getirin.

Kendini Dene

  1. random.randint(1, 6) hangi sayıları üretebilir?
  2. Yapılacaklar listesi projesinde while True döngüsü nasıl sona eriyor?
  3. Not hesaplayıcıda ders sayısı olarak 0 girilirse hangi hata oluşur ve neden?

Cevaplar

  1. 1, 2, 3, 4, 5 ve 6 sayılarından birini; tıpkı bir zar gibi. İki uç değer de dahildir.
  2. Kullanıcı “4” seçtiğinde çalışan break komutuyla.
  3. ZeroDivisionError. Liste boş kaldığı için len(notlar) 0 olur ve sıfıra bölme yapılamaz.