ÜNİTE:
1.3. PROGRAMLAMA
KAZANIMLAR:
1.3.1.6. Metin tabanlı araçlarda oluşturulan bir programı test eder.
1.3.1.7. Metin tabanlı araçlarda oluşturulan programın hatalarını düzeltir.
PYTHON - Hata Yakalama ve Yönetimi
1. Temel try-except Yapısı
try bloğunda hata çıkması muhtemel kodu yazarız; except bloğunda ise bu hata ortaya çıkarsa yapılacak işlemleri tanımlarız.
Bu kodda, kullanıcı geçersiz bir sayı girdiğinde ValueError hatası yakalanır ve kullanıcıya hata mesajı gösterilir.
2. Birden Fazla except Bloğu
Belirli hataları ayırarak farklı işlemler yapmak için birden fazla except bloğu kullanılabilir.
Bu örnekte, hem ValueError hem de ZeroDivisionError için ayrı mesajlar gösterilir.
3. else ve finally Kullanımı
else bloğu, try bloğunda hata oluşmazsa çalışır.
finally bloğu ise her durumda, hata olsa da olmasa da çalışır. Kaynakları kapatmak veya temizleme işlemleri yapmak için idealdir.
Bu örnek, dosya başarıyla açılamazsa FileNotFoundError yakalar. Ancak finally bloğu her durumda çalışır, bu yüzden dosya.close() ile dosya kapatılır.
Öğrencilerin pratik yapmaları için farklı hataları tetikleyen örnekler deneyebilirsiniz.
Hata Yakalama ve Yönetimi Özet Video:
Hata Yakalama ve Yönetimi Alıştırmaları:
Temel try-except Yapısı Alıştırması
1. Sayı Girdisi Kontrolü Alıştırması
Kullanıcıdan bir sayı girmesini isteyin ve girilen değerin bir tam sayı olup olmadığını kontrol edin. Hata oluşursa uygun bir mesaj gösterin.
Alıştırma: Programı, kullanıcı float türünde bir sayı girdiğinde de çalışacak şekilde güncelleyin. Yani, int veya float tiplerini kabul eden bir çözüm düşünün.
Temel try-except Yapısı
2. Bölme İşlemi Kontrolü Alıştırması
Kullanıcıdan iki sayı alarak birinci sayıyı ikinciye bölmeye çalışın. Sıfıra bölme durumunda uyarı mesajı verin.
Alıştırma: Programı, kullanıcı int yerine geçersiz bir girdi girdiğinde de hata verecek şekilde genişletin.
Temel try-except Yapısı
3. Dosya Okuma Kontrolü Alıştırması
Bir dosyadan veri okumaya çalışın. Dosya mevcut değilse kullanıcıya bir hata mesajı gösterin.
Alıştırma: Kullanıcıdan dosya adını isteyin ve eğer dosya yoksa farklı bir dosya adıyla tekrar denemesini sağlayın.
Hata Yakalama ve Yönetimi Alıştırmaları:
Birden Fazla except Bloğu Alıştırması
1) Bölme ve Veri Türü Hataları Yapısı Alıştırması
Kullanıcıdan iki sayı isteyin, birinci sayıyı ikinciye bölün ve oluşabilecek farklı hataları yönetin.
Alıştırma: Kullanıcıdan bir sayı daha alın ve her iki hatanın yanında NameError gibi farklı bir hata türünü tetiklemeye çalışın (örneğin, tanımsız bir değişken kullanarak).
Birden Fazla except Bloğu Alıştırması
2. Dosya İşlemleri: Var Olmayan Dosya ve Dosya Yazma İzni Alıştırması
Bir dosyadan veri okumaya ve dosyaya veri yazmaya çalışın. Dosya mevcut değilse veya dosyaya yazma izni yoksa farklı hata mesajları verin.
Alıştırma: Dosyanın adını kullanıcıdan alın ve hem okuma hem yazma işlemlerini kullanarak bu hataları deneyimleyin.
Birden Fazla except Bloğu Alıştırması
3. Liste Hataları Alıştırması
Öğrencilerden bir listedeki elemanlara indeks kullanarak erişmelerini isteyin. Geçersiz bir indeks veya hatalı veri tipi girildiğinde uygun hatayı yakalayın.
Alıştırma: Öğrencilerden listeyi boş bırakmalarını isteyin ve bir IndexError hatası oluşturarak hatayı nasıl yakalayacaklarını görmelerini sağlayın.
Hata Yakalama ve Yönetimi Alıştırmaları:
else ve finally Kullanımı Alıştırması
1. Dosya Okuma ve Kapama Alıştırması
Kullanıcıdan dosya adını isteyin ve bu dosyayı okumaya çalışın. Dosya varsa içeriğini yazdırın, yoksa hata mesajı verin. Her durumda dosya kapatma işlemini finally bloğunda yapın.
Alıştırma: Dosyanın adını yanlış giren kullanıcıdan tekrar dosya adı isteyip tekrar deneyerek dosyayı açmayı sağlayın.
else ve finally Kullanımı Alıştırması
2. Sayı Bölme İşlemi Alıştırması
Kullanıcıdan iki sayı isteyin ve birinci sayıyı ikinciye bölün. Hata olmazsa sonucu else bloğunda yazdırın ve işlemin bitiminde finally bloğunda bir mesaj gösterin.
Alıştırma: Öğrencilerden finally bloğunda sonuç başarılı olsa da olmasa da kullanıcıya "İşleminiz tamamlandı." gibi bir geri bildirim mesajı vermelerini isteyin.
else ve finally Kullanımı Alıştırması
3. Kullanıcı Girişi Doğrulama Alıştırması
Kullanıcıdan bir sayı listesi girmesini isteyin ve her bir değerin bir sayı olup olmadığını kontrol edin. Tüm girişler başarılıysa else bloğunda sayıları toplayın ve sonucu gösterin. İşlemden sonra finally bloğunda “Program sona erdi” mesajı verin.
Alıştırma: Kullanıcının girdiği sayılar hatalıysa, finally bloğunda hatayı tekrar denemesi için bir yönlendirme yaparak döngüye sokmayı deneyin.
Hata Yakalama ve Yönetimi Görevleri:
Temel try-except Yapısı Alıştırması
1. Sayı Girdisi Kontrolü Alıştırması Görevi
Kullanıcıdan bir sayı girmesini isteyin ve girilen değerin bir tam sayı olup olmadığını kontrol edin. Hata oluşursa uygun bir mesaj gösterin.
Alıştırma: Programı, kullanıcı float türünde bir sayı girdiğinde de çalışacak şekilde güncelleyin. Yani, int veya float tiplerini kabul eden bir çözüm düşünün.
Temel try-except Yapısı Alıştırması
2. Bölme İşlemi Kontrolü Alıştırması
Kullanıcıdan iki sayı alarak birinci sayıyı ikinciye bölmeye çalışın. Sıfıra bölme durumunda uyarı mesajı verin.
Alıştırma: Programı, kullanıcı int yerine geçersiz bir girdi girdiğinde de hata verecek şekilde genişletin.
Temel try-except Yapısı Alıştırması
3. Dosya Okuma Kontrolü Alıştırması
Bir dosyadan veri okumaya çalışın. Dosya mevcut değilse kullanıcıya bir hata mesajı gösterin.
Alıştırma: Kullanıcıdan dosya adını isteyin ve eğer dosya yoksa farklı bir dosya adıyla tekrar denemesini sağlayın.
Hata Yakalama ve Yönetimi Görevleri:
Birden Fazla except Bloğu Görevi
1) Bölme ve Veri Türü Hataları Yapısı Görevi
Kullanıcıdan iki sayı isteyin, birinci sayıyı ikinciye bölün ve oluşabilecek farklı hataları yönetin.
Alıştırma: Kullanıcıdan bir sayı daha alın ve her iki hatanın yanında NameError gibi farklı bir hata türünü tetiklemeye çalışın (örneğin, tanımsız bir değişken kullanarak).
Birden Fazla except Bloğu Görevi
2. Dosya İşlemleri: Var Olmayan Dosya ve Dosya Yazma İzni Görevi
Bir dosyadan veri okumaya ve dosyaya veri yazmaya çalışın. Dosya mevcut değilse veya dosyaya yazma izni yoksa farklı hata mesajları verin.
Alıştırma: Dosyanın adını kullanıcıdan alın ve hem okuma hem yazma işlemlerini kullanarak bu hataları deneyimleyin.
Birden Fazla except Bloğu Görevi
3. Liste Hataları Görevi
Öğrencilerden bir listedeki elemanlara indeks kullanarak erişmelerini isteyin. Geçersiz bir indeks veya hatalı veri tipi girildiğinde uygun hatayı yakalayın.
Alıştırma: Öğrencilerden listeyi boş bırakmalarını isteyin ve bir IndexError hatası oluşturarak hatayı nasıl yakalayacaklarını görmelerini sağlayın.
Hata Yakalama ve Yönetimi Görevleri:
else ve finally Kullanımı Görevi
1. Dosya Okuma ve Kapama Görevi
Kullanıcıdan dosya adını isteyin ve bu dosyayı okumaya çalışın. Dosya varsa içeriğini yazdırın, yoksa hata mesajı verin. Her durumda dosya kapatma işlemini finally bloğunda yapın.
Alıştırma: Dosyanın adını yanlış giren kullanıcıdan tekrar dosya adı isteyip tekrar deneyerek dosyayı açmayı sağlayın.
else ve finally Kullanımı Görevi
2. Sayı Bölme İşlemi Görevi
Kullanıcıdan iki sayı isteyin ve birinci sayıyı ikinciye bölün. Hata olmazsa sonucu else bloğunda yazdırın ve işlemin bitiminde finally bloğunda bir mesaj gösterin.
Alıştırma: Öğrencilerden finally bloğunda sonuç başarılı olsa da olmasa da kullanıcıya "İşleminiz tamamlandı." gibi bir geri bildirim mesajı vermelerini isteyin.
else ve finally Kullanımı Görevi
3. Kullanıcı Girişi Doğrulama Görevi
Kullanıcıdan bir sayı listesi girmesini isteyin ve her bir değerin bir sayı olup olmadığını kontrol edin. Tüm girişler başarılıysa else bloğunda sayıları toplayın ve sonucu gösterin. İşlemden sonra finally bloğunda “Program sona erdi” mesajı verin.
Alıştırma: Kullanıcının girdiği sayılar hatalıysa, finally bloğunda hatayı tekrar denemesi için bir yönlendirme yaparak döngüye sokmayı deneyin.
Ödev:
Kullanıcıdan bir sayı listesi girmesini isteyin ve her bir değerin bir sayı olup olmadığını kontrol edin. Tüm girişler başarılıysa else bloğunda sayıları toplayın ve sonucu gösterin. İşlemden sonra finally bloğunda “Program sona erdi” mesajı verin ve oluşturduğunuz kodların fotoğrafını aşağıdaki mail adresine gönderiniz.
Maile isim soy isim, sınıf ve okul numarası bilgilerinizi yazmayı unutmayınız.
egitimdebil@gmail.com
Önerilen program: IDE - PYTHON (Bilgisayarla çalışmayanlar, kodları deftere yazıp fotoğrafını gönderebilirler.)
Bilişim Teknolojileri Öğretmeni: İshak BEZCİ
Son gün ve saat : Pazar gece 12.00
Comments