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: AntalyaLambda 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
- İki sayının OBEB (GCD) ve OKEK (LCM) hesaplayan fonksiyonlar yazın
- Bir sayının asal olup olmadığını kontrol eden
asal_mi(n)fonksiyonu yazın - Basit hesap makinesi: Fonksiyonları kullanarak 4 işlem yapan hesap makinesi
- Fibonacci dizisinin ilk n elemanını döndüren fonksiyon yazın