Python'da Sık Yapılan Hatalar ve Kodunuzu Bir Üst Seviyeye Taşıma: Girdi Doğrulama, Hata Yönetimi ve Okunabilirlik

Ders 11/11 · yaklaşık 3 dk okuma

Python'da Sık Yapılan Hatalar ve Kodunuzu Bir Üst Seviyeye Taşıma

Temel bilgileri öğrendiniz. Şimdi herkesin yolda mutlaka düştüğü çukurları ve kodunuzu daha sağlam, daha okunur yapacak alışkanlıkları ele alıyoruz. Amaç: programınız hatalı girdide çökmesin, başkası kodunuzu yorumsuz anlasın.

1. Sık yapılan hatalar

HataNeden olur?Çözüm
'5' ile 5 karışıklığıinput() her zaman metin döndürürHesaptan önce int() veya float() ile çevirin
= ile == karışıklığı= değer atar, == karşılaştırırKoşulda her zaman == kullanın
Float yuvarlama farkıOndalıklı sayılar bilgisayarda yaklaşık tutulur; 0.1 + 0.2 tam 0.3 çıkmayabilirround() kullanın veya eşitlik yerine yakınlık kontrol edin
Döngüde listeyi değiştirmekEleman silinince sıralama kayar, bazı elemanlar atlanırYeni bir liste oluşturun veya kopya üzerinde dolaşın
Sonsuz whileKoşulu bitirecek adım yokSayacı artırın veya break koşulu ekleyin
Liste kopyalama tuzağıb = a yeni liste değil, aynı listeye ikinci isim verirb = a.copy() veya b = a[:]
print ile return karışıklığıprint ekrana yazar, return değeri geri verirSonucu başka yerde kullanacaksanız return
Gereksiz global değişkenFonksiyon dışarıdaki değere gizlice bağımlı olurDeğeri parametre olarak alın, sonucu return edin

Küçük örnek: input ve sayı

  • Yanlış: yaş = input("Yaşınız: ") ardından yaş + 1 yazmak hata verir, çünkü yaş metindir.
  • Doğru: yaş = int(input("Yaşınız: ")) ardından yaş + 1.

Küçük örnek: liste kopyası

  • a = [1, 2, 3]; b = a; b.append(4) yazarsanız a da değişir.
  • b = a.copy() yazarsanız a bozulmaz.

2. Hatalı girdiyi yakalama: try/except

Kullanıcı sayı beklerken "abc" yazabilir. Program çökmesin, anlaşılır bir mesaj versin.

Adım adım şablon

  • Adım 1: Sonsuz bir while True döngüsü açın.
  • Adım 2: try içinde girdiyi alıp sayıya çevirin.
  • Adım 3: Değer mantıklı mı kontrol edin (örneğin negatif olamaz).
  • Adım 4: Doğruysa break ile çıkın.
  • Adım 5: except ValueError içinde kullanıcıya ne yapması gerektiğini söyleyin: "Lütfen rakamla bir sayı girin, örneğin 25."

İyi hata mesajı üç şeyi yapar: neyin yanlış gittiğini söyler, doğru örneği gösterir, kullanıcıyı suçlamaz.

3. Okunabilirlik ve tekrar eden kod

  • Aynı kodu iki yerde yazdıysanız fonksiyona taşıyın. Girdi doğrulama bunun en iyi adayıdır: sayi_al(mesaj) adında tek bir fonksiyon, programın her yerinde kullanılır.
  • Anlamlı isimler: x yerine urun_fiyati.
  • PEP 8 alışkanlıkları: değişken ve fonksiyon adları küçük harf ve alt çizgiyle, girinti 4 boşluk, operatörlerin çevresinde boşluk.
  • Yorum: kodun ne yaptığını değil, neden öyle yaptığını açıklayın.

4. Bir sonraki konulara küçük bakış

  • Sözlük (dict): değerleri isimle tutar, örneğin {"ad": "Ayşe", "yas": 30}.
  • Liste üreteci: [x * 2 for x in liste] ile kısa liste oluşturma.

Şimdilik tanımanız yeterli; bunlar sıradaki öğrenme adımınız.

5. Kendi kendinizi değerlendirme listesi

  • Programım hatalı girdide çöküyor mu, yoksa anlaşılır mesaj veriyor mu?
  • Başkası kodumu yorumsuz anlayabiliyor mu?
  • Aynı kodu iki yerde yazdım mı?
  • Uç değerlerle test ettim mi: sıfır, negatif sayı, boş girdi, çok büyük sayı, harf?
  • Fonksiyonlarım global değişkene bağlı mı?

6. Sonraki öğrenme yolu

  • Sözlükler ve liste üreteçleri
  • Dosyadan okuma ve dosyaya yazma
  • Modüller ve kütüphaneler
  • Küçük bir proje: örneğin kendi harcama takip programınız

Öneri: Önce sekiz derste yazdığınız programı bu listeyle gözden geçirin, sonra yeni bir küçük proje seçin.

Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol

İpucu: ← ve → tuşlarıyla dersler arasında geçebilirsin.