![Hands-on Mentor Kapsamlı Blog İçeriği](https://static.wixstatic.com/media/976076_e9951b5ace874f1f9c8f802fb74f1a08~mv2.png/v1/fill/w_500,h_500,al_c,q_85,enc_auto/976076_e9951b5ace874f1f9c8f802fb74f1a08~mv2.png)
Python'da Fonksiyonlar Nedir?
Fonksiyonlar, belirli bir görevi yerine getirmek için yazılmış kod bloklarıdır. Fonksiyonlar, kodunuzu modüler hale getirir ve kod tekrarını azaltır. Python'da fonksiyonlar, def anahtar kelimesi kullanılarak tanımlanır ve gerektiğinde çağrılabilir. Fonksiyonlar, belirli bir giriş alabilir, bu girişler üzerinde işlemler yapabilir ve bir sonuç döndürebilir.
Fonksiyon Tanımlama ve Çağırma
Temel Fonksiyon Tanımlama
Fonksiyonlar, def anahtar kelimesi ile tanımlanır ve ardından fonksiyon adı, parametreler (isteğe bağlı) ve fonksiyon gövdesi gelir. Fonksiyon gövdesi girintili olarak yazılır ve belirli bir işlemi gerçekleştirmek için kod içerir.
Örnek:
def merhaba_dunya():
print("Merhaba, Dünya!")
Fonksiyon Çağırma
Tanımlanan fonksiyon, adı ve parantezler kullanılarak çağrılır.
Örnek:
merhaba_dunya() # Çıktı: Merhaba, Dünya!
Parametreler ve Argümanlar
Fonksiyonlar, parametreler alabilir ve bu parametreler fonksiyon içinde kullanılabilir. Parametreler, fonksiyonun girişlerini belirtir ve fonksiyonun çağrıldığında bu girişler üzerinde işlemler yapmasına olanak tanır.
Örnek:
def merhaba(isim):
print(f"Merhaba, {isim}!")
Fonksiyonu çağırırken, argümanlar parametreler ile eşleştirilir.
Örnek:
merhaba("Ali") # Çıktı: Merhaba, Ali!
Varsayılan Parametreler
Fonksiyonlar, varsayılan değerler alabilir. Bu, argüman verilmediğinde kullanılacak değeri belirtir. Varsayılan parametreler, parametrelerin sonunda tanımlanmalıdır.
Örnek:
def merhaba(isim="Dünya"):
print(f"Merhaba, {isim}!")
Varsayılan parametreli bir fonksiyon çağrıldığında, argüman verilmezse varsayılan değer kullanılır.
Örnek:
merhaba() # Çıktı: Merhaba, Dünya!
merhaba("Ali") # Çıktı: Merhaba, Ali!
args ve *kwargs
args ve *kwargs, fonksiyonların değişken sayıda argüman almasını sağlar. Bu, fonksiyonların daha esnek olmasına olanak tanır.
args
args, değişken sayıda pozisyonel argüman alır ve bir tuple olarak iletilir.
Örnek:
def toplama(*sayilar):
toplam = 0
for sayi in sayilar:
toplam += sayi
return toplam
print(toplama(1, 2, 3, 4)) # Çıktı: 10
*kwargs
*kwargs, değişken sayıda anahtar-değer çiftleri alır ve bir sözlük olarak iletilir.
Örnek:
def bilgiler(**kwargs):
for anahtar, deger in kwargs.items():
print(f"{anahtar}: {deger}")
bilgiler(ad="Ali", yas=25, sehir="İstanbul")
# Çıktı:
# ad: Ali
# yas: 25
# sehir: İstanbul
Geri Dönüş Değerleri (return)
Fonksiyonlar, bir değer döndürebilir. return anahtar kelimesi, fonksiyonun geri döneceği değeri belirtir. return ifadesi kullanıldığında, fonksiyon çalışmasını durdurur ve belirtilen değeri döner.
Örnek:
def kare(sayi):
return sayi ** 2
sonuc = kare(4)
print(sonuc) # Çıktı: 16
Fonksiyon birden fazla değer döndürebilir. Bu durumda, döndürülen değerler bir tuple olarak döner.
Örnek:
def islem(a, b):
toplam = a + b
fark = a - b
return toplam, fark
toplam, fark = islem(10, 5)
print(toplam) # Çıktı: 15
print(fark) # Çıktı: 5
Fonksiyon Dokümantasyonu
Fonksiyonlar, açıklama satırları kullanılarak belgelenebilir. Bu, fonksiyonun ne yaptığını, parametrelerini ve dönüş değerlerini açıklamak için kullanılır. Python'da dokümantasyon, üçlü tırnaklar (''' veya """) kullanılarak yazılır.
Örnek:
def toplama(a, b):
"""
Bu fonksiyon iki sayıyı toplar.
Parametreler:
a (int veya float): Birinci sayı.
b (int veya float): İkinci sayı.
Dönüş Değeri:
int veya float: İki sayının toplamı.
"""
return a + b
print(toplama(5, 3)) # Çıktı: 8
Yerel ve Global Değişkenler
Fonksiyonlar içinde tanımlanan değişkenler yerel (local) değişkenlerdir ve sadece o fonksiyon içinde geçerlidir. Fonksiyon dışında tanımlanan değişkenler ise global değişkenlerdir ve programın her yerinde kullanılabilir.
Örnek:
x = 10 # Global değişken
def fonksiyon():
x = 5 # Yerel değişken
print(f"Yerel x: {x}")
fonksiyon() # Çıktı: Yerel x: 5
print(f"Global x: {x}") # Çıktı: Global x: 10
Global değişkenleri fonksiyon içinde değiştirmek için global anahtar kelimesi kullanılır.
Örnek:
x = 10 # Global değişken
def fonksiyon():
global x
x = 5 # Global değişkeni değiştirir
print(f"Yerel x: {x}")
fonksiyon() # Çıktı: Yerel x: 5
print(f"Global x: {x}") # Çıktı: Global x: 5
Rekürsif Fonksiyonlar
Rekürsif fonksiyonlar, kendi kendini çağıran fonksiyonlardır. Rekürsif fonksiyonlar, özellikle belirli bir problemi daha küçük alt problemlere bölmek için kullanışlıdır. Ancak, rekürsif fonksiyonlar dikkatli kullanılmalıdır, aksi halde sonsuz döngüye girebilirler.
Örnek:
def faktoriyel(n):
if n == 1:
return 1
else:
return n * faktoriyel(n-1)
print(faktoriyel(5)) # Çıktı: 120
Lambda Fonksiyonları
Lambda fonksiyonları, kısa ve tek satırlık fonksiyonlar yazmak için kullanılır. lambda anahtar kelimesi kullanılarak tanımlanır.
Örnek:
kare = lambda x: x ** 2
print(kare(5)) # Çıktı: 25
toplama = lambda a, b: a + b
print(toplama(3, 7)) # Çıktı: 10
Fonksiyonların Kullanım Alanları
Fonksiyonlar, kodu modüler ve yeniden kullanılabilir hale getirir. İşte bazı örnekler:
Matematiksel Hesaplamalar: Belirli bir hesaplamayı gerçekleştiren fonksiyonlar.
Veri İşleme: Verileri analiz eden ve işleyen fonksiyonlar.
API Entegrasyonu: Belirli bir API'ye erişen ve veri alan fonksiyonlar.
Oyun Geliştirme: Oyun mantığını ve kurallarını uygulayan fonksiyonlar.
Veritabanı İşlemleri: Veritabanı ile etkileşime giren fonksiyonlar.
Sonuç
Bu blog yazısında, Python'da fonksiyonların nasıl tanımlandığını ve kullanıldığını, parametreler ve argümanlar ile nasıl çalışıldığını, args ve *kwargs kullanarak değişken sayıda argüman almayı öğrendiniz. Ayrıca, fonksiyonların nasıl belgeleyip geri dönüş değerlerini kullanabileceğinizi ve yerel ve global değişkenlerle nasıl çalışabileceğinizi gördünüz. Rekürsif fonksiyonlar ve lambda fonksiyonları da bu yazının kapsamına girdi. Fonksiyonlar, Python programlamada kodunuzu modüler ve yeniden kullanılabilir hale getirmek için temel araçlardır.
Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !