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

python
Copy
Download
def merhaba():
    print("Merhaba Dünya!")

merhaba()  # Fonksiyonu çağırma

Parametreli Fonksiyonlar

Fonksiyonlara dışarıdan veri gönderebiliriz:

python
Copy
Download
def selamla(isim):
    print(f"Merhaba, {isim}!")

selamla("Ahmet")  # Çıktı: Merhaba, Ahmet!

Varsayılan Parametreler

python
Copy
Download
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:

python
Copy
Download
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)

python
Copy
Download
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)

python
Copy
Download
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:

python
Copy
Download
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:

python
Copy
Download
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)

python
Copy
Download
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:

python
Copy
Download
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:

python
Copy
Download
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:

python
Copy
Download
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:

python
Copy
Download
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

Yorum Gönder

0 Yorumlar