Python Fonsiyonlar
Fonksiyonlar, sadece çağırıldıklarında çalışan kod parçalarıdır. Veri döndürebilirler.Fonksiyonları çalıştırırken değişkenleri fonksiyona iletebilirsiniz. Biz bunlara parametre diyeceğiz.
Bir Fonksiyon Yaratmak
Python'da fonksiyon yaratırken def kodu kullanılır.
PYTHON Kodu
def fonksiyonum():
print("Bir fonksiyondan merhaba!")
Örnekte görüldüğü gibi def ifadesinden sonra fonksiyonun adına yer verilir (fonksiyonum). Parantez açılır, varsa parametreler yazılır ve parantez kapatılır. Ardından iki nokta koyularak fonksiyon çağırıldığında çalışması istenen kodlar yazılmaya başlanır.
Bir Fonksiyonu Çağırmak
Fonksiyonu çalıştırmak için fonksiyonun adını yazın, ardından parantez açıp kapatın.
PYTHON Kodu
def fonksiyonum():
print("Bir fonksiyondan merhaba!")
fonksiyonum()
Parametreler (Argümanlar)
Fonksiyonlara bilgi parametreler vasıtasıyla iletilir.
Parametre, fonksiyon adından sonra parantez içinde belirtilir. Birden fazla parametre kullanılabilir. Bunlar virgül (,) ile ayrılır.
Aşağıdaki örnekte tek parametreli bir fonksiyon oluşturuldu. Fonksiyon çağırıldığı zaman, veri bu parametre sayesinde fonksiyona iletilecek.
PYTHON Kodu
def fonksiyonum(isim):
print("Adınız: " + isim)
fonksiyonum("Murat")
fonksiyonum("Yasemin")
Örnek incelenirse, fonksiyon çağırırken parantez içinde "Murat" ifadesi kullandık. Bu veri fonksiyona "isim" adlı bir değişken olarak aktarıldı.
Parametre Sayısı
Fonksiyonu oluştururken kaç parametre taşıyabileceği belirtilir. Fonksiyon çağırılırken bu sayıda parametre olması beklenir. Örneğin, fonksiyon iki parametre ile oluşturulduysa, çağırırken sadece iki parametre yazabiliriz demektir.
PYTHON Kodu
def fonksiyonum(ad, soyad):
print("Adınız: " + ad + ", Soyadınız: " + soyad)
fonksiyonum("Murat", "Eliçalışkan")
Yukarıdaki örnekte iki değil de üç parametre yazsaydık, derleyici hata verirdi.
Değişken Sayıda Parametre Alabilen Fonksiyonlar
Fonksiyonun kaç parametre alacağı ile ilgili kesin bir bilgi yoksa, bir veya daha fazla sayıda veriyi parametreden önce yıldız (*) koyarak almasını sağlayabilirsiniz. Bu şekilde fonksiyona iletilen bilgi tuple türünde bir dize olacaktır.
PYTHON Kodu
def fonksiyonum(*cocuklar):
print("En genç çocuk: " + cocuklar[2])
fonksiyonum("Yağmur", "Mert", "Gamze")
Parametre Anahtarları Kullanmak
Parametreleri, anahtar = değer şeklinde bir yapı ile göndermeniz mümkün. Bu durumda parametre sırası önemsizdir.
PYTHON Kodu
def fonksiyonum(cocuk3, cocuk2, cocuk1):
print("En genç çocuk: " + cocuk3)
fonksiyonum(cocuk1 = "Yağmur", cocuk2 = "Mert", cocuk3 = "Gamze")
İsteğe Bağlı Parametre Alan Fonksiyonlar
Bazen fonksiyonlara istenilen isim ve değerde değişken göndermek gerekebilir. Bunun için anahtar = değer yapısında değişkenler kabul eden fonksiyonlar yazılabilir. Yapılması gereken fonksiyon parametresinde değişkenin önüne iki yıldız (**) eklemektir:
PYTHON Kodu
def my_function(**cocuk):
print("Soyadı " + cocuk["soyad"])
my_function(ad = "Tobias", soyad = "Smith")
Varsayılan Parametre Değeri Belirtmek
Parametre gerektiren bir fonksiyonda parametre kullanılmadığı zaman geçerli olacak parametre değerini = değer şeklinde yazarak belirtebiliriz.
PYTHON Kodu
def nereden(ulke = "Türkiye"):
print("Nereden: " + ulke)
nereden("İsveç")
nereden("Hindistan")
nereden()
nereden("Brezilya")
Fonksiyona Parametre Olarak Bir Liste Göndermek
Metin, sayı, liste, sözlük vb. her türlü değişken parametre olarak talep edilebilir ve gönderilebilir. Örneğin bir listeyi (list) parametre olarak gönderirseniz, fonksiyon içine de o türde geçecektir:
PYTHON Kodu
def meyveler(food):
for x in food:
print(x)
meyveIsimleri = ["elma", "muz", "kiraz"]
meyveler(meyveIsimleri)
Fonksiyondan Değer Döndürmek
Fonksiyonların çalıştıktan sonra bir değer döndürmesini return
PYTHON Kodu
def fonksiyonum(x):
return 5 * x
print(fonksiyonum(3))
print(fonksiyonum(5))
print(fonksiyonum(9))
pass İfadesi
Fonksiyonlar boş olamaz. En az bir satırlık kod içermelidir. Herhangi bir değer döndürmüyorsa pass kullanılmalıdır.
PYTHON Kodu
def fonksiyonum():
pass
Fonksiyon İçinde Kendisini Çağırmak
Python'da fonksiyonlar kendisini çalıştırabilir (recursion). Özellikle matematikte önemli bir yeri olan bu şekilde kullanımlarda dikkatli olmak lazım. Çünkü hata yapılırsa sonsuz döngüler oluşabilir ve bu da programın hem çalışmamasına hem de işlemciyi yormasına neden olur.
PYTHON Kodu
def topla(k):
if(k > 0):
result = k + topla(k - 1)
print(result)
else:
result = 0
return result
topla(6)
Yukarıdaki örnek çalıştırıldığı zaman belirtilen parametredeki sayıyı, bir küçük sayı ile toplar ve bu süreci k 0'dan büyük olduğu sürece yapar. Son yazan sonuç, o sayıya kadar olan sayıların toplamıdır.
Başka bir örnek faktöriyel hesabıdır. Aşağıdaki fonksiyonda belirtilen sayı 1 oluncaya kadar çarpılır ve sonuç ekrana yazdırılır.
PYTHON Kodu
def faktoriyel(n):
if n == 1:
return n
else:
return n*faktoriyel(n-1)
print(faktoriyel(4))
Örnek 1
ortalama = (sinav1+sinav2+sozlu)/3.0 # ortalama hesaplanması
print(ortalama) # ortalamanin yazdirilmasi
ortalama = (sinav1+sinav2+sozlu)/3.0 # ortalama hesaplanması
return ortalama # ortalamanin geriye değer olarak döndürülmesi
Örnek 2
ortalama = (sinav1+sinav2+sozlu)/3.0 # ortalama hesaplanması
return ortalama # ortalamanin geriye değer olarak döndürülmesi
if (ortalama_hesapla(35,60,40) < 50):
print("Dersten kaldı")
else:
print("Geçti"
Örnek 3
from ek import * #Ek dosyadan fonksiyon cagirma
EkranaYaz() #Parametresiz, geriye deger göndermeyen
EkranaYaz2(3) #Parametreli, geriye deger göndermeyen
A=RastGeleSayi() #Parametresiz, geriye deger gönderen
print(A)
B=RastGeleSayi2(10) #Parametreli, geriye deger gönderen
print(B)
def EkranaYaz(): #Parametresiz, geriye deger göndermeyen
print("Aykut")
def EkranaYaz2(Adet): #Parametli, geriye deger göndermeyen
for i in range(Adet):
print("Halil")
def RastGeleSayi(): #Parametresiz, geriye deger gönderen
return random.randint(1,100) #cagirildigi yere return önündeki değeri yollar
def RastGeleSayi2(EnBuyuk): #Parametresiz, geriye deger gönderen
return random.randint(1,EnBuyuk) #cagirildigi yere return önündeki değeri yollar
Kaynak
- https://1kodum.com/python-fonksiyon-ornekleri/
- https://python.sitesi.web.tr/python-fonksiyonlar.html