Fonksiyonlar - Python 101 #5

Fonksiyonlar

Programlama hayatımız boyunca kullandığımız bütün işlemler bir düzen içerisindedir. Yani genellikle böyle olması gerekir. Kodlarımızı yazarken işlerimizi kolaylaştırma ve okunabilirliği arttırmak adına fonksiyonları kullanırız. Peki Python’da fonksiyonları nasıl kullanırız? Gelin hep beraber bakalım.

Python’da fonksiyon tanımlaması nasıl yapılır?

Her ne zaman olursa olsun bir fonksiyon tanımlamak istediğinizde en önemli olan şeylerden birisi def sözcüğüdür. Eğer hizalamayı(indentation) doğru bir şekilde sürdürdüyseniz def anahtar sözcüğünü kullandıktan sonra geri kalan tanımlama işleminize devam edebilirsiniz. def anahtar sözcüğünden sonra gelmesi gereken değer fonksiyonunuzun adıdır. Her programlama dilinin söz diziminde(syntax) belirli kurallar olduğu gibi Python’da da Python’ın koymuş olduğu söz dizimi kurallarına uymanız gerekir. Gelin aşağıdaki örnek ile bir Python fonksiyonu nasıl olur, hep beraber inceleyelim.

 

def fonksiyon_adi():
    print("Bu benim ilk fonksiyonum")

 

Parametreler

Her fonksiyon belirli işlemleri gerçekleştirmek için parametreler alır. Bunu en basite indirgememiz gerekirse, bir meyve sıkacağını ele alabiliriz. Meyve sıkacağı sizin fonksiyonunuz olsun, içerisine aldığınız meyveler ise parametreleriniz. Bu durumu düşündüğümüzde meyve sıkacağınız yani fonksiyonunuz parametresi olan meyve/meyveleri alamayınca bir işlem yapamayacak ve fonksiyonunuz bir işe yaramayacaktır. Başka bir örnekle açıklamak gerekirse; sadece toplama işlemi yapan Topla adında bir fonksiyon düşünelim. Bu fonksiyonumuzun dinamik bir şekilde çalışabilmesi için en az iki parametreye ihtiyacı var. Aşağıdaki örneğimizde aldığı iki değerin toplamını yazdıran fonksiyona gelin hep beraber göz atalım.

def Topla(sayi1,sayi2):
    print sayi1+sayi2

Topla(3,5)

Gördüğünüz gibi sayi1 ve sayi2 adında iki parametre alan fonksiyonumuz, aldığı değerleri toplayarak sonucu ekrana yazdırmaktadır. Parametreler fonksiyon adı yazıldıktan sonra parantez içinde yazılır.

 

Yazılım dünyasında fonksiyonlar/metodlar için genel terimler olan void ve return nedir? Neden void fonksiyon, neden return fonksiyon kullanırız?

Void fonksiyon nedir, nasıl çalışır?

Void fonksiyonlar kendi içerisinde çalışan, dışarıya veri göndermeyen, genellikle aldığı parametreler üzerinden işlem yapan fonksiyonlardır. Örnek vermek istersek yukarıda vermis olduğumuz toplama fonksiyonu örneğine bakabiliriz. Topla fonksiyonunu incelediğimizde sayi1 ve sayi2 adlı 2 değişkenleri parametre olarak alıp içerisinde işlem yaptığını görebiliriz. Kafaların karışmaması için başka bir void fonksiyon örneğine göz atalım. Örneğimiz; 3 sayının ortalamasını ekrana yazdıran bir fonksiyon.

def ortalama_hesapla(sayi1,sayi2,sayi3):
    ortalama = (sayi1+sayi2+sayi3)/3.0  # ortalama alinma islemi ve "ortalama" adli degiskene ortalamanin atanmasi
    print ortalama # ortalamanin yazdirilmasi

 

Return fonksiyon nedir, nasıl çalışır?

Return fonksiyonlar, programlama hayatınız boyunca kullanacağınız -bir nevi askerleriniz olacak- fonksiyon tipidir. Return fonksiyonlar daima bir değer döndürür. Bu fonksiyonlar kodunuzda bulunan dinamikliği arttırmasıyla kalmaz ayrıca okunabilirliği de arttırır. Basit örnekler üzerinden incelemek gerekirse; yukarıda yapmış olduğumuz topla ve ortalama_hesapla fonksiyonlarımızı tekrardan ele alalım. Topla fonksiyonumuz kendi içerisinde işlemleri yaptığından dolayı(void), dışarıdaki bir olaya müdahale etme yetkisi yoktu fakat Topla fonksiyonunu, sayıların toplamını return eden bir fonksiyon haline getirdiğimizde ortalama_hesapla fonksiyonu Topla fonksiyonunu kendi içerisinde kullanabilecek ve bu sayede daha anlaşılabilir ve daha efektif bir çalışan kod bloğumuz oluşmuş olacak.

def Topla(sayi1,sayi2,sayi3):
    return sayi1+sayi2+sayi3

def ortalama_hesapla(sayi1,sayi2,sayi3):
    ortalama = Topla(sayi1,sayi2,sayi3)/3.0
    print ortalama

ortalama_hesapla(1,2,3)

 

Yukarıya dikkatlice baktığımızda sadece ortalama fonksiyonunu çağırarak toplama fonksiyonundan da nasıl yararlandığımızı görebiliriz.

 

Bu yazımızda kabaca void ve return kavramları üzerinden fonksiyon kullanımına değindik. Fonksiyonlar hakkında birkaç örneği aşağıdan inceleyebilirsiniz. Daha detaylı örnekler ilerleyen zamanlarda gelecektir.

 

Örnek - 1

Verilen sayıdan 0'a kadar olan sayıları sırayla yazdıran bir geri_say fonksiyonu yazalım.

def geri_say(son_sayi):
    while son_sayi >= 0:
        print str(son_sayi) + ' ',
        son_sayi = son_sayi -1

geri_say(5)

Çıktımız şu şekilde olacaktır.

5 4 3 2 1 0

Örnek - 2

Verilen sayıya kadar Fibonacci sayı dizisini yazdıran fibonacci isimli bir fonksiyon yazalım.

def fibonacci(sayi):
    a,b=0,1
    while b<=sayi:
        print a
        a,b=b,a+b

Örnek - 3

Kenar uzunluğu verilen bir karenin alanını bulan alan adında bir fonksiyon yazalım. Bu fonksiyonumuz alan değerini bize geri döndürsün(return).

def alan(kenar):
    return kenar*kenar

print alan(5)

Şimdilik bu kadar, diğer yazılarda görüşmek üzere...

Add comment