Bu ders notu, Python'da fonksiyon tanımlama ve kullanma (def anahtar kelimesi) üzerine yapılan "Test 1" için temel konuları, kavramları ve önemli noktaları sade bir dille özetlemektedir.
Fonksiyonlar, belirli bir görevi yerine getirmek üzere bir araya getirilmiş kod bloklarıdır. Tıpkı bir mutfakta farklı yemekleri pişirmek için ayrı tarifler olması gibi, Python'da da farklı işler için fonksiyonlar yazılır.
💡 İpucu: Bir fonksiyonu bir "mini program" gibi düşünebilirsiniz. Kendi girdileri (parametreler) olabilir, belirli bir işi yapar ve bir çıktı (dönüş değeri) üretebilir.
def Anahtar Kelimesi)Python'da bir fonksiyon tanımlamak için def anahtar kelimesini kullanırız. Bu, Python'a "şimdi bir fonksiyon tanımlıyorum" demenin yoludur.
def fonksiyon_adi(parametre1, parametre2): şeklinde başlar.def: Fonksiyon tanımlamak için kullanılan anahtar kelime.fonksiyon_adi: Fonksiyonunuza verdiğiniz isimdir. Anlamlı ve küçük harflerle yazılması iyi bir uygulamadır (örneğin: hesapla_ortalama).(parametreler): Fonksiyonun dışarıdan alacağı değerleri temsil eden değişkenlerdir. İsteğe bağlıdır, fonksiyon hiç parametre almayabilir (()).: (İki Nokta Üst Üste): Fonksiyon başlığının bittiğini ve fonksiyon bloğunun başladığını belirtir.📝 Örnek:
def merhaba_yaz(): # Parametresiz fonksiyon
print("Merhaba Dünya!")
def topla(sayi1, sayi2): # İki parametreli fonksiyon
sonuc = sayi1 + sayi2
print(sonuc)
Fonksiyonlar genellikle dışarıdan bilgi alarak çalışır. Bu bilgilere "parametre" ve "argüman" denir.
📝 Örnek:
def selamla(isim, yas): # 'isim' ve 'yas' parametrelerdir
print(f"Merhaba {isim}, {yas} yaşındasın.")
# Fonksiyonu çağırırken argümanları gönderiyoruz:
selamla("Ayşe", 30) # "Ayşe" ve 30 argümanlardır (pozisyonel)
selamla(yas=25, isim="Mehmet") # Anahtar kelime argümanlar
⚠️ Dikkat: Pozisyonel argümanlar her zaman anahtar kelime argümanlardan önce gelmelidir.
Bir fonksiyonu tanımlamak onu çalıştırmak anlamına gelmez. Tanımladığınız fonksiyonun içindeki kodu çalıştırmak için onu "çağırmanız" gerekir.
() kullanarak çağrılır.📝 Örnek:
def gunaydin():
print("Günaydın!")
def carp(x, y):
print(x * y)
gunaydin() # Fonksiyonu çağırıyoruz
carp(4, 5) # Argümanlarla birlikte çağırıyoruz
return Anahtar Kelimesi)Birçok fonksiyon, bir işlem yaptıktan sonra bir sonuç üretir ve bu sonucu fonksiyonu çağıran yere "geri döndürür". Bu işlem return anahtar kelimesi ile yapılır.
return ifadesi, fonksiyonun çalışmasını sonlandırır ve belirtilen değeri fonksiyonun çağrıldığı yere gönderir.return ifadesi içermiyorsa, otomatik olarak None değerini döndürür.📝 Örnek:
def kare_al(sayi):
return sayi * sayi # Karenin sonucunu döndürür
def bolme_yap(bolunen, bolen):
if bolen == 0:
return "Bölen sıfır olamaz!"
return bolunen / bolen
sonuc1 = kare_al(7) # Fonksiyonun döndürdüğü değeri 'sonuc1' değişkenine atıyoruz
print(sonuc1) # Çıktı: 49
sonuc2 = bolme_yap(10, 2)
print(sonuc2) # Çıktı: 5.0
hata_mesaji = bolme_yap(10, 0)
print(hata_mesaji) # Çıktı: Bölen sıfır olamaz!
💡 İpucu: Bir fonksiyonun print() yapması ile return yapması farklıdır. print() sadece değeri ekrana basar, return ise o değeri başka bir yerde kullanılmak üzere geri verir.
Bazı durumlarda, bir parametreye varsayılan bir değer atamak isteyebilirsiniz. Bu, fonksiyon çağrılırken o parametre için bir değer verilmezse, varsayılan değerin kullanılmasını sağlar.
📝 Örnek:
def karsilama(isim="Misafir", dil="Türkçe"):
if dil == "Türkçe":
print(f"Merhaba {isim}!")
elif dil == "İngilizce":
print(f"Hello {isim}!")
else:
print(f"Bilinmeyen dil için {isim}!")
karsilama() # Çıktı: Merhaba Misafir! (Varsayılan değerler kullanılır)
karsilama("Ali") # Çıktı: Merhaba Ali! (isim değişir, dil varsayılan kalır)
karsilama(isim="Veli", dil="İngilizce") # Çıktı: Hello Veli! (Her ikisi de değişir)
karsilama(dil="İngilizce") # Çıktı: Hello Misafir! (dil değişir, isim varsayılan kalır)
⚠️ Dikkat: Varsayılan parametreler, parametre listesinin sonunda tanımlanmalıdır. Örneğin, def f(a, b=0, c): hatalıdır. Doğrusu def f(a, c, b=0): veya def f(a, b=0, c=0): olmalıdır.
Değişkenlerin programın hangi kısımlarından erişilebileceğini belirten kurala "kapsam" (scope) denir.
global anahtar kelimesi kullanılması gerekir.📝 Örnek:
global_mesaj = "Ben küresel bir mesajım." # Küresel değişken
def benim_fonksiyonum():
local_mesaj = "Ben yerel bir mesajım." # Yerel değişken
print(local_mesaj)
print(global_mesaj) # Küresel değişkene erişilebilir
benim_fonksiyonum()
print(global_mesaj) # Küresel değişkene erişilebilir
# print(local_mesaj) # Hata verir: 'local_mesaj' tanımlı değil (fonksiyon dışında erişilemez)
💡 İpucu: Genel olarak, fonksiyonların kendi içlerinde tanımladıkları yerel değişkenlerle çalışması ve küresel değişkenlere doğrudan müdahale etmekten kaçınması daha iyi bir programlama pratiğidir. Bu, kodunuzu daha güvenli ve hata ayıklamayı kolaylaştırır.