Kaydol

Giriş Yap

Parolanızı mı unuttunuz

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Üzgünüz, gönderi ekleme izniniz yok.

Python’da Fonksiyonlar ve Hata Yakalama

Merhaba arkadaşlar, bügün ki konumuz fonksiyonlar ve hata yakalama.

    Belli bir kod bloğunu tekrar tekrar kullanmak ve genel kod satırı sayısını az tutmak istersek fonksiyonlar başvuracağımız yapı tiplerinden biridir. Print’in, input’un birer fonksiyon olduklarını söylemiştik. Peki bu fonksiyonlar nasıl yazıldılar veya kendi fonksiyonlarımızı nasıl yazacağız? İlk fonksiyonumuzu yazalım. Bu fonksiyon kendisine verilen parametreyi 3 ile çarpıp ekrana yazsın .

def uc_ile(x):
    print(x*3)

    Basit bir fonksiyon tanımlamış olduk. Yazımı def ile başlatıyoruz . Bilgisayara def sözcüğü ile fonksiyon yazacağımızı söylüyoruz . uc_ile yazısı fonksiyonumuzun ismi iken parantez içine yazdığımız x karakteri parametre olma görevini üstleniyor. Parametre sayısını istediğimiz kadar belirleyebiliriz. Yalnız her bir parametre arasına virgül koymak zorundayız.

Simdi fonksiyonumuzu çağıralım.

def uc_ile(x):
    print(x*3)

uc_ile(6)

    Fonksiyonlar ile if yapısını birleştirerek kontrol blokları oluşturabiliriz. Örnek verecek olursak,

def kontrol(x):
    if x%2 == 0:
        return 0
    else:
        return 1

    Yukarıda yazdığımız fonksiyon bloğunun yaptığı iş, kendisine parametre olarak verilen sayının çift olup olmadığını kontrol etmektir. Eğer çift ise return kelimesi ile 0 değerini döndürüyoruz. Eğer tek ise return kelimesi aracılığı ile 1 değerini döndürüyoruz. Bu fonksiyonun çağırma şekli biraz farklı;

y = kontrol(12)

yazarak kontrol fonksiyonuna 12 sayısını gönderiyoruz. 12 sayısı if bloklarından geçerken çift olduğu için return 0 komutu işleniyor. Bu da y‘nin değerini 0 yapıyor.

    Fonksiyonlar ile birden fazla sayının asal olup olmadığını çok rahat bir şekilde kontrol edebilirsiniz.

def asal_mı(x):
    for i in range(2, int(x/2)+1):
        if x%i==0:
        return 0
    return 1

for i in range(2,20):
    cevap = asal_mı(i)
    print(i, "-->", cevap)

    Yazdığımız kodu çalıştırdığımızda sayıların sağ tarafında kalan 1 ve 0’lar soldaki sayıların asal olup olmadığını belirtiyor. Eğer sayı asalsa 1 değilse 0 yazıyor.

Hata Yakalama

    Python’da en önemli konudur hata yakalama. Çünkü hesaba katmadığımız durumların, yazdığımız programı çökertmemesi için hata yakalamaya başvururuz. Genel hatlarıyla hata yakalama, kod içerisinde daha önce ön görülmemiş hataları veya eksiklikleri görmemize yardımcı olur. Kullanımı oldukça basit olmasına rağmen, son derece önemli bir yapıdır.

veri = input("sayı giriniz\n")
veri = int(veri)
print(veri)

     Örnek olarak üsteki kodu alırsak, kullanıcı eğer sayı yerine sayı dışında herhangi bir karakter girerse programımız hata verir ve çöker.

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>>
============= RESTART: C:\Users\metehan\Desktop\site\nanaanan.py =============
sayı giriniz
d
Traceback (most recent call last):
    File "C:\Users\metehan\Desktop\hata_yakalama.py", line 3, in <module>
        veri = int(veri)
ValueError: invalid literal for int() with base 10: 'd'
>>>

    Bu ve bunun gibi çökmeleri engellemek için hata yakalamaya başvururuz. Eğer kodumuzu şu şekilde güncellersek:

try:
    veri = input("sayı giriniz\n")
    veri = int(veri)
    print(veri)
except:
    print("karakter değil sayı giriniz")

programımız artık çökmeyecektir.

    try yazısı ile bilgisayardan, altında ki bloğu çalıştırmasını istiyoruz. Eğer kodu çalıştırırken herhangi bir hata ile karşılaşırsa except bloğu altında ki kodu işleyecektir. tryexcept yapısı ile karşılaşılan hatayı görebilirsiniz.

try:
    veri = input("sayı giriniz\n")
    veri = int(veri)
    print(veri)
except Exception as e:
    print("karakter değil sayı giriniz")
    print("karşılaşılan hata tipi: ", e)

    Kodda değişen tek kısım except satırı ve altında ki kod bloğudur.

    Eğer tek bir hata tipine karşı önlem almak isterseniz ki yazdığımız kodda karşılaşabileceğimiz tek hata ValueError‘dur, şu şekilde kodumuzu güncelleyebiliriz.

try:
    veri = input("sayı giriniz\n")
    veri = int(veri)
    print(veri)
except ValueError:
    print("karakter değil sayı giriniz")

     Bugün ki dersi burada noktalıyoruz. Diğer ders görüşmek üzere. Sevgiler, saygılar sunarım.

 

İlginizi Çekebilecek Diğer Yazılar

Python'da Yazıyı Sese, Sesi Yazıya Nasıl Dönüştürürüz?

    Merhaba arkadaşlar, bugün yazıları kendi yazdığımız programla nasıl sese dönüştürürüz ve bu işlemin ...

Python'da Mail Nasıl Atılır?

    Merhaba arkadaşlar bugün “Python ile mail nasıl atılır?” sorusunu cevaplayacağız. smtplib modülü sıradan ...

Python'da Bilgisayarlar Arası Veri Alışverişi

    Merhaba arkadaşlar bugün, “Python programlama dili ile veri alışverişi nasıl yapılır?” sorusunu cevaplayacağız. ...

Python'la Kendi Arama Motorunuzu Yapabilirsiniz

    Merhaba arkadaşlar, bugün kendi arama motorumuzu yazacağız. Bu sayede arama motorlarının çalışma mantığını ...

Python'da Sınıf Kullanımı

    Merhaba arkadaşlar, bugün ki konumuz sınıflar. Sınıflar değişkenlere özellik eklemek için kullanılır. Daha iyi ...

Python'da Döngüler

    Merhaba arkadaşlar,     Programlamada en çok kullandığımız yapılardan birisi de döngülerdir. Döngüler, ...

Python'da Liste Kullanımı ve Metotları

Merhaba arkadaşlar, Bugün ki konumuz listeler. Listeler son derece kullanışlı bir veri tipidir ve çoğu ...

Python'da İf-Elif-Else Yapısı

Merhaba arkadaşlar, geçen derste karakter dizisi metotlarından birkaçını görmüştük. Bu ders ise if-elif-else yapısını görerek ...

Python'da Karakter Dizisi Metotları

Merhaba arkadaşlar, Bugün işleyeceğimiz konu karakter dizileri ve karakter dizisi metotları. Karakter dizilerini ve metotlarını ...

Python, Bir Başka Dünya

Öncelikle merhaba, Ben Metehan. Programlama ile yaklaşık iki senedir ilgileniyorum ancak Python ile tanışmam 1.5 ...