Python Fonksiyonlar

Merhaba arkadaşlar,

Mobilhanem.com da Python Dersleri serisinin bir dersinde yine beraberiz. Bu derste Python Fonksiyon konusunu işleyeceğiz. Bu yazıda Fonksiyonların ne olduğunu ne işe yaradığını,  nasıl kullanıldığını ve fonksiyon tiplerini baştan sona ele alacağım. Hadi o zaman başlayalım 🙂

Fonksiyon Nedir?

Python Eğitim serisinin ilk dersinden beri hep fonksiyon kavramını kullandık. Dilerseniz kafanızı çok karıştırmadan fonksiyon kavramını kısaca tanımlayayım.

Fonksiyonlar kısaca belirli bir işlevi yapmak için oluşturulan komutlar kümesidir. Örneğin print() fonksiyonu ekrana çıktı vermemizi sağlayan işlevi yapmak için belirli komutlar bulundurur.

Neden Fonksiyonlar?

Şimdi sizin aklınıza şöyle bir şey gelmiştir ben fonksiyon kullanmasam olmaz mı? Tabi ki kullanmasanız da olur ama belli bir yerden sonra kod satırı arttığında karmaşıklık artıyor ve kontrol etmek zorlaşıyor. Onun için biz fonksiyonları kullanıyoruz.

Böylece biz yapmak istediğimiz işlevler için her seferinde kod yazmak yerine bir defa fonksiyon oluşturuyoruz işlem yapmak istediğimiz zaman çağırıp kullanıyoruz. Böylece fazla kod karmaşığından kurtuluyoruz.

Kısaca Fonksiyonlar;

  • Her biri belli bir işi yerine getiriyor.
  • Parametre alan fonksiyon var almayan fonksiyon olmak üzere iki ayırabiliriz.
  • Fonksiyonların görevi, karmaşık işlemleri bir araya toplayarak, bu işlemleri tek adımda yapmamızı sağlamaktır.
  • Fonksiyonları kullanarak, bir veya birkaç adımdan oluşan işlemleri tek bir isim altında toplayabiliriz.

Fonksiyonların ne olduğunu ve neden kullandığımızı biliyorsak arttık nasıl kullanacağımızı öğrenelim.

Fonksiyon Kullanımı

Python da iki tür fonksiyon vardır birincisi Python ile hazır gelen fonksiyonlar yani gömülü fonksiyonlar, ikincisi ise bizim oluşturduğumuz fonksiyonlar. Print() ve type() gibi fonksiyonlar Python ile birlikte geldiği için biz sadece onları kullanmak istediğimiz yerde çağırıyoruz.

Fonksiyonların genel kullanım taslağı şu şekildedir.

def fonksiyon_Adi(parametre1,parametre2):

 işlemler

fonksiyon_Adi()

Genel olarak taslağı gördük şimdi bir örnekle gösterelim bunun için. Ben bunun için hemen basit bir fonksiyon oluşturayım.

Gördüğünüz gibi fonksiyonumuzu oluşturduk. Şimdi fonksiyonumuzu çağıralım bunun için fonksiyonun adını yazmamız yeterli kullanımı şu şekilde;

 Fonksiyon_Adi(parametre1,parametre2)

Bizim fonksiyonuz parametre almadığı için bizim bir şey yazmamıza gerek yok. Hemen çağıralım;

Bir defa çağırdığımız için bu işlevi bir defa yaptı biz kaç defa çağırırsak o kadar ekrana yazdırır.

Dilerseniz aynı fonksiyonu bide farklı şekilde yazalım. Burada return deyimini kullanacağım çünkü biz fonksiyonlarla sadece ekrana yazdırma işlemi değilde bize sonuç  döndürecek fonksiyonlarda yazacağız bu yüzden  return kullanacağız.

Return Deyimi

return deyimi fonksiyonun geriye herhangi bir değer döndürmesini sağlar.

Bu şekilde fonksiyonun döndürdüğü değeri yazdırmış olduk.

Python da parametre almayan fonksiyonları öğrendik. Şimdi parametre alan ve geriye değer döndüren bir fonksiyon yazalım.

Bu şekilde girdiğimiz sayıların toplamını döndüren bir fonksiyon yazmış olduk.  Peki biz bu parametrelere önceden değer atayabilir miyiz tabi ki de hemen göstereyim;

Gördüğünüz gibi parametrelere önceden değer ataya biliyoruz. Bu yüzden Fonksiyonu çağırdığımız zaman parametrelere değer vermemize gerek yok. Peki parametreye değer verirsek ne olur hemen değer verip deneyelim.

Gördüğünüz gibi bize bu sefer 14 değil de 7 sonucunu geriye döndürdü. Yani eğer biz fonksiyonu çağırdığımız zaman değer vermezsek Python default olarak önceden parametrelere verdiğimiz değerleri atar.

Şuana kadar hep fonksiyon içinde parametrelere değer yani argüman verdik bide dışarıdan aldığımız değerler ile fonksiyonlarda işlem yapalım.

Bunu da öğrendiğimize göre şimdi fonksiyonlarla bir hesap makinesi yapalım.

Return deyimini anlatmış olduk. Şimdi biz fonksiyonları tanımlarken istediğimiz yerde çağırıp kullandığımızı söylemiştik peki fonksiyonları başka bir fonksiyonun içinde çağırıp kullanabiliyoruz hemen gösterelim.

Fonksiyon İçinde Fonksiyon

Şimdi bu uygulamamızda Standart Sapma hesapla uygulaması yapacağız. Kısaca Standart Sapma anlatırsak. Standart sapma, bir serideki sayıların, serinin aritmetik ortalamasından farklarının karelerinin toplamının dizinin eleman sayısının bir eksiğine bölümünün kare köküdür.

Biraz açmak gerekirse, standart sapma hesaplamak için;

  • Sayıların aritmetik ortalaması hesaplanır.
  • Her bir sayının aritmetik ortalamadan farkı bulunur.
  • Bulunan farkların her birinin karesi hesaplanır.
  • Farkların kareleri toplanır.
  • Elde edilen toplam, serinin eleman sayısının bir eksiğine bölünür.
  • Bulunan sayının karekökü alınır.

Bizde bunun için önce serinin ortalamasını ortHesapla() fonksiyonu hesaplayacağız bulduğumuz sunucu return ile döndüreceğiz ve standartHesapla() fonksiyonunun da kullanacağız.

 

Fonksiyon içinde fonksiyon çağırıp kullanmayı öğrendik. Eminim aklınıza şöyle bir soru gelmiştir: Fonksiyonlar kendi kendini çağırabiliyor mu? Tabi ki yapabiliyor hatta buna fonksiyonlara bir isim bile verilmiş 🙂 Hadi o zaman başlığımızı atalım.

Recursive (Özyineli) Fonksiyonlar :

Recursive fonksiyonlar kendi kendini çağıran fonksiyonlardır. Kısaca bir döngü gibi düşünebiliriz burada dikkat etmemiz gereken şey sonsuz döngüye girmemesi için bir şart koşulu kullanmalıyız. Recursive fonksiyonlar genel olarak diğer fonksiyonlara göre karmaşıklığı arttırdığı için ve fazla bellek kullandığı için pek kullanmayı önermem ama işe yaradığı durumlarda vardır. Hemen bir örnekle göstereyim;

Bunun için fibonacci sayıların toplamını hesaplama uygulaması yapacağım.

Fibonacci dizisi, her sayının kendinden önceki  iki sayının   toplanması sonucu oluşan bir sayı dizisidir.

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55

Resursive fonksiyonları da anlatmış oldum sisten isteğim tam olarak oturması için sizde faktoriyel hesaplama uygulamasını recursive fonksiyonu ile yapmanız eğer yapamazsanız soru-cevap kısmından yazmanız dilerseniz buradan da yardım alabilirsiniz.

Mobilhanem.com da Python Dersleri serisinin bu dersinde Python Fonksiyonlar konusunu işledik. Bir sonraki derste Python da Fonksiyonların Kapsamı konusunu anlatacağım.Anlamadığınız bir yer ve ya eksik yada yanlış gördüğünüz bir yer varsa iletişime geçmekten çekinmeyin.

Cahit İşleyen

Fırat Üniversitesi Yazılım Mühendisliği
Python ve Linux sever.
Çay tiryakisi

2 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?