Python'da Sık Yapılan Hatalar ve Kodunuzu Bir Üst Seviyeye Taşıma: Girdi Doğrulama, Hata Yönetimi ve Okunabilirlik
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
| Hata | Neden olur? | Çözüm |
|---|---|---|
| '5' ile 5 karışıklığı | input() her zaman metin döndürür | Hesaptan önce int() veya float() ile çevirin |
| = ile == karışıklığı | = değer atar, == karşılaştırır | Koşulda her zaman == kullanın |
| Float yuvarlama farkı | Ondalıklı sayılar bilgisayarda yaklaşık tutulur; 0.1 + 0.2 tam 0.3 çıkmayabilir | round() kullanın veya eşitlik yerine yakınlık kontrol edin |
| Döngüde listeyi değiştirmek | Eleman silinince sıralama kayar, bazı elemanlar atlanır | Yeni bir liste oluşturun veya kopya üzerinde dolaşın |
| Sonsuz while | Koşulu bitirecek adım yok | Sayacı artırın veya break koşulu ekleyin |
| Liste kopyalama tuzağı | b = a yeni liste değil, aynı listeye ikinci isim verir | b = a.copy() veya b = a[:] |
| print ile return karışıklığı | print ekrana yazar, return değeri geri verir | Sonucu başka yerde kullanacaksanız return |
| Gereksiz global değişken | Fonksiyon dışarıdaki değere gizlice bağımlı olur | Değ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.