Site Loader

Merhaba Arkadaşlar, bu hafta sizlerle beraber  Python Fonksiyonlar  konusunu işleyeceğiz. Fazlasıyla eğlenceli bir o kadarda zorlu gelebilir. Kesinlikle şimdiden belirtiyorum korkulacak kadar zor değil neden başta söylüyorum çünkü birçok programlama dilinde genelde öğrenenler küçük bir zorluk gördü mü yapamıyorum deyip kaçıyor siz bugüne kadar çabaladınız buradan sonra bırakmanızı istemem.

Python Fonksiyonlar

Şimdi ben fonksiyon dediğim zaman aklınızda bu zamana kadar kullandığımız print() fonksiyonu illaki gelecektir. Gerçekten de fonksiyonları ilk dersimizden bu yana kullanıyoruz ki fonksiyon denince aklınıza ilk bu fonksiyonun gelmesi gayet doğal.

Tabi ki kullandığımız tek fonksiyon print() fonksiyonu değildi. Bunun yanı sıra type(), str(), int() gibi birçok fonksiyon kullanmıştık. Bunlarda farklı birçok fonksiyon gördük şuan verdiklerim sadece aklınızda canlandırmanız için örnek verdim.

Biz şimdiye dek karşılaştığımız print(), len(), str() ve open gibi örnekler sayesinde ‘fonksiyon’ denen şeyi az çok tanıdığımızı söyleyebiliriz. Dolayısıyla fonksiyonun ne demek olduğunu şeklen de olsa biliyoruz ve hatta fonksiyonları kodlarımız içinde etkili bir şekilde kullanabiliyoruz.

Fonksiyonlara Genel Bakış

  • Her fonksiyonun bir adı bulunur ve fonksiyonlar sahip oldukları bu adlarla anılır. (print fonksiyonu str fonksiyonu vb.)
  • Şekil olarak, her fonksiyonun isminin yanında birer parantez işareti bulunur. ( len(), open(), vb.)
  • Her fonksiyon parantezleri içerisinde parametreler alabilir bu fonksiyona işlevsellik katacaktır.(fonksiyonadı(dosya_adı),len(“Adınız”))
  • Her Fonksiyon farklı sayıda parametreler vardır bunlar dilersiniz ki sonsuz sayıda parametre almazlar.(print()-256 alabilir bunun yanı sıra input() ise tek bir parametre alıyor.)
  • Fonksiyonların isimli ve isimsiz parametreleri vardır.  Print() fonksiyonundaki sep ,end ve file parametreleri isimli parametrelere örnek iken, mesela print(“Merhaba pythonearth ailesi”) kodunda Merhaba Dünya! parametresi isimsiz bir parametredir. Aynı şekilde input(“Yaşınızı Giriniz: “) gibi bir kodda Adınız: parametresi isimsiz bir parametredir.

Fonksiyonlar Nedir?

“Fonksiyonların görevi, karmaşık işlemleri bir araya toplayarak, bu işlemleri tek adımda yapmamızı sağlamaktır. Fonksiyonlar çoğu zaman, yapmak istediğimiz işlemler için bir şablon vazifesi görür. Fonksiyonları kullanarak, bir veya birkaç adımdan oluşan işlemleri tek bir isim altında toplayabiliriz. Python’da ki ‘fonksiyon’ kavramı başka programlama dillerinde ‘rutin’ veya ‘prosedür’ olarak adlandırılır. Gerçekten de fonksiyonlar rutin olarak tekrar edilen görevleri veya prosedürleri tek bir ad/çatı altında toplayan araçlardır.“-alıntıdır. Çok güzel bir açıklama olduğu için alıntıladım daha iyi kafanızda oturması için

Dilerseniz kendi fonksiyonumuzu yazalım.

def kayıtol(adi, soyadi):
    print("-"*30)

    print("Adı           : ", adı)
    print("soyadi       : ", soyadi)

    print("-"*30)

Burada kayıtol isminde bir fonksiyon tanımladık. Fonksiyonlar def deyimi ile başlar ve hemen sonrasında fonksiyonun adı yazılır daha sonra parantez acıp içine parametre yazmak istersek virgülle ayırırız.

Bizim fonksiyonumuz 2 parametre alıyor bunlar kullanıcıdan gelen parametreler olacak. Daha sonra alt kısımda işlemlere zaten aşinasınız. Fonksiyonu çalıştırmak istersen fonksiyonun dışına çıkarak fonksiyonu çağırıp parametrelerini vermek olacak.

kayıtol("Sadık","Ortaoğlan")
kayıtol("cahit","işleyen")
kayıtol("tuğba","karacak")

bu değerleri fonksiyonumuza verdiğimizde kodumuzun çıktısı şu şekil olacaktır. Yalnız kodlarınızın def fonksiyonun altında hizalı bir şekilde olması gerekiyor bunu yaptıktan sonra bir fonksiyon ile birden fazla kişiyi tek satırlık kod ile kayıt edebilirsiniz.

Tabi ki bunlar size karmaşık geliyor olabilir. Konunun başında da dediğim gibi endişelenecek bir şey yok inanın size birçok kolaylık sağlayacaktır fonksiyonlar. Şimdi bu kodu incelemenizi istiyorum.

  • def ile başlamış
  • kayıtol diye bir isim verilmiş fonksiyona
  • parantezin içinde parametreler var kullanıcıdan istediğimiz
  • def ile başlayan satır iki noktadan sonra artık alt satırdan devam ediyor
  • ilk satırdan biraz girintili yazılmış ve buna fazlasıyla aşinasınız.
  • Son olarak çalıştırmak için kayıtol(“Sadık “,”ortaoğlan”) satırdan girintisiz yazılımış son satırdaki kod parçaçığı.

Eğer bu kodlara dikkatlice bakacak olursanız, aslında bu kodların topu topu iki parçadan oluştuğunu göreceksiniz. İsterseniz yukarıdaki yapıyı biraz sadeleştirelim:

def kayıtol(parametre1, parametre2, parametre3, parametre4):
    (...)

kayıtol(parametre1, parametre2, parametre3, parametre4)

Burada iki parça kod var ilk parça kod:

def kayıtol(parametre1, parametre2, parametre3, parametre4):
    (...)

İkinci parça ise şu:

kayıtol(parametre1, parametre2, parametre3, parametre4)

Bu iki parçayı açıklayalım şimdi.

İlk parçadaki “fonksiyon tanımı”(function,definition),ikinci parçada ise “fonksiyon çağrısı”(function call )adı verilir. Yani bu durumda fonksiyonun yaşam döngüsü iki aşamadan oluşuyor.

 

Fonksiyonların Yapısı

Dilerseniz fonksiyonun yapısından bahsedelim. Böylelikle ile karşı karşıyayız onu zihnimizde canlandırmak için

Dedik ki, bir fonksiyonun ilk parçasına ‘fonksiyon tanımı’ (function definition) adı verilir. Bir fonksiyonu tanımlamak için def adlı bir parçacıktan yararlanıyoruz.

def fonksiyon_adi():
    (...)

Burada def parçacığı, tanımladığımız şeyin bir fonksiyon olduğunu gösteriyor fonksiyon_adi ifadesi ise tanımladığımız bu fonksiyonun adıdır. Fonksiyonu tanımladıktan sonra, çağırırken bu adı kullanacağız.

def fonksiyon_adi: ifadesinin sonundaki iki nokta işaretinden de tahmin edebileceğiniz gibi, sonraki satıra yazacağımız kodlar girintili olacak. örneğin:

def Merhaba():
    print("Merhaba Dünya!")

Yukarıda  Mehaba() adlı bir fonksiyon tanımlamış olduk. Bu fonksiyonun görevi ekrana Merhaba Dünya! çıktısı vermektir.

Fonksiyonlar Ne İşe Yarar

Şimdiye kadar anlattıklarımızdan aslında fonksiyon ne işe yarar sorusuna cevap veriyor olmalısınız. Tabi ki biz yine de fonksiyonun avantajlarından bahsedeceğiz.

O zaman bir örnek üzerinden ilerleyelim.

sayi=3
deger=f"{sayi} sayısının karesi: {sayi**2} "

Eğe bu kodu çalıştırırsak çıktısı bu şekilde olur.

3 sayısının karesi: 9

Şimdilik kodumuz çok güzel çalışıyor hiçbir sorunumuz yok peki ya bu kodu 3 farklı yerde kullanmanız gerek desem ne olur kısa bir kod parçası hemen yazarım diye söylediğinizi duyar gibiyim 🙂

Peki ben bunu 100 faklı yerde ve aynı kodu kullanmak istesem tek tek yazmam mi gerek kesinlikle hayır böyle düşünüyorsanız hemen bırakın o düşünceyi.

Şimdi aklınıza gelmesi gereken düşünce yukarıda size anlattığım fonksiyonlar olması gerekiyor yani hem kod tekrarını engellemiş oluyorum hem okunaklığını artırıyorum hem fazladan kod yazmıyorum. Bu arada 2 satırlık kod üzerinde örnek verdim bu 20 30 satırlık veya daha fazla uzun bir parçacığında oluşabilirdi 🙂

Evet ne demiştik fonksiyonlar bize çok fazla kolaylık sağlayacak 🙂

def karebul():
    sayi=3 
    deger=f"{sayi} sayısının karesi: {sayi**2} "
    print(deger)

bu şekilde fonksiyonumuzu yazarak olayı daha basite indirgeye biliriz.

Ve burada fonksiyonu çağıralım:

kareal()

son olarak görüntümüz şu şekilde :

def karebul():
    sayi=3 
    deger=f"{sayi} sayısının karesi: {sayi**2} "
    print(deger)

kare_bul()

Çalıştırdığımızda bize aynı sonucu dönecektir.

kareal() fonksiyonunu istediğiniz yerde kullanabilirsiniz ve bahsettiğimiz o 100 yerde sadece karaal() çağırmamız yetecektir.

Fonksiyonlar 2-4 dersten oluşacak ondan parça parça anlatacağım sıkılmamanız için

Pythonearh.com   İle Python Eğitim serisinin bu dersinde sizlerle Python Fonksiyonlar kavramını gördük. Anlamadığınız noktalar veya eksik gördüğünüz yerleri belirte bilirsiniz umarım yararlı bir ders olmuştur. Bir sonraki dersimizde Python fonksiyonlar üzerine devam edeceğiz. Görüşmek üzere

Sağlıcakla 🙂

Tüm Python Dersleri

 

Post Author: Sadık Ortaoglan

computer enginering

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir