Merhaba arkadaşlar, bu yazımızda Python derslerinin bu serisinde on yedinci ders olarak Python Fonksiyonlar İşlemleri konusuna değinmeye çalışacağım. Umarım sizler için faydalı bir yazı olur. İsterseniz hemen başlayalım.
Python Fonksiyonlar
Python içinde fonksiyonlar, kod parçacıklarının tekrar kullanılmasını ve okunaklılığı arttırmak için kullanılır. Fonksiyonlar, belirli bir görevi yerine getirmek için yazılır ve istenildiği zaman çağrılabilir. Fonksiyonlar, girdi alabilir ve çıktı döndürebilir. Örneğin, bir fonksiyon “verilen iki sayının toplamını hesapla” gibi bir işlev gerçekleştirebilir ve iki sayı girdi olarak alır, toplamını döndürür. Python’da fonksiyonlar “def” anahtar kelimesi ile tanımlanır.
Neden Fonksiyonlar?
Fonksiyonlar, kodun okunaklılığını ve anlaşılırlığını arttırır ve tekrar kullanılabilirliği sağlar. Aynı işlemi yapmak için tekrar tekrar yazmak yerine, fonksiyon kullanarak kodun daha kısa ve anlaşılır olması sağlanır.
Fonksiyonlar ayrıca kodun bölünmesini ve daha küçük parçalara ayrılmasını sağlar, böylece her bir parça daha iyi anlaşılabilir ve hata arama işlemi daha kolay hale gelir.
Fonksiyonlar ayrıca kodun test edilmesini ve debug edilmesini kolaylaştırır, çünkü fonksiyonlar kendi içlerinde kapalı bir alan oluştururlar ve içlerinde yaptıkları işlemlerin etkisi diğer bölümler üzerinde minimum olur.
Fonksiyonlar ayrıca kodun modüler olmasını sağlar, yani fonksiyonların birbirleriyle etkileşimleri belirli bir şekilde tanımlanır, böylece kodun bütünü daha iyi anlaşılır ve değiştirilmesi daha kolay hale gelir.
Fonksiyon Kullanımı
Python’da fonksiyonlar, “def” anahtar kelimesi ile tanımlanır. Fonksiyon adı, parantez içinde girdi parametreleri (opsiyonel) ve bir noktalı virgül ile sonlanır. Fonksiyon içerisindeki kodlar ise indentation ile belirtilir.
Örnek olarak, aşağıdaki kod bloğu “topla” adında bir fonksiyon tanımlar ve iki sayı alır, onları toplar ve sonucu döndürür.
def topla(x, y): sonuc = x + y return sonuc # fonksiyonu kullanmak result = topla(5, 7) print(result) # 12
Fonksiyonlar çağrıldığında, parantez içinde gerekli girdi parametreleri verilir. Fonksiyon içinde yapılan işlemler gerçekleştirilir ve eğer fonksiyon bir değer döndürürse, o değer çağrı yerinde kullanılabilir. Fonksiyonlar ayrıca girdi almak zorunda değildir ve herhangi bir çıktı döndürmeyebilir.
Not: Python’da fonksiyonlar varsayılan olarak None döndürür, eğer bir değer döndürmezse.
Return Deyimi
“return” deyimi, Python fonksiyonları içinde kullanılan bir deyimdir. Fonksiyon içinde yapılan işlemler sonunda, fonksiyonun geri döndüreceği bir değer belirlenir ve “return” deyimi ile geri döndürülür. “return” deyimi fonksiyon çalışmasını sonlandırır ve geri döndürülen değer çağrı yerinde kullanılabilir.
Örnek olarak, aşağıdaki kod bloğunda “topla” adlı bir fonksiyon tanımlanmış ve iki sayı alır, onları toplar ve sonucu “return” deyimi ile geri döndürür.
def topla(x, y): sonuc = x + y return sonuc result = topla(5, 7) print(result) # 12
Fonksiyonlar geri döndürecek bir değer olmadığında da kullanılabilir, Eğer geri döndürülecek bir değer yoksa return kullanmak gerekmez.
def selamla(): print("Merhaba!") selamla()
“return” deyimi fonksiyonun çalışmasını sonlandırır, yani fonksiyon geri döndürmeden sonraki kodlar çalışmaz.
Fonksiyon içinde Fonksiyon
Python’da bir fonksiyon içinde başka bir fonksiyon tanımlanabilir. Bu, fonksiyonların iç içe geçmiş şekilde yazılmasına olanak tanır ve kodun okunaklılığını ve anlaşılırlığını arttırır. İç içe geçmiş fonksiyonlar, sadece iç fonksiyonlar çağrıldığında çalışır ve sadece iç fonksiyonun çalıştığı kapsamda geçerlidir.
Örnek olarak, aşağıdaki kod bloğunda “fonksiyon1” adlı bir fonksiyon tanımlanmış ve içinde “fonksiyon2” adlı bir fonksiyon tanımlanmıştır. “fonksiyon2” sadece “fonksiyon1” içinde çağrıldığında çalışır ve sadece “fonksiyon1” kapsamında geçerlidir.
def fonksiyon1(): print("Fonksiyon 1 Çalıştı.") def fonksiyon2(): print("Fonksiyon 2 Çalıştı.") fonksiyon2() fonksiyon1()
Bu şekilde yazılmış fonksiyonlar, okunaklılığı arttırır ve kodun anlaşılmasını kolaylaştırır, ayrıca fonksiyonların iç içe geçmiş şekilde yazılması, kodun daha modüler olmasını sağlar.
Recursive (Özyineli) Fonksiyonlar
Recursive (özyineli) fonksiyonlar, kendilerini tekrar ve tekrar çağıran fonksiyonlardır. Bu, belirli bir işlemi yapmak için özyineleme yoluyla kod yazmak anlamına gelir. Özyineleme, işlemi yerine getirmek için kendini tekrar çağıran bir algoritma olarak tanımlanır.
Örneğin, aşağıdaki kod bloğunda “faktoriyel” adlı bir özyineli fonksiyon tanımlanmıştır. Bu fonksiyon, verilen bir sayının faktöriyelini hesaplamak için kendini tekrar çağırır.
def faktoriyel(n): if n == 1: return 1 else: return n * faktoriyel(n-1) print(faktoriyel(5)) # 5! = 5*4*3*2*1 = 120
Özyineleme, belirli problemleri çözmek için kullanışlı olabilir ancak dikkatli kullanılmazsa, programın çok fazla bellek kullanmasına neden olabilir veya sonsuz döngüler oluşmasına neden olabilir. Özyineleme yapılan fonksiyonlar için bir “base case” (temel durum) tanımlanması ve kontrol mekanizması kullanılması önemlidir.
Arkadaşlar bu Python Fonksiyonlar adlı yazımızın da sonuna gelmiş bulunmaktayız. Umarım faydalı olmuştur.