Fonksiyonlar konusunu pekiştirmek için birkaç örnek Python uygulaması yapabiliriz. Bu uygulamalarla parametreleri, varsayılan değerleri ve farklı türdeki argümanları kullanmayı deneyelim.
1. Uygulama: Üç Sayının Ortalamasını Hesaplama
Kullanıcıdan üç sayıyı alıp ortalamalarını döndüren bir fonksiyon yazalım.
def ortalama_hesapla(a, b, c):
return (a + b + c) / 3
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
sayi1 = float(input("1. sayıyı girin: "))
sayi2 = float(input("2. sayıyı girin: "))
sayi3 = float(input("3. sayıyı girin: "))
ortalama = ortalama_hesapla(sayi1, sayi2, sayi3)
print(f"Girilen sayıların ortalaması: {ortalama}")
2. Uygulama: Faktöriyel Hesaplama
Verilen bir sayının faktöriyelini hesaplayan bir fonksiyon yazalım. Örneğin, 5! = 5 * 4 * 3 * 2 * 1.
def faktoriyel(sayi):
sonuc = 1
for i in range(1, sayi + 1):
sonuc *= i
return sonuc
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
sayi = int(input("Faktöriyeli hesaplanacak sayıyı girin: "))
print(f"{sayi}! = {faktoriyel(sayi)}")
3. Uygulama: Fibonacci Serisi
Kullanıcının belirttiği sayıya kadar olan Fibonacci serisini döndüren bir fonksiyon yazalım.
def fibonacci(n):
fibo_serisi = [0, 1]
while len(fibo_serisi) < n:
fibo_serisi.append(fibo_serisi[-1] + fibo_serisi[-2])
return fibo_serisi
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
n = int(input("Kaç elemanlı Fibonacci serisi istiyorsunuz? "))
print(f"İlk {n} elemanlı Fibonacci serisi: {fibonacci(n)}")
4. Uygulama: İsimli Selamlama (Varsayılan Parametrelerle)
Kullanıcıya bir isim ve mesajla selam gönderme işlemi. Eğer kullanıcı bir mesaj vermezse, varsayılan olarak "Merhaba" kullanılacak.
def selam_ver(isim, mesaj="Merhaba"
):
return f"{mesaj}, {isim}!"
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
isim = input("İsminiz nedir? ")
mesaj = input("Bir mesajınız var mı? (Varsayılan: Merhaba): ")
# Kullanıcı bir mesaj vermezse varsayılan mesaj kullanılacak
if mesaj.strip() == "":
print(selam_ver(isim))
else:
print(selam_ver(isim, mesaj))
5. Uygulama: Kaç Sayının Pozitif Olduğunu Bulma (*args
Kullanımı)
Birden fazla sayı alan bir fonksiyon yazalım ve bu sayıların kaç tanesinin pozitif olduğunu hesaplayalım.
def pozitif_sayi_sayisi(*args):
pozitifler = [sayi for sayi in args if sayi > 0]
return len(pozitifler)
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
print(f"Pozitif sayı adedi: {pozitif_sayi_sayisi(1, -3, 5, 0, -8, 4, 7)}")
6. Uygulama: Kişisel Bilgiler (Anahtar Kelime Argümanları Kullanarak)
Bir kişiye ait çeşitli bilgileri **kwargs
kullanarak fonksiyona gönderelim ve bu bilgileri yazdıralım.
def kisi_bilgileri(**kwargs):
for anahtar, deger in kwargs.items():
print(f"{anahtar.capitalize()}: {deger}")
# Kullanıcıdan veri alarak fonksiyonu çağırabiliriz
kisi_bilgileri(isim="Ahmet", yas=30, meslek="Mühendis", sehir="İstanbul")
Özet:
Bu uygulamalar, fonksiyonlara parametre gönderme, varsayılan değerler kullanma, *args
ve **kwargs
ile esnek parametre geçişlerini nasıl yapabileceğinizi gösterdi. Her bir uygulama farklı bir problemi çözmek için çeşitli teknikleri uygulamaktadır.