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
0 Yorumlar