Press "Enter" to skip to content

Fonksiyonlar

Yaşar SAFALI 0

Fonksiyonlar

Fonksiyonlar programın herhangi bir yerinde kullanılmak için tasarlanmış alt programlardır.Bir uygulama geliştirirken birden fazla yerde aynı kodlara başvurmamız gerekebilir.Fonksiyonlar tekrarı engellemek için bu kod bloklarını bir isim altında toplarlar.Programda çağrıldıkları zaman çalışmaya başlarlar. Fonksiyonlar diğer programlama dillerinde metotlar,prosedürler gibi isimlerle adlandırılır.

Fonksiyonların avantajları

  • Aynı kodları tekrar yazma zahmetinden kurtarır.
  • Yazılan kodların okunabilirliğini artırır
  • Aynı kodların birden fazla yerde kullanılmasını sağlar.

Şimdi Python’da fonksiyonları inceleyelim.

Fonksiyonların genel tanım kuralı şu şekildedir.

def fonksiyonadi() şeklinde tanımlanırlar.Fonksiyonlar isimlendirilirken Python’daki değişken isimlendirme kuralları aynen geçerlidir.

Şimdi ekrana Merhaba Dünya yazdıran bir fonksiyon tanımlayalım.

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

Fonksiyon tanımlandı. Fonksiyonun nerede çalışması isteniyorsa orada fonksiyonu çağırmak gerekir.Fonksiyonun çağrılması için ismini yazmak yeterlidir.

MerhabaYaz()

Fonksiyonlarda en önemli noktalardan birisi parametrelerdir.Önceki yazılarda print() den bahsederken bir fonksiyon olduğunu belirtmiştik.Dikkat edilirse bir fonksiyona parantez içerisinde parametre veya parametreler gönderilebilir.Peki fonksiyonlar oluşturulurken parametreler nasıl tanımlanır şimdi ona bakalım.

def Topla(sayi1,sayi2):
    print(sayi1+sayi2)

Yukarıdaki fonksiyon incelendiğinde sayi1 ve sayi2 adlı iki parametresi mevcuttur.Fonksiyon aldığı bu parametrelerin toplamını ekrana yazmaktadır.

  • Parametrelerde dikkat edilmesi gereken husus parametrelerin sırasıdır.Topla(5,3) diye çağrıldığında sayi1=5,sayi2=3 değerini alır.
  • Parametrelerin değerlerini bir biri ile karıştırmamak için Python programcılara Fonksiyonlara parametre verirken isimlendirme özelliği sağlamaktadır.Bu isimlendirme fonksiyonun tanımlanırken parametrelerine verilen isimlerdir.

Örnek

Topla(sayi2=3,sayi1=5)
  • Topla fonksiyonunun çağrıldığı her yerde mutlaka 2 tane parametresi verilmelidir.Verilmediği durumlarda fonksiyon çağrılamaz.Peki bu fonksiyon parametreleri verilmeden çağırılabilir mi?Bu gibi durumlar için Python’da varsayılan değer tanımlaması yapılır.Bu sayede fonksiyonlara parametre sayısından daha az parametreler verilebilir.print() fonksiyonu normalde teknik  olarak 256 adet parametreye sahiptir.(pratikte neredeyse sınırsız parametre alabilir)Ama tek parametre ile çağrılabilir.Sebebi diğer parametrelerinin varsayılan değerli olmasıdır. Örnek olarak
    def Topla(sayi1,sayi2=5):
        print(sayi1+sayi2)
    Topla(sayi2=5)

    Output:

    10

Görüldüğü gibi sayi2 parametresi fonksiyon çağrılırken verilmemiştir.Ama fonksiyon tanımlanırken varsayılan olarak 5 değeri verildiğinden sayi2 parametresi 5 olarak değer almıştır.

  • Fonksiyonlarda bazen parametre sayısı belirsiz olabilir.Python’da parametre sayınızın belirsiz olduğu durumlarda başvurabileceğiniz yöntem fonksiyon tanımlarken parametrenin başına * koymaktır. Bu sayede bütün parametreler bir demet içerisinde toplanır.Artık bu parametrelere erişebilmek bir demetin elemanına erişmekten farksızdır.
    def Topla(*parametreler):
        for i in parametreler:
            print(i)
        print(type(parametreler))
    Topla(1,2,3,4,"yazılımhanem")

    Output:

     

    1
    2
    3
    4
    yazılımhanem
    <class ‘tuple’>

* işareti ile birlikte kullanacağınız parametreye Python değişken adlandırma kurallarına uygun bütün isimlendirmeleri yapablirsiniz.Bu örnekte parametreler diye isimlendirildi.Python programcıları bu isimlemeyi genel olarak *args şeklinde yapmaktadırlar.Kod okunabilirliği açısından bu isimlendirme önemlidir.

def Topla(*args)

* işareti ile oluşturulan parametrelere çağrıldıkları yerde isim ile atama yapılamaz.İsim ile atama yapılabilen sayısız parametre oluşturmak için ** işareti kullanılır.** işareti ile oluşturulan parametreler sözlük içerisinde toplanırlar.Dikkat edilmesi gereken nokta bütün parametreler isimlendirilmelidirler.

def Yaz(**parametreler):

    print(parametreler)
    print(type(parametreler))
Yaz(sayi1=1,sayi2=2,sayi3=3,sayi4=4,kelime="yazılımhanem")

Output:

{‘sayi1’: 1, ‘sayi2’: 2, ‘sayi3’: 3, ‘sayi4’: 4, ‘kelime’: ‘yazılımhanem’}

<class ‘dict’>

** işareti ile olusturulan parametreleri Python programcıları **kwargs olarak isimlendirmişlerdir.

def Yaz(**kwargs)

 

Fonksiyonlarda Return

Return kelimesi geriye  döndermek olarak bilinir.Bir fonksiyonun çalıştıktan sonra herhangi bir değeri çağrıldığı yere göndermesini istiyorsak return deyimini kullanırız.Bu deyim geriye değer dönderdiği gibi kullanıldığı yerden itibaren fonksiyonu da geri dönderir.Yani return kullanıldıktan sonra derleyici fonksiyonun sonuna geldiğini düşünür ve o fonksiyondaki diğer kodları işlemez fonksiyondan çıkar.

 

def Topla(sayi1,sayi2):
    sonuc=sayi1+sayi2
    return sonuc
gelendeger=Topla(5,3)
print(gelendeger)

Output:

8

Yukarıdaki kod incelendiğinde biz Topla fonksiyonundan gelen sonuç değerini kullanabilmekteyiz.Python’da diğer programlama dillerinde olduğu gibi fonksiyonlar bütün veri tiplerinden değer dönderebilirler.

Şimdide değer döndermeden return komutunu kullanmaya bakalım.

def Yaz():
    print("Yazılım")
    return
    print("Hanem")
Yaz()

Output:

Yazılım

Görüldüğü gibi fonksiyon ekrana Yazılım yazdı ama Hanem değerini yazmadı.Sebebi derleyicinin return ifadesini gördükten sonra fonksiyonu bitti olarak algılaması yani fonksiyondan çıkmasıdır.

Bir sonraki yazımızda görüşmek dileğiyle.

Bir cevap yazın

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