Yazılıma yeni başlayanlar için Python fonksiyon rehberi

Yazılıma yeni başlayanlar için Python fonksiyon rehberi Python programlama dilinde fonksiyonlar, kod yazmayı kolaylaştıran ve programı daha anlaşılır hale getiren temel yapı taşlarından biridir. Yazılıma yeni başlayanlar için fonksiyonları öğrenmek, kodu modüler, okunabilir ve tekrar kullanılabilir…

9
Paylaş
Yazılıma yeni başlayanlar için Python fonksiyon rehberi

Yazılıma yeni başlayanlar için Python fonksiyon rehberi

Python programlama dilinde fonksiyonlar, kod yazmayı kolaylaştıran ve programı daha anlaşılır hale getiren temel yapı taşlarından biridir. Yazılıma yeni başlayanlar için fonksiyonları öğrenmek, kodu modüler, okunabilir ve tekrar kullanılabilir kılmak açısından çok önemlidir. Bu rehberde, Python fonksiyonlarının ne olduğu, nasıl tanımlandığı, kullanıldığı ve farklı özellikleri adım adım anlatılacaktır. Ayrıca, fonksiyonlarla ilgili pratik örnekler ve yeni başlayanların sıkça yaptığı hatalara dair ipuçları da yer alacaktır.

Python fonksiyonu nedir?

Fonksiyon, belirli bir görevi yerine getiren kod bloğudur. Genellikle bir problemi çözmek için birden fazla kez kullanılması gereken işlemler fonksiyon içine alınır. Fonksiyonlar, programın farklı yerlerinden çağrılarak aynı işlemin tekrar tekrar yazılmasını önler. Bu sayede kod hem kısalır hem de daha düzenli olur.

Python’da fonksiyon tanımlamak için `def` anahtar kelimesi kullanılır. Fonksiyon ismi ve parantez içinde parametreler belirtilir. Fonksiyonun çalıştıracağı kod bloğu girintili olarak yazılır.

def selamla():
    print("Merhaba, Python öğreniyorsunuz!")

Yukarıdaki örnekte, `selamla` adında parametresiz bir fonksiyon tanımlanmıştır. Fonksiyon çağrıldığında ekrana mesaj yazdıracaktır.

Fonksiyon nasıl çağrılır?

Bir fonksiyon tanımladıktan sonra onu kullanmak için ismi ve parantezleri yazmanız yeterlidir. Parametre alan fonksiyonlarda parantez içine gerekli değerler verilir.

selamla()  # Merhaba, Python öğreniyorsunuz! çıktısını verir

Fonksiyon çağrısı, program akışını fonksiyonun içine yönlendirir, işlemi yapar ve ardından kaldığı yere döner.

Fonksiyon parametreleri ve argümanlar

Fonksiyonlar genellikle işlem yaparken dışarıdan bilgi almak ister. Bu bilgiler fonksiyon parametreleriyle sağlanır. Parametreler, fonksiyon tanımlanırken parantez içine yazılır.

def toplama(a, b):
    print(a + b)

Burada `toplama` fonksiyonu iki parametre alır ve toplamını yazdırır.

Zorunlu ve varsayılan parametreler

  • Zorunlu parametreler: Fonksiyon çağrılırken mutlaka değer verilmelidir.
toplama(3, 5)  # 8
  • Varsayılan parametreler: Parametreye önceden değer atanabilir, çağrıda verilmezse varsayılan kullanılır.
def merhaba(isim="ziyaretçi"):
      print(f"Merhaba, {isim}!")

  merhaba()          # Merhaba, ziyaretçi!
  merhaba("Ali")     # Merhaba, Ali!

Değişken sayıda parametre almak

Bazı durumlarda kaç parametre geleceği önceden bilinmeyebilir. Python’da `args` ve `*kwargs` ile bu esneklik sağlanır.

  • `*args`: Pozisyonel argümanları tuple olarak alır.
  • `**kwargs`: Anahtar kelime argümanlarını sözlük olarak alır.
def yazdir(*args, **kwargs):
    print("Args:", args)
    print("Kwargs:", kwargs)

yazdir(1, 2, 3, ad="Ali", yas=25)

Çıktı:

Args: (1, 2, 3)
Kwargs: {'ad': 'Ali', 'yas': 25}
Python fonksiyon

Fonksiyonların geri dönüş değeri

Bir fonksiyon işlem tamamlandığında bir değer döndürebilir. Bunun için `return` ifadesi kullanılır. Eğer `return` yoksa fonksiyon otomatik olarak `None` döner.

def carpma(a, b):
    return a * b

sonuc = carpma(4, 5)
print(sonuc)  # 20

`return` fonksiyonun çalışmasını sonlandırır ve çağrıldığı yere değeri gönderir. Fonksiyonlar birden fazla değer de döndürebilir:

def islemler(a, b):
    return a+b, a*b

toplam, carpim = islemler(3, 6)
print(toplam, carpim)  # 9 18

Fonksiyon içinde değişken kapsamı: Yerel ve global değişkenler

Fonksiyon içinde tanımlanan değişkenler sadece fonksiyon içinde geçerlidir; bunlara yerel değişken denir. Fonksiyon dışındaki değişkenlere global değişken denir.

x = 10  # global değişken

def fonksiyon():
    x = 5  # yerel değişken
    print(x)

fonksiyon()  # 5
print(x)     # 10

Global değişken fonksiyon içinde değiştirilmek istenirse `global` anahtar kelimesi kullanılır:

x = 10

def degistir():
    global x
    x = 7

degistir()
print(x)  # 7

Global değişken kullanımı dikkatli olmalıdır, çünkü kodun izlenmesini zorlaştırabilir.

Python fonksiyon

Lambda fonksiyonları: Tek satırlık fonksiyonlar

Python’da kısa ve basit fonksiyonlar için `lambda` ifadesi vardır. Lambda fonksiyonları isimsizdir ve genellikle bir değişkene atanır veya başka fonksiyonlara argüman olarak verilir.

kare = lambda x: x**2
print(kare(4))  # 16

Lambda fonksiyonları genellikle sıralama, filtreleme gibi işlemlerde tercih edilir:

sayilar = [1, 5, 3, 9]
sayilar.sort(key=lambda x: -x)
print(sayilar)  # [9, 5, 3, 1]

Ancak karmaşık işlemler için klasik `def` ile fonksiyon tanımlamak okunabilirlik açısından daha iyidir.

Fonksiyonlarda dokümantasyon: Docstring kullanımı

Kodun anlaşılmasını kolaylaştırmak için fonksiyonların içine açıklama yazılır. Bu açıklama üç tırnak içinde yazılır ve docstring olarak adlandırılır.

def faktoriyel(n):
    """n sayısının faktöriyelini hesaplar."""
    if n == 0:
        return 1
    else:
        return n * faktoriyel(n-1)

Docstring’lere IDE veya Python’un `help()` fonksiyonu ile erişilebilir:

help(faktoriyel)

Docstring yazmak, özellikle ekip projelerinde kodun anlaşılmasını sağlar.

Fonksiyonlarda hata yönetimi

Fonksiyon içinde oluşabilecek hataları kontrol altına almak programın stabil çalışması için önemlidir. Python’da `try-except` blokları ile hata yakalanabilir.

def bolme(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return "Bir sayı sıfıra bölünemez."

print(bolme(10, 2))  # 5.0
print(bolme(5, 0))   # Bir sayı sıfıra bölünemez.

Hata yönetimi, kullanıcıdan alınan verilerle çalışan fonksiyonlarda hata sebebiyle programın durmasını önler.

Fonksiyonlarda modülerlik ve kod tekrarı önleme

Fonksiyonlar, kodu modüller halinde organize eder. Tekrar eden işlemleri fonksiyon içine almak, kodun bakımını kolaylaştırır.

Örneğin, aynı hesaplamayı defalarca yazmak yerine fonksiyon tanımlamak:

def alan_hesapla(en, boy):
    return en * boy

print(alan_hesapla(5, 3))  # 15
print(alan_hesapla(10, 7)) # 70

Kodunuzda değişiklik yapmak istediğinizde sadece fonksiyonu değiştirmek yeterlidir.

Fonksiyon isimlendirme kuralları

  • Fonksiyon isimleri küçük harflerle yazılır.
  • Kelimeler alt çizgi (_) ile ayrılır.
  • Anlamlı ve kısa isimler tercih edilir.
  • Python anahtar kelimeleri kullanılmaz.

Örnek isimler: `kullanici_ekle`, `veri_cek`, `dosya_yaz`.

Fonksiyonların başka fonksiyonları çağırması

Fonksiyonlar kendi içinde başka fonksiyonları çağırabilir. Bu sayede karmaşık işlemler küçük parçalara bölünerek daha anlaşılır hale gelir.

def kare_al(x):
    return x ** 2

def kup_al(x):
    return x ** 3

def hesapla(sayi, fonksiyon):
    return fonksiyon(sayi)

print(hesapla(4, kare_al))  # 16
print(hesapla(2, kup_al))   # 8

Fonksiyon parametresi olarak başka fonksiyon göndermek, Python’un esnekliğini gösterir.

Fonksiyonların performansa etkisi

Fonksiyon kullanımı, kodu modülerleştirirken küçük bir performans maliyeti oluşturabilir. Ancak okunabilirlik ve bakım kolaylığı açısından bu maliyet çoğunlukla kabul edilir. Çok küçük ve sık tekrar eden işlemlerde ise dikkatli olmak gerekir.

Fonksiyonlarda tip ipuçları (Type Hints)

Python 3 ile birlikte fonksiyon parametreleri ve dönüş türü için tip belirtmek mümkün oldu. Bu, kod okunabilirliğini artırır ve IDE’lerde hata yakalamaya yardımcı olur.

def topla(a: int, b: int) -> int:
    return a + b

Tip ipuçları zorunlu değildir ancak tavsiye edilir.

Pratik örnekler

Örnek 1: Parametreli fonksiyon

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

selamla("Ayşe")  # Merhaba, Ayşe!

Örnek 2: Varsayılan parametre

def hesapla(kdv_orani=0.18):
    fiyat = 100
    return fiyat + fiyat * kdv_orani

print(hesapla())        # 118.0
print(hesapla(0.08))    # 108.0

Örnek 3: Değişken sayıda argüman

def toplam(*sayilar):
    sonuc = 0
    for s in sayilar:
        sonuc += s
    return sonuc

print(toplam(1, 2, 3, 4))  # 10

Yeni başlayanların sık yaptığı hatalar

  • Fonksiyon tanımlarken parantezi unutmak.
  • Parametre sayısını yanlış vermek.
  • `return` ifadesini kullanmayı ihmal etmek.
  • Global değişkenleri fonksiyon içinde değiştirmeye çalışmak.
  • Fonksiyon isimlerini anlamsız seçmek.
  • Karmaşık fonksiyonlar yazmak yerine, işleri küçük parçalara bölmemek.

Bu hatalardan kaçınmak için pratik yapmak ve yukarıdaki temel kurallara uymak önemlidir.

Fonksiyonlar ve metodlar arasındaki fark

Fonksiyon bağımsız olarak tanımlanır, metod ise bir nesneye bağlıdır. Örneğin, liste nesnesinin `append()` metodu listeye eleman ekler.

liste = [1, 2, 3]
liste.append(4)  # append bir metoddur

Fonksiyonlar bağımsızdır:

def topla(a, b):
    return a + b

Fonksiyonları öğrenmek neden önemlidir?

  • Kod tekrarı önlenir.
  • Program modüler olur.
  • Hata ayıklama kolaylaşır.
  • Kod okunabilirliği artar.
  • Daha büyük projelerde yönetim kolaylaşır.

Fonksiyonlar olmadan karmaşık program yazmak zor ve hataya açık olur.

Ek okuma / Kaynak

Python fonksiyonları hakkında daha detaylı bilgi için Python Resmi Dokümantasyonu ziyaret edilebilir.

Editörün Notu

Python fonksiyonlarını öğrenmek yazılımda modülerlik ve kod tekrarını önleme açısından büyük kolaylık sağlar. Bu rehberde verilen örnekler ve ipuçları, fonksiyonları adım adım kavrayarak pratik yapmanızı destekleyecektir.

—

İlgili yazılar:

Emre Demir
Yazar

Yazılım Editörü

Yazılım editörü ve full-stack geliştirici. Uygulama incelemeleri, kodlama rehberleri ve verimlilik araçları üzerine yazıyor. Açık kaynak projelere katkıda bulunuyor; karmaşık konuları yeni başlayanların anlayacağı şekilde anlatmaya özen gösteriyor.

Tüm yazıları gör →