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))