Python
31 ~35 dk

Fonksiyonlar

Fonksiyon Nedir?

Fonksiyonlar, belirli bir görevi yerine getiren ve tekrar tekrar kullanılabilen kod bloklarıdır. def anahtar kelimesi ile tanımlanır.

# Fonksiyon tanımlama
def selamla():
    print("Merhaba!")
    print("Python fonksiyonlarına hoş geldiniz.")

# Fonksiyonu çağırma
selamla()
selamla()  # İstediğimiz kadar çağırabiliriz
>>> python fonksiyon.py Merhaba! Python fonksiyonlarına hoş geldiniz. Merhaba! Python fonksiyonlarına hoş geldiniz.

Parametreli Fonksiyonlar

# Tek parametre
def selamla(isim):
    print(f"Merhaba {isim}! Hoş geldin.")

selamla("Kadir")   # Merhaba Kadir! Hoş geldin.
selamla("Ayşe")    # Merhaba Ayşe! Hoş geldin.

# Birden fazla parametre
def toplama(a, b):
    sonuc = a + b
    print(f"{a} + {b} = {sonuc}")

toplama(5, 3)   # 5 + 3 = 8
toplama(12, 7)  # 12 + 7 = 19

Varsayılan Parametre Değerleri

def kahve_siparis(boyut="orta", seker=2):
    print(f"☕ {boyut} boy kahve, {seker} şeker")

kahve_siparis()                   # orta boy kahve, 2 şeker
kahve_siparis("büyük")           # büyük boy kahve, 2 şeker
kahve_siparis("küçük", 0)        # küçük boy kahve, 0 şeker
kahve_siparis(seker=3)           # orta boy kahve, 3 şeker

return ile Değer Döndürme

def kare_al(sayi):
    return sayi ** 2

def toplam_bul(sayilar):
    return sum(sayilar)

def bolunebilir_mi(a, b):
    return a % b == 0

# Kullanım
sonuc = kare_al(7)
print(f"7'nin karesi: {sonuc}")  # 49

print(toplam_bul([1, 2, 3, 4, 5]))  # 15
print(bolunebilir_mi(10, 3))  # False
print(bolunebilir_mi(10, 5))  # True
💡 İpucu: Bir fonksiyon return kullanmazsa varsayılan olarak None döndürür.

Birden Fazla Değer Döndürme

def dikdortgen_hesapla(en, boy):
    alan = en * boy
    cevre = 2 * (en + boy)
    return alan, cevre  # Tuple olarak döner

a, c = dikdortgen_hesapla(5, 3)
print(f"Alan: {a}, Çevre: {c}")  # Alan: 15, Çevre: 16

*args ve **kwargs

# *args: Belirsiz sayıda parametre
def toplam(*sayilar):
    print(f"Gelen sayılar: {sayilar}")
    return sum(sayilar)

print(toplam(1, 2, 3))       # 6
print(toplam(10, 20, 30, 40)) # 100

# **kwargs: İsimli parametreler
def profil(**bilgiler):
    for anahtar, deger in bilgiler.items():
        print(f"  {anahtar}: {deger}")

profil(ad="Kadir", yas=25, sehir="Antalya")
>>> python args.py Gelen sayılar: (1, 2, 3) 6 Gelen sayılar: (10, 20, 30, 40) 100 ad: Kadir yas: 25 sehir: Antalya

Lambda Fonksiyonları

# Kısa, tek satırlık fonksiyonlar
kare = lambda x: x ** 2
topla = lambda a, b: a + b
cift_mi = lambda n: n % 2 == 0

print(kare(5))       # 25
print(topla(3, 7))   # 10
print(cift_mi(4))    # True

# Liste sıralama ile kullanım
ogrenciler = [("Ali", 85), ("Veli", 92), ("Ayşe", 78)]
ogrenciler.sort(key=lambda x: x[1], reverse=True)
print(ogrenciler)  # [('Veli', 92), ('Ali', 85), ('Ayşe', 78)]

Scope (Kapsam)

x = 10  # Global değişken

def fonksiyon():
    y = 5   # Local değişken
    print(f"Fonksiyon içi x: {x}")  # Global x'e erişir
    print(f"Fonksiyon içi y: {y}")

fonksiyon()
print(f"Fonksiyon dışı x: {x}")
# print(y)  # HATA! y sadece fonksiyon içinde tanımlı
⚠️ Global vs Local: Fonksiyon içinde tanımlanan değişkenler sadece o fonksiyon içinde geçerlidir. Dışarıdan erişilemez.

🎯 Alıştırmalar

  1. İki sayının OBEB (GCD) ve OKEK (LCM) hesaplayan fonksiyonlar yazın
  2. Bir sayının asal olup olmadığını kontrol eden asal_mi(n) fonksiyonu yazın
  3. Basit hesap makinesi: Fonksiyonları kullanarak 4 işlem yapan hesap makinesi
  4. Fibonacci dizisinin ilk n elemanını döndüren fonksiyon yazın

Yorumlar 0

Giriş yapın — Yorumlarınız hemen yayınlansın
Henüz yorum yapılmamış. İlk yorumu siz yapın!