1392

Python Dersleri: Baştan Sona Python Programlama Eğitimi

Python Fonksiyonlar

Pythonda fonksiyon nedir ve nasıl tanımlanır?



Python Fonsiyonlar

Yazdığımız bir python uygulamasındaki belli bir kod parçasını bir kaç yerde kullanma ihtiyacı duyduğumuzda fonksiyon oluşturmak işlerimizi kolaylaştırır. Böyle durumlarda sürekli kullanacak olduğumuz kod satırlarını fonksiyonlar içine alıp istediğimiz zaman çağırıp çalıştırabiliriz.

Örneğin basit bir matematiksel işlem yapacağız ve bir çok yerde bu matematiksel işlemi tekrarlayacağız bu durumda bir fonksiyon oluşturup defalarca kullanabiliriz.

Ayrıca işin daha güzel yani Python da hazır bir çok kütüphane var ve bu kütüphaneler içinde önceden oluşturulmuş bir sürü fonksiyon mevcut. Çoğu zaman fonksiyonun içeriğini yazmak yerine hazır olanını kullanabileceğiz. Örneğin gönderdiğimiz bir sayının karakökünü alan sqrt() fonksiyonu.

Peki gelin Fonksiyon oluşturmaya başlayalım.

Fonksiyon Tanımlama

Fonksiyon tanımlamak için def komutunu kullanıyoruz.

Örnek

def hello():
    print("Merhaba")

hello() isminde basit bir fonksiyon tanımladık ve artık fonksiyonumuz çalıştırılmayı bekliyor.

Fonksiyon Çağırma

Fonksiyonları tanımlıyoruz ancak çağrılmadıkça fonksiyon bloğu içerisindeki kodlar çalıştırılmaz. Fonksiyonu çağırmak için fonksiyonun ismi ile birlikte parantezleri kullanmalıyız.

Örnek

def hello():
    print("Merhaba")

hello() # Merhaba

Gördüğünüz gibi fonksiyon çağrıldığında ekrana Merhaba yazar. Fonksiyonu her çağırdığımızda kodlar tekrar çalıştırılacağından dolayı ekrana Merhaba yazmaya devam edecektir.

Örnek

hello() # Merhaba
hello() # Merhaba
hello() # Merhaba
hello() # Merhaba

Fonksiyona Parametre Gönderme

Fonksiyonlara dışarıdan bilgi gönderip fonksiyon içerisinde kullanabiliriz.

Örnek

def hello(name):
    print("Merhaba "+ name)

hello("Arda") # Merhaba Arda

Örnekte olduğu gibi dışarıdan name parametresini fonksiyona gönderip kullanabiliriz.

Fonksiyondan Geriye Bilgi Gönderme

Fonksiyon içerisinde print() ile bilgi yazdırmak yerine bilgiyi geriye de döndürebiliriz.

Örnek

def hello(name):
    return "Merhaba "+ name

print(hello("Arda")) # Merhaba Arda

Gördüğünüz gibi print ile bilgiyi fonksiyon içerisinde yazdırmak yerine "Merhaba Arda" bilgisini fonksiyondan geriye return komutu ile döndürdük ve sonrasında bilgiyi ekrana yazdırdık.

Örnek

def toplama(a,b):
    return a+b

sonuc = toplama(10,20)
print(sonuc) # 30

toplama fonksiyonu dışarıdan a ve b parametrelerini bekler ve gönderdiğimiz değerleri fonksiyon içerisinde toplar ve sonucu 30 olarak geriye döndürür, sonrasında fonksiyondan gelen değeri sonuc değişkenine alabiliriz.

Fonksiyondan Fonksiyon Çağırma

Bazen tanımladığımız bir fonksiyonu başka bir fonksiyon içerisinde kullanmak isteyebiliriz.

Örnek

def yasHesapla(dogumYili):
    return 2019 - dogumYili

ageCinar = yasHesapla(2017)
ageAda = yasHesapla(2010)
ageSena = yasHesapla(1999)

print(ageCinar, ageAda, ageSena)

Gördüğünüz gibi 3 kişi için yaş hesaplama işlemini tek bir yasHesapla fonksiyonu ile yapabildik. Eğer ki hesaplanan yaş bilgisine göre emekliğe kalan süre hesabını da hesaplamak istersek bu durumda başka bir fonksiyon kullanabiliriz.

def EmekliligeKacYilKaldi(dogumYili, isim):   
    yas = yasHesapla(dogumYili)
    emeklilik = 65 - yas
    if emeklilik > 0:
        print(f'emekliliğinize {emeklilik} yıl kaldı')
    else:
        print('Zaten emekli oldunuz')

EmekliligeKacYilKaldi(1983, 'Ali')
EmekliligeKacYilKaldi(1950, 'Ahmet')
EmekliligeKacYilKaldi(1974, 'Yağmur')

Ekran çıktısı;

Ali emekliliğinize 29 yıl kaldı
Ahmet Zaten emekli oldunuz
Yağmur emekliliğinize 20 yıl kaldı

Python Fonksiyon Örnekleri

1- Gönderilen bir kelimeyi belirtilen kez ekranda gösteren python fonksiyonunu yazınız.

def yazdir(kelime, adet):
    print(kelime * adet)

yazdir('Merhaba\n', 10)

Ekrana 10 kere Merhaba yazar. 

** \n bir alt satıra geçmek için kullanılır.

2- Gönderilen 2 sayı arasındaki tüm asal sayıları bulan python fonksiyon uygulamasını yapınız.

def asalSayılariBul(sayi1, sayi2):
    for sayi in range(sayi1, sayi2+1):
        if sayi > 1:
            for i in range(2, sayi):
                if (sayi % i == 0):
                    break
            else:
                print(sayi)

sayi1 = int(input('sayı 1:'))
sayi2 = int(input('sayı 2:'))

asalSayılariBul(sayi1, sayi2)

3- Kendisine gönderilen bir sayının tam bölenlerini bulan python uygulamasını yapınız.

def tamBolenleriBul(sayi):
    tamBolenler = []

    for i in range(2, sayi):
        if (sayi % i == 0):
            tamBolenler.append(i)    

    return tamBolenler

print(tamBolenleriBul(20))