Python: Bölüm 5 – Fonksiyonlar

Herkese merhabalar,

Python eğitim serisinin bir önceki yazısında öncelikle for ve while döngülerini işledik. Daha sonra, çok kullanışlı ve işimize yarayacak fonksiyonlardan biri olan range() fonksiyonunu öğrendik. Bundan önceki bölüm olan Python: Bölüm 4 – Döngüler yazısını daha okumadıysanız bu linke tıklayarak ulaşabilirsiniz.

İçerik:

  1. Fonksiyonlara Giriş
  2. Fonksiyonlarda Argüman Kullanımı
  3. Yerel ve Global Değişkenler
  4. Lambda Fonksiyonları
  5. return Kullanımı

Bu yazımızda ise detaylı bir şekilde fonksiyonları işleyeceğiz. Hadi başlayalım!!

Fonksiyonlara Giriş:

Biz şimdiye dek karşılaştığımız print(), type() ve range() gibi örnekler sayesinde ‘fonksiyon’ denen şeyi az çok tanıdığımızı söyleyebiliriz. Şimdi ise kendimiz nasıl fonksiyon oluşturabileceğimizi göreceğiz. Fonksiyon tanımlamak Python dilinde diğer programlama dillerine göre çok daha kolay bir iştir. Hangi fonksiyonun ne döndüreceğiyle, veya argümanların tip ve sayısıyla uğraşmanıza gerek yoktur.

def : 

Yukarıdaki kodun hiçbir görevi olmasa da geçerli bir fonksiyon kullanımıdır.

Bir fonksiyonun tanımlamak için gerekli olan elemanları söyle sıralayabiliriz:

  • def anahtar kelimesi
  • Fonksiyon adı
  • Parantezler
  • :
  • Fonksiyon gövdesi

pass : Bu anahtar sözcüğünü henüz içeriğini netleştirmediğimiz bir fonksiyon yazarken fonksiyonu tamamlamak için kullanabiliriz. Asıl fonksiyonu yazınca pass anahtar sözcüğünün görevi bitmiş olur. Yukarıdaki gibi yazdığımız kodlar None değerini döndürmesi gerekir, çünkü fonksiyonun gövdesinde sadece pass sözcüğü var.

Geçerli bir Fonksiyon Oluşturma
Argümanlar:

Parantez içinde argüman girme zorunluluğu yoktur. Fakat, gerektiğinde istediğimiz sayı ve özellikte argüman tanımlayabiliriz. Fonksiyon argümanları çeşitli gruplara ayırabiliriz. Hadi şimdi bu argümanlarla örnekler yapalım.

Zorunlu Argüman Kullanımına Örnek:

Zorunlu Argüman Kullanımı

Yukarıda görüldüğü gibi fonksiyonun gövdesinde verilen parametrenin yazdırılması istenmiştir. Bu sebeple argüman kullanmak zorunludur. Ayrıca, Bu fonksiyon argüman verilmeden veya birden fazla argüman verilirse hata üreteceği aşikardır. Çünkü fonksiyonumuz tek argüman beklemektedir.

Anahtar Kelimeli Argüman Kullanımına Örnek:

Anahtar Kelimeli Argüman Kullanımı

Argümanın anahtar kelimeyle verilmesi, özellikle çok argümanlı fonksiyonların kullanımında yazılımcıya daha esnek davranma imkanı sağlar. Argümanlar istenilen sırada verilebilir.

Varsayılan Argüman Kullanımına Örnek:

Varsayılan Argüman Kullanımı

Bazen istersek fonksiyonun herhangi argümanlarına öndeğer atayabiliriz. Yukarıdaki örnekte de görüldüğü gibi eğer varsayılan argüman eklenirse ve fonksiyonun çağırılması sırasında bu varsayınlan argüman argüman listesine eklenmezse, ön atama yapılan varsayılan değer geçerli olur.

Değişken Uzunluklu Argüman Kullanımına Örnek:

Bazı durumlarda bir fonksiyona verilecek argümanların sayısı baştan net bir şekilde berlirlenemez. Böyle durumlarda değişken argüman yapısını kullanırız.

Yıldız ile başlayan değişken uzunluklu argüman bölümü boş bırakılabilir veya farklı sayıda argüman barındırabilir.

Değişken Uzunluklu Argüman Kullanımı
Yerel ve Global Değişkenler:

Eğer bir değişken fonksiyonun içinde tanımlandıysa yerel bir etkiye sahiptir. Bunun anlamı, sadece o fonksiyonun içinde ve alt fonksiyonlarda etkisini sürdürür. Fonksiyonun etki alanı dışına çıkıldığında o değişken tanımsız hale gelir.

Ayrıca şunu söylemek gerekir ki alt fonksiyonda tanımlanan yerel değişken ana ve üst fonkisyonlar için tanımsızdır.

Global ve Yerel Değişkenlere Örnek

Özellikle bir fonksiyonun içindeyken üst kademede tanımlanmış bir değişkende değişiklik yapmaya kalktığımızda sorun yaşarsınız. Çünkü orada yaptığınız değişiklik, o kademede kalır ve üst kademeye aktarılmaz. Bu yüzden dikkatli davranmak gerekir.

Ancak bu durumu global değişkeler ile çözebiliriz.

Global Olarak Atamak

Eğer bir fonksiyon içinde bir değişkenin başına global yazarsak, o değişkenin ana ve alt fonksiyonlar için tanımlandığını, yani global olarak tanımladığını belirtmiş oluruz. Bu sayede o değişkene tüm kademelerde erişebilir ve değişiklik yapabiliriz.

Yukarıdaki örenekte görüldüğü gibi a1 ve a2 değişkenini global olarak tanımladık. Bu yüzden a1 ve a2’yi global olarak tanımlamadan önce hata alacağımızı bildiğimiz satırları artık yorum satırı olarak belitmemize gerek yok. Buradan a1 ve a2 değişkenlerine artık her yerden erişebilceğimiz anlamını çıkarabiliriz.

Lambda Fonksiyonları:

def anahtar kelimesinin kullanılmadığı bazı küçük boyutlu fonksiyonlara anonim fonksiyonlar denir. Bu tür fonksiyonlar tanımlanırken lamba anahtar sözcüğü kullanılır.

Lambda fonksiyonları sadece kendi argüman listesindeki elemanları kullanır, yani yerel ve global değişkenlere ulaşamaz. Kısa bir fonksiyon oluşturacaksak lambda fonksiyonlarına başvururuz. Bunları, tek satırlık fonksiyon olarak düşünebiliriz.

Hadi şimdi ‘a’ argümanına 10 ekleyip ve sonucu döndüren bir lambda fonksiyonu yazalım:

Lambda Fonksiyonu Örnek

Örnekte de görüldüğü gibi tek satır ile fonksiyon oluşturmuş olduk.

return Kullanımı:

return ifadesi fonksiyonun işlemi bittikten sonra çağrıldığı yere değer döndürmesi anlamı taşır. Böylelikle, fonksiyonda aldığımız değeri bir değişkende depolayabilir ve değeri programın başka yerlerinde kullanabiliriz. Diğer bir ifadeyle, return anahtar kelimesi bir değer, nesne döndürmek ve aynı zamanda o fonksiyonun çağrısını sonlandırmak anlamına gelir.

return Kullanımı

Yukarıda return kullamına air bir örnek yapılmıştır. Her iki fonksiyon da aynı şekilde çalışır ve aynı değerleri döndürür. return yardımıyla fonksiyonlar değerleri çağrıldığı yere döndürebilir ve biz de bu değerleri istediğimiz yerde kullanabiliriz.

Bu bölümde Python programlama dilinde fonksiyonları gördük. Umarım beğenmişsinizdir. Vakit ayırıp okuduğunuz için teşekkür ederim.

Bu bölümde yazdığımız kodlara erişmek için bu linke, python programlama eğitim serimiz boyunca yazdığımız tüm kodlara erişmek için bu linke tıklamanız yeterlidir.

Kaynaklar:

  1. https://erdincuzun.com/python/08-fonksiyonlar/
  2. https://www.yazilimbilimi.org/python-fonksiyonlarda-return/
  3. https://www.w3schools.com/python/python_lambda.asp

 

 

 

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.