Kurs içeriği (6 / 7)
  1. 1 Python’a Giriş ve Temel Kavramlar 40 dk
  2. 2 Değişkenler ve Veri Türleri 80 dk
  3. 3 Koşul İfadeleri 80 dk
  4. 4 Döngüler 80 dk
  5. 5 Listeler ve Temel Veri Yapıları 80 dk
  6. 6 Fonksiyonlar 80 dk
  7. 7 Basit Uygulama ve Mini Projeler 80 dk

Python Temel Kurs · Ders 6 / 7

Fonksiyonlar

Konu anlatımı ⏱ 80 dk

Kendi fonksiyonlarımızı def ile tanımlamayı, parametrelerle fonksiyona bilgi göndermeyi ve return ile sonuç almayı öğreniyoruz. Fonksiyonların kodu nasıl kısalttığını ve düzenlediğini örneklerle görüyoruz.

Bu derste

  • Fonksiyon kullanmanın yararlarını açıklar.
  • def ile parametresiz ve parametreli fonksiyonlar tanımlar ve çağırır.
  • return ile değer döndüren fonksiyonlar yazar ve dönen değeri kullanır.
  • Ekrana yazdırma (print) ile değer döndürme (return) arasındaki farkı ayırt eder.

Malzemeler

  • Bilgisayar
  • Python 3 ve Thonny
  • Çevrim içi Python editörü (alternatif)

Aslında ilk dersten beri fonksiyon kullanıyoruz: print(), input(), len() ve type() Python’un hazır fonksiyonlarıdır. Bu derste kendi fonksiyonlarımızı yazmayı öğreneceğiz. Böylece kendi komutlarımızı oluşturabileceğiz!

Dersin Amacı ve Kazanımlar

Bu dersin sonunda:

  1. Fonksiyon kullanmanın yararlarını açıklayabileceksiniz.
  2. def ile parametresiz ve parametreli fonksiyonlar tanımlayıp çağırabileceksiniz.
  3. return ile değer döndüren fonksiyonlar yazabilecek ve dönen değeri kullanabileceksiniz.
  4. print ile ekrana yazdırma ve return ile değer döndürme arasındaki farkı ayırt edebileceksiniz.

Gerekli Malzemeler

Malzeme Açıklama
Bilgisayar Windows, macOS veya Linux yüklü herhangi bir bilgisayar
Python 3 ve Thonny Bilgisayara kurulu Python 3 ve Thonny editörü (thonny.org)
Çevrim içi editör (alternatif) Kurulum yapılamıyorsa tarayıcıda çalışan bir Python editörü (ör. Programiz, Trinket)

Neden Fonksiyon Kullanırız?

Fonksiyon, belirli bir işi yapan ve bir adı olan kod parçasıdır. Fonksiyonu bir kez yazarız, sonra adını söyleyerek istediğimiz kadar çalıştırırız. Bunu bir çamaşır makinesine benzetebiliriz: Programı bir kez ayarlarsınız, sonra her seferinde sadece düğmeye basarsınız.

  • Tekrarı önler: Aynı kodu defalarca yazmak yerine fonksiyonu çağırırız.
  • Kodu düzenler: Büyük bir problemi küçük parçalara böleriz; her parça bir fonksiyon olur.
  • Hata bulmayı kolaylaştırır: Bir hatayı fonksiyonda düzelttiğimizde, fonksiyonun kullanıldığı her yerde düzelmiş olur.

Fonksiyon Tanımlamak: def

Fonksiyon def anahtar kelimesiyle tanımlanır. Ardından fonksiyonun adı, parantezler ve iki nokta üst üste gelir. Fonksiyonun içindeki satırlar, tıpkı if ve döngülerde olduğu gibi girintili yazılır. Fonksiyonu tanımlamak onu çalıştırmaz; çalıştırmak için adını parantezle birlikte yazarak çağırmamız gerekir.

Örnek 1: İlk Fonksiyonumuz

# Parametresiz basit bir fonksiyon
def selam_ver():
    print("Merhaba!")
    print("Bugün fonksiyonları öğreniyoruz.")

# Fonksiyonu iki kez çağırıyoruz
selam_ver()
selam_ver()

Beklenen çıktı:

Merhaba!
Bugün fonksiyonları öğreniyoruz.
Merhaba!
Bugün fonksiyonları öğreniyoruz.

Parametreler

Fonksiyona dışarıdan bilgi göndermek için parametre kullanırız. Parametreler parantez içine yazılır ve fonksiyonun içinde değişken gibi kullanılır. Fonksiyonu çağırırken gönderdiğimiz değerlere de argüman denir. Böylece aynı fonksiyon her çağrıldığında farklı bilgilerle çalışabilir.

Örnek 2: Parametreli Fonksiyon

# Parametreli fonksiyon
def tanis(ad, sinif):
    print("Merhaba " + ad + "!", sinif, "sınıfındasın.")

tanis("Zeynep", "7-A")
tanis("Emir", "8-B")

Beklenen çıktı:

Merhaba Zeynep! 7-A sınıfındasın.
Merhaba Emir! 8-B sınıfındasın.

Değer Döndürmek: return

Bazen fonksiyonun sonucu ekrana yazdırmasını değil, bize geri vermesini isteriz. Böylece sonucu bir değişkende saklayabilir, başka işlemlerde kullanabiliriz. Bunun için return kullanılır. return satırı çalıştığında fonksiyon orada sona erer ve değeri çağrıldığı yere gönderir.

Örnek 3: Dikdörtgenin Alanı

# return ile değer döndüren fonksiyon
def dikdortgen_alani(kisa, uzun):
    alan = kisa * uzun
    return alan

sonuc = dikdortgen_alani(4, 7)
print("Alan:", sonuc)

# Dönen değerleri işlemlerde de kullanabiliriz
toplam = dikdortgen_alani(2, 3) + dikdortgen_alani(5, 5)
print("İki odanın toplam alanı:", toplam)

Beklenen çıktı:

Alan: 28
İki odanın toplam alanı: 31

💡 İpucu

Fonksiyonlara yaptıkları işi anlatan, fiille biten adlar verin: alan_hesapla, selam_ver, listeyi_goster. True ya da False döndüren fonksiyonlar için ise cift_mi, gecti_mi gibi soru biçiminde adlar okumayı kolaylaştırır: if cift_mi(n): satırı neredeyse Türkçe bir cümle gibi okunur.

Örnek 4: Fonksiyonları Birlikte Kullanmak

Fonksiyonlar listeleri de parametre olarak alabilir. sum() hazır fonksiyonu listedeki sayıları toplar.

# Fonksiyonları birlikte kullanmak
def cift_mi(sayi):
    return sayi % 2 == 0       # True ya da False döndürür

def ortalama_hesapla(sayilar):
    return sum(sayilar) / len(sayilar)

n = int(input("Bir sayı gir: "))
if cift_mi(n):
    print(n, "çift sayıdır.")
else:
    print(n, "tek sayıdır.")

print("Ortalama:", ortalama_hesapla([70, 80, 96]))

Örnek çalıştırma: (Kullanıcının klavyeden yazdığı değerler de çıktıda görünüyor: 12)

Bir sayı gir: 12
12 çift sayıdır.
Ortalama: 82.0

⚠️ Önemli Not

print ile return aynı şey değildir! Fonksiyonun içinde sonucu yalnızca print() ile yazdırırsanız değer ekranda görünür ama fonksiyon onu geri vermez. Böyle bir fonksiyonun sonucunu bir değişkene atarsanız değişkenin içinde None (hiçbir şey) olur ve hesaplamada kullanmaya çalıştığınızda hata alırsınız. Sonucu başka bir yerde kullanacaksanız mutlaka return kullanın. Ayrıca fonksiyonu tanımlamadan önce çağırırsanız NameError hatası alırsınız; fonksiyon tanımları programın üst kısmında olmalıdır.

Sıra Sizde

  1. Kolay: Ekrana yıldızlardan oluşan bir çizgi (**********) çizen cizgi_ciz() adlı bir fonksiyon yazın ve iki metnin arasında bu fonksiyonu kullanın.
  2. Orta: Bir sayının karesini döndüren kare(sayi) fonksiyonunu yazın. Bu fonksiyonla 1’den 10’a kadar olan sayıların karelerini bir döngüde yazdırın.
  3. Zor: Celsius cinsinden sıcaklığı Fahrenheit’a çeviren fahrenheit_yap(c) fonksiyonunu yazın (formül: c * 9 / 5 + 32). Kullanıcıdan bir sıcaklık alıp sonucu yazdırın. Sıcaklık 30 °C’nin üzerindeyse “Hava çok sıcak!” uyarısı veren ikinci bir fonksiyon ekleyin.

Kendini Dene

  1. Python’da fonksiyon tanımlamak için hangi anahtar kelime kullanılır?
  2. return satırı olmayan bir fonksiyon geriye ne döndürür?
  3. def kare(x): return x * x tanımlandıysa print(kare(3) + 1) ekrana ne yazdırır?

Cevaplar

  1. def
  2. None, yani “hiçbir şey” değerini döndürür.
  3. 10. kare(3) 9 döndürür, üzerine 1 eklenir.