Kurs içeriği (6 / 7)
Python Temel Kurs · Ders 6 / 7
Fonksiyonlar
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:
- Fonksiyon kullanmanın yararlarını açıklayabileceksiniz.
defile parametresiz ve parametreli fonksiyonlar tanımlayıp çağırabileceksiniz.returnile değer döndüren fonksiyonlar yazabilecek ve dönen değeri kullanabileceksiniz.printile ekrana yazdırma vereturnile 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
- Kolay: Ekrana yıldızlardan oluşan bir çizgi (
**********) çizencizgi_ciz()adlı bir fonksiyon yazın ve iki metnin arasında bu fonksiyonu kullanın. - 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. - 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
- Python’da fonksiyon tanımlamak için hangi anahtar kelime kullanılır?
returnsatırı olmayan bir fonksiyon geriye ne döndürür?def kare(x): return x * xtanımlandıysaprint(kare(3) + 1)ekrana ne yazdırır?
Cevaplar
defNone, yani “hiçbir şey” değerini döndürür.10.kare(3)9 döndürür, üzerine 1 eklenir.