Python'da Fonksiyonlar
Fonksiyonlar, Python'da ve diğer programlama dillerinde belirli işlemleri gerçekleştirmek için kullanılan kod bloklarıdır. Fonksiyonlar sayesinde kod tekrarını önler, programı daha modüler hale getirir ve karmaşıklığı yönetebiliriz.
Temel Fonksiyon Tanımlama
def merhaba(): print("Merhaba Dünya!") merhaba() # Fonksiyonu çağırma
Parametreli Fonksiyonlar
Fonksiyonlara dışarıdan veri gönderebiliriz:
def selamla(isim): print(f"Merhaba, {isim}!") selamla("Ahmet") # Çıktı: Merhaba, Ahmet!
Varsayılan Parametreler
def selamla(isim="Misafir"): print(f"Merhaba, {isim}!") selamla() # Çıktı: Merhaba, Misafir! selamla("Ali") # Çıktı: Merhaba, Ali!
Dönüş Değeri (Return)
Fonksiyonlar bir değer döndürebilir:
def topla(a, b): return a + b sonuc = topla(3, 5) print(sonuc) # Çıktı: 8
Çoklu Parametreler (*args ve **kwargs)
*args (Değişken sayıda pozisyonel argüman)
def topla(*sayilar): toplam = 0 for sayi in sayilar: toplam += sayi return toplam print(topla(1, 2, 3)) # Çıktı: 6 print(topla(1, 2, 3, 4, 5)) # Çıktı: 15
**kwargs (Değişken sayıda keyword argüman)
def bilgileri_goster(**bilgiler): for anahtar, deger in bilgiler.items(): print(f"{anahtar}: {deger}") bilgileri_goster(ad="Ahmet", yas=25, sehir="Ankara") """ Çıktı: ad: Ahmet yas: 25 sehir: Ankara """
Lambda Fonksiyonları (Anonim Fonksiyonlar)
Kısa, tek satırlık fonksiyonlar oluşturmak için kullanılır:
kare = lambda x: x ** 2 print(kare(5)) # Çıktı: 25 topla = lambda a, b: a + b print(topla(3, 4)) # Çıktı: 7
Fonksiyonlarda Docstring
Fonksiyonların ne yaptığını açıklamak için:
def faktoriyel(n): """ Bir sayının faktöriyelini hesaplar Parametre: n (int): Hesaplanacak sayı Döndürür: int: n'nin faktöriyeli """ if n == 0: return 1 else: return n * faktoriyel(n-1) print(faktoriyel(5)) # Çıktı: 120
Fonksiyon İçinde Fonksiyon (İç İçe Fonksiyonlar)
def dis_fonksiyon(): print("Dış fonksiyon çalıştı") def ic_fonksiyon(): print("İç fonksiyon çalıştı") ic_fonksiyon() dis_fonksiyon() """ Çıktı: Dış fonksiyon çalıştı İç fonksiyon çalıştı """
Decorator'lar
Fonksiyonların davranışını değiştirmek için kullanılır:
def decorator_fonksiyon(func): def wrapper(): print("Fonksiyondan önceki işlemler") func() print("Fonksiyondan sonraki işlemler") return wrapper @decorator_fonksiyon def selam_ver(): print("Merhaba!") selam_ver() """ Çıktı: Fonksiyondan önceki işlemler Merhaba! Fonksiyondan sonraki işlemler """
Generator Fonksiyonlar
yield ifadesi kullanılarak oluşturulur:
def sayi_uret(baslangic, bitis): while baslangic <= bitis: yield baslangic baslangic += 1 for sayi in sayi_uret(1, 5): print(sayi) """ Çıktı: 1 2 3 4 5 """
Rekürsif (Özyinelemeli) Fonksiyonlar
Kendini çağıran fonksiyonlar:
def faktoriyel(n): if n == 0: return 1 else: return n * faktoriyel(n-1) print(faktoriyel(5)) # Çıktı: 120
Fonksiyonlarda Tip Belirtme (Type Hints)
Python 3.5+ ile gelen özellik:
def topla(a: int, b: int) -> int: return a + b print(topla(3, 5)) # Çıktı: 8
Bu anlatım Python fonksiyonlarının temel ve ileri düzey özelliklerini kapsamaktadır
Yorumlar
Yorum Gönder