Python Programlama Dili

Benzer belgeler
Python Programlama Dili

Python Programlama Dili

PYTHON PROGRAMLAMA DİLİ

Bolum 9. Konu Başlıkları

Print Komutu ile Değişkenleri Yazdırmak

C#(Sharp) Programlama Dili

Akış Kontrol Mekanizmaları

Yukarıda verdiğimiz değişkenin değerinin bir karakter dizisi değil, aksine bir sayı olduğunu görüyoruz. Şimdi bu değişkenin değerini sorgulayalım:

FORUM ÜYELĐĞĐ. Kayıt Doğrulaması bölümünde bulunan harf ve rakamlar (büyük/küçük harfe dikkat) Onay Kodu sahasına girilir.

Burada a değişkeninin türü integer olarak verildi. Peki biz bu ifadeyi tırnak içerisinde yazarsak ne olur?

BÖLÜM 3 OPERAT A ÖRLER

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

PROGRAMLAMA DİLLERİ I

BİLGİSAYAR BİLİMİ DERSİ (KUR 1) PYTHON PROGRAMLAMA DİLİ ÇALIŞMA KÂĞIDI - 1

Bigisayar Programlama

C dilinde if-else yapısı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Python Programlama Dili

HATA YAKALAMAK VE AYIKLAMAK GİRİŞ HATA AYIKLAMA. Hata Yakalamak ve Ayıklamak

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

MTK467 Nesneye Yönelik Programlama. Hafta 4 - Döngüler Zümra Kavafoğlu

Şimdi başka bir problem üzerinde çalışalım.

C Programlama Dilininin Basit Yapıları

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Listeler. Liste Tanımlamak

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

HSancak Nesne Tabanlı Programlama I Ders Notları

Dr. Fatih AY Tel: fatihay@fatihay.net

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

İZMİR HALK SAĞLIĞI MÜDÜRLÜĞÜ

Bilgisayarda Programlama. Temel Kavramlar

Verimlilik İçin ETKİN BİLGİ YÖNETİMİ. EXCEL de Formül Hataları Sizi Yıldırmasın!

Bilgisayarın Yapıtaşları

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Merhaba değerli Dostlar;

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

Okuyarak kelime öğrenmenin Yol Haritası

Yukarıdaki kod aksi belirtilmediği sürece sürekli çalışır. Yani ekrana sürekli Bilgisayar çıldırdı! yazısı gelir. Ancak;

Python Programlama Dili

Genel Programlama II

YZM 2105 Nesneye Yönelik Programlama

- İlk dikkat edilecek konu; 3B BIM modelinin her katının ayrı bir çizim dosyasında ve DWG nin de ayrı bir çizim dosyasında olmalıdır.

Değişken nedir? Tanımı nasıl yapılır?

Kabuk Programlama (Bash)

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Toplu Kayıt Kullanıcı Kitapçığı

Android Ders Notları

TÜRKİYE FUTBOL FEDERASYONU HAKEM İŞLERİ MÜDÜRLÜĞÜ TFF HAKEM İŞLERİ FYS KULLANIM KLAVUZU

Görsel Programlama - I Uygulamalı Ödevi

2 PYTHON A GIRIŞ 13 PyCharm İle Python Projesi Oluşturma 15 Projenin Çalıştırılması 18 İlk Python Programımız 19 Açıklama Satırları 21

BLM 111 ALGORİTMA VE PROGRAMLAMA I

B2B Sistemi Kullanımı Hakkında Bilgiler

C PROGRAMLAMA D İ L İ

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

YAZILIM VE PROGRAMLAMA DİLİ. Donanım ve yazılım nedir? Yazılım nedir? Yazılım çeşitleri nelerdir? Programlama dili nedir

ALGORİTMA VE PROGRAMLAMA II

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

PROGRAMLAMA DİLİ (2009)

LABORATUVAR ÇALIŞMASI 1 - Python a Giriş

Temel Giriş/Çıkış Fonksiyonları

ATATÜRK ÜNİVERSİTESİ BİLGISAYAR MÜHENDİSLİĞİ BÖLÜMÜ BM 104- NESNEYE YÖNELİK PROGRAMLAMA DERSİ BAHAR DÖNEMİ ÖDEV-3

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

İstisnalar (Exceptions) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 8 1

Algoritma ve Akış Diyagramları

Python Programlama Dili

E-Posta Kişisel İletişim Yönetimi

1.1. Yazılım Geliştirme Süreci

E- İHALE TEKLİF SÜRECİ

Microsoft Excel Formül Yazma Kuralları: 1. Formül yazmak için Formül Araç Çubuğu kullanılır, ya da hücre içerisine çift tıklanarak formül yazılır.

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

Cost Modülü Ay sonu İşlemleri

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bilin tarafından verilen Kullanıcı Adı ve Şifresini bu alanlara giriniz. Bilin Yazılım ve Bilişim Danışmanlığı Ltd. Şti.

PYTHON PROGRAMLAMA DİLİ

Word Otomatik Düzelt

TOP 20. Bu kısım en çok dinlenen eserlerin günlük veya haftalık olarak değiştirilmesine olanak verir.

ADIM ADIM WAVES CÜZDANI AÇMAK

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

Sunum İçeriği. Programlamaya Giriş

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

TAI STAJYER MÜHENDİS BAŞVURU SİSTEMİ KULLANICI KILAVUZU

4. Bölüm Programlamaya Giriş

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

ÖĞRENME FAALİYETİ 3 ÖĞRENME FAALİYETİ 3

PROGRAMLAMAYA GİRİŞ DERS 2

Diziler İndisli Değişkenler

Dr. Fatih AY Tel: fatihay@fatihay.net

GİDEN EVRAK HAZIRLAMA ONAYA SUNMA VE GÖNDERME

Genel Programlama I

Testimizin ilk sayfası: bu kısımda kullanıcıdan adını girmesini ve teste başlamasını istiyoruz.

B2B KULLANIM TALİMATI

HRWebGATE Manual 1 Last update: 2015/06/21 Esource HR

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

C Dersleri Bölüm 3 : Program akışı

27. Bilim Olimpiyatları Birinci Aşama Sınavı (Öğrenci Kılavuzu-2019)

Transkript:

Python Programlama Dili 8. Hata Yakalama Hatalar programcılık deneyiminizin bir parçasıdır. Ancak bizim burada kastettiğimiz, programınızı çalıştıran kullanıcıların sebep olduğu ve programınızın çökmesine yol açan kusurlar. Dilerseniz şöyle bir örnek verelim: print "Girdiğiniz sayı", sayi print "Teşekkürler. Hoşçakalın!" Bu program görünüşte herhangi bir kusur taşımıyor. Eğer kullanıcımız burada bizim istediğimiz gibi bir sayı girerse bu programda hiçbir sorun çıkmaz. Peki ama ya kullanıcı sayı yerine harf girerse ne olacak? Böyle bir durumda programımız şöyle bir hata mesajı verir: Gördüğünüz gibi, ortaya çıkan hata nedeniyle programın son satırı ekrana basılamadı. Yani programımız hata yüzünden çöktüğü için işlem yarıda kaldı. Burada böyle bir hata almamızın nedeni, kullanıcıdan sayı beklediğimiz halde kullanıcının harf girmesidir. Biz yukarıdaki programda int() fonksiyonunu kullanarak kullanıcıdan aldığımız karakter dizilerini sayıya dönüştürmeye çalışıyoruz. Yukarıdaki kodun, çok uzun bir programın parçası olduğunu düşünürsek, kullanıcının yanlış veri girişi programın çökmesine veya durmasına yol açabilir. Bu tür durumlarda

Python gerekli hata mesajını ekrana yazdırarak kullanıcıyı uyaracaktır, ama tabii ki Python un sunduğu karmaşık hata mesajlarını kullanıcının anlamasını bekleyemeyiz. Böylesi durumlar için Python da try... except ifadeleri kullanılır. 8.1. try... except... Giriş bölümünde verdiğimiz örneği hatırlıyorsunuz. Şimdi hata mesajına tekrar bakalım: Burada önemli kısım ValueError dur. Hatayı yakalarken bu ifade işimize yarayacak. Python da hata yakalama işlemleri iki adımdan oluşur. Önce ne tür bir hata ortaya çıkabileceği tespit edilir. Daha sonra bu hata meydana geldiğinde ne yapılacağına karar verilir. Buna göre, kullanıcı sayı yerine harf girerse ValueError denen bir hata meydana geliyor. Şimdi de böyle bir hata ortaya çıkarsa ne yapacağımıza karar vermemiz gerekiyor. Mesela öyle bir durumda kullanıcıya, Lütfen harf değil, sayı girin! gibi bir uyarı mesajı gösterebiliriz. Dilerseniz bu dediklerimizi somutlaştıralım: #!/usr/bin/env python # -*- coding: utf-8 -*- print "Girdiğiniz sayı", sayi except ValueError: print "Lütfen harf değil, sayı girin!" print "Teşekkürler. Hoşçakalın!" Burada, hata vereceğini bildiğimiz kodları bir try... bloğu içine aldık. Ardından bir except bloğu açarak, ne tür bir hata beklediğimizi belirttik. Buna göre, beklediğimiz hata türü ValueError. Son olarak da hata durumunda kullanıcıya göstereceğimiz mesajı yazdık. Artık kullanıcılarımız sayı yerine harfe basarsa programımız çökmeyecek, aksine çalışmaya devam edecektir. Dikkat ederseniz print Teşekkürler. Hoşçakalın! satırı her koşulda ekrana basılıyor. Yani kullanıcı doğru olarak sayı da girse, yanlışlıkla sayı

yerine harf de girse programınız yapması gereken işlemleri tamamlayıp yoluna devam edebiliyor. Konuyu daha iyi anlayabilmek için bir örnek daha verelim. Şimdi şöyle bir program yazdığımızı düşünün: Eğer burada kullanıcı ikinci sayıya 0 cevabı verirse programımız şöyle bir hata mesajı verip çökecektir. Çünkü bir sayı 0 a bölünemez: File "deneme.py", line 7, in <module> ZeroDivisionError: float division Böyle bir durumda hata alacağımızı bildiğimize göre ilk adım olarak ne tür bir hata mesajı alabileceğimizi tespit ediyoruz. Buna göre alacağımız hatanın türü ZeroDivisionError. Şimdi de böyle bir hata durumunda ne yapacağımıza karar vermemiz gerekiyor. İsterseniz yine kullanıcıya bir uyarı mesajı gösterelim. Kodlarımızı yazıyoruz: except ZeroDivisionError: print "Lütfen sayıyı 0'a bölmeye çalışmayın!" Burada önemli bir problem dikkatinizi çekmiş olmalı. Biz yukarıdaki kodlarda, kullanıcının bir sayıyı 0 a bölmesi ihtimaline karşı ZeroDivisionError hatasını yakaladık.

Ama ya kullanıcı sayı yerine harf girerse ne olacak? ZeroDivisionError ile birlikte ValueError u da yakalamamız gerekiyor... Eğer yukarıdaki kodları çalıştıran bir kullanıcı sayı yerine harf girerse şöyle bir hatayla karşılaşır: Buradan anladığımıza göre hata veren satır şu: ilk = int(raw_input("bölme işlemi için ilk sayıyı girin: ") Dolayısıyla bu satırı da try... bloğu içine almamız gerekiyor. Şu kodları dikkatlice inceleyin: except ZeroDivisionError: print "Lütfen sayıyı 0'a bölmeye çalışmayın!" except ValueError: print "Lütfen harf değil, sayı girin!" Gördüğünüz gibi hata vereceğini bildiğimiz kodların hepsini bir try... bloğu içine aldık. Ardından da verilecek hataları birer except bloğu içinde teker teker yakaladık. Eğer her iki hata için de aynı mesajı göstermek isterseniz şöyle bir şey yazabilirsiniz: except (ZeroDivisionError, ValueError): print "Girdiğiniz veri hatalı!"

Hata türlerini nasıl grupladığımıza dikkat edin. Hataları birbirinden virgülle ayırıp parantez içine alıyoruz... Böylece programımız her iki hata türü için de aynı uyarıyı gösterecektir. 8.2. pass Deyimi Bir hata ile karşılaşan programınızın hiçbir şey yapmadan yoluna devam etmesini isterseniz bu deyimi kullanabilirsiniz: except (ZeroDivisionError, ValueError): pass Böylece programınız ZeroDivisionError veya ValueError ile karşılaştığında sessizce yoluna devam edecek, böylece kullanıcımız programda ters giden bir şeyler olduğunu dahi anlamayacaktır. Eğer bir hatanın kullanıcıya gösterilmesinin gerekmediğini düşünüyorsanız yukarıdaki kodları kullanın, ama eğer verilen hata önemli bir hataysa ve kullanıcının bu durumdan haberdar olması gerektiğini düşünüyorsanız, bu hatayı pass ile geçiştirmek yerine, kullanıcıya hatayla ilgili makul ve anlaşılır bir mesaj göstermeyi düşünebilirsiniz.