Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

4.

Fonksiyonlar

4.1.Metotlar

Pythonda herhangi bir veri tipiden oluşturulmuş bütün değişkenler obje olarak düşünülür. Metotlarda
her birinin kendine özgü işlevleri olup bu objeler üzerinde işlemler yapan fonksiyonlardır. Mesela
listelerde kullandığımız append metodu ya da stringlerde kullanığımız format metodu gibi.

4.2.Fonksiyonlar

Fonksiyonlar bir kere tanımlayıp içine yapacağı işlemleri yazıp istediğimiz zaman istediğimiz yerde
tekrar tekrar çağırarak kullanabileceğimiz yapılardır. Kodumuzda fonksiyon kullanarak kod
kalabalığından da kurtulmuş oluruz. Fonksiyonların görevi kısaca işlemi bir kere yazıyoruz ve
istediğimiz yerde istediğimiz kadar kullanıyoruz. Mesela bir uygulama yazıyoruz diyelim ve
uygulamanın farklı yerlerinde birkaç kere karekökünün iki katını alma işlemini yapmamız gerekiyor.
Bu işlemin lazım olduğu yerde bu işlemin kodlarını tekrar tekrar yazmak yerine bir tane
karekökününikikikati fonksiyonu oluşturuyoruz ve lazım olan yerlerde bu fonksiyonu çağırarak içine
bu işlemi yapması için yazdığımız kodları çağırmış ve çağırdığımız yerde kullanmış oluyoruz.

Programlama dillerinde bizim oluşturmadığımız gömülü olan önceden tanımlı olan fonksiyonlar
vardır. Mesela type fonksiyonu veya print fonksiyonu gibi. Bu fonksiyonlar Python geliştiricileri
tarafından bizim kullanmamız için yazılmıştır. Ama tabii ki kendi fonksiyonlarımızı da oluşturarak
kullanabiliyoruz.

 Fonksiyon Oluşturma: Fonksiyon oluşturma yapısı:


def fonksiyon_ismi(parametre1, parametre2…..(parametreler opsiyoneldir)):
#Fonksiyon çağrıldığında yapılacak işlemler

..

# dönüş değeri (opsiyonel)

şeklindedir. Fonksiyon tanımlarken def sözcüğünü kullanıyoruz daha sonra fonksiyon ismi yazıyoruz
ve () parantezleri koyuyoruz.

Mesela yukarıdaki görselde çok basit bir fonksiyon oluşturulmuş. Fonksiyon bloğuna çağrıldığında
yapması istenilen işlemler yazılmış. Sonra da fonksiyon çağrılmış. Fonksiyonlar her zaman ()
parantezleriyle oluşturulur ve çağrılır.

 Parametreli Fonksiyonlar

Opsiyonel olarak eğer parametre almak istersek bu parantezler arasına yazmamız gerekiyor. Peki
parametre nedir? Ne işe yarar? Parametreler sadece o fonksiyon içinde kullanacağımız
değişkenlerdir. Parametrelerin fonksiyon çağrılırken oluşturulur ve değerleri fonksiyon çağrılırken ()
parantezleri içinde sırayla verilir. Yani oluştururken oluşturduğumuz sıraya göre çağırdığımızda da o
sırayla verilir. Eğer parametre tanımlamadıysak çağırdığımızda da () parantezler içine bir şey
yazmayız. Parametreler sayesinde fonksiyonlarımız kullandığımız yerlere göre değişik işlemler
yapabilir.
Fonksiyon parametre istemediği için çağrılırken parantezlere bir şey verilmez. Eğer verilirse hata
alınır. Çünkü fonksiyon parametre istemiyorken parametre veremezsiniz. Eğer parametre isterse ve
vermezseniz de hata döner.

Bu görselde ise parametre isteyen bir fonksiyon var. İlk önce fonksiyon içine parametre girilmeden
çağrılmış ve hata alınmış. Daha sonra parametre verilerek çağrılmış ve fonksiyon çalışmış. Fonksiyon
da aldığı parametreyi bloğunda kullanmış.

Yukarıdaki görselde ise birden fazla parametre verilmiş. Çağrıldığında fonksiyonun içine verdiğimiz
değerlerde sırayla tanımlanan parametrelere atanıyor. Yani fonksiyonu çağırıp içine yazdığımız ilk
değer tanımlı olan ilk parametreye, ikinci değer ise tanımlanan ikinci parametreye atanıyor.

o Default Değerli Parametre: Şuana kadarki parametreli fonksiyonlarımızda eğer


fonksiyon parametreli olarak tanımlandıysa fonksiyonu çağırırken içine istenilen
parametreyi vermemiz gerekliydi. Eğer vermezsek hata alırdık. Ama eğer
parametrelere default bir değer verirsek fonksiyonu çağırırken içine değer
verdiğimizde parametreye atanır. Eğer değer girmezsek de parametreye tanımlarken
verdiğimiz default değer atanır. Böylece parametrelere değer veremezsek de hata
alınmaz.

o Özel Olarak Parametreye Değer Atama: Birden fazla parametre alan bir fonksiyona
herhangi bir parametresine değer atayıp öbürlerine değer atamak istemiyorsak
istediğimiz parametreye özel olarak değer atayabiliriz. Bunu da o parametrenin ismini
yazarak atayacağımız değere eşitleyerek yapıyoruz.
o Esnek Sayıda Değerler (*args): Eğer bir fonksiyonu çağırırken içine istediğimiz kadar
değer vererek çalıştırmak istiyorsak bu yöntemi kullanmalıyız. Bunu yapabilmek için
fonksiyonu tanımlarken parantezine *parametre1 yazmamız gerekiyor. Bu şekilde
istediğimiz kadar değer göndeririz ve fonksiyonda gönderdiğimiz değerleri bir tuple
içine atar ve daha sonra da girdiğimiz bu parametreye atar.

o Esnek Sayıda İsimli Değerler (**kwargs): Yukarıdaki yöntemin aynısı ama burada
argümanlara isim vererek yolluyoruz ve istediğimiz kadar girdiğimiz bu isimli
argümanlar yani parametrelerde bir listede toplanıyor. Bunu yapabilmek için de
fonksiyon tanımlanırken parametre olarak **kwargs yazıyoruz.

 Değer Döndüren Fonksiyonlar

Fonksiyonlarla ilgili şuana kadar oluşturmayı, çağırmayı ve parametreli fonksiyon oluşturmayı ve


çağırmayı gördük.

Şimdide fonksiyonların değer döndürmesine bakacağız. Fonksiyon oluşturma formülünde opsiyonel


olarak dönüş değeri yazmıştık. Dönüş değerini return ifadesiyle yazarsak fonksiyon değer döndürür.
Böylece fonksiyon çağrıldığı yerde işlemlerini yaptıktan sonra değer götürür. Mesela aldığı
parametrelere toplama yapan bir fonksiyon yazdık ve toplam değerini de döndürdük. Sonrada bir
yerde çağırdık. Önce aldığı parametreleri toplar sonrada toplamı döndürerek çağrıldığı yere yani
isminin yazılı olan yere toplam değerini götürün. Böylece bu dönen değeri bir değişkene atayarak
saklayabilir ya da kullanabiliriz ve bu döndürme işlemini return ifadesiyle yapıyoruz. Ayrıca return
yazıldığında fonksiyon bloğu biter. Yani return altına yazdığınız ifadeler çalışmaz.
 Lambda İfadesi: Lambda ifadeleri fonksiyonlarımızı oluşturmak için kullandığımız pratik bir
yöntemdir.
Lambda yapısı
Etiket = lambda parametre1,parametre2.. : işlem
şeklindedir. Bu yapıyı kullanarak fonksiyon oluşturabiliriz. Bu yapıda önce bu yapıyı daha
sonra çağırarak kullanabilmek için bir etiket yani isim yazıyoruz. Sonra bu isme lambda
diyerek yanına çağrıldığında içine değerini vereceğimiz parametreler veriyoruz ve sonra:
ifadesi koyuyoruz. Bu ifadeden sonra yapmak istediğimiz işlemi yazıyoruz. : ifadesinden sonra
yazdığımız işlem direkt olarak döndürülüyor. Yani döndürmek için ek bir şey yazmıyoruz.
Böylece bir fonksiyon oluşmuş oluyor. Etiket ismini fonksiyon gibi çağırarak kullanabiliyoruz.

You might also like