Python'da Fonksiyonlar

by trustix


Eklenme Tarihi : 20 Aralık 2020 19:30 Views:     326



Python'da Fonksiyon Nedir?

Fonksiyon, temel olarak belirlenmiş bir iş için yazılmış kod veya kod bloklarıdır. Bir fonksiyon bir amaç için yazılır. Yazıldıktan sonra programın herhangi bir yerinde birden çok kez kullanılabilir.

Tanımlanmış bir fonksiyonun çalıştırılması için yazılmasına "fonksiyon çağırma" denir. Bir fonksiyon tanımlandığı zaman çalışmaz. Fonksiyonun çalışması için çağrılması zorunludur. Bir fonksiyonun bir program veya programlama süreci içerisinde defalarca çağrılması mümkündür. Fonksiyon çağrılmadığı sürece bellekte bir kullanım alanı oluşmaz.

 

Python'da Fonksiyon Türleri

Python programlama dili geliştiricilere temel olarak üç farklı fonksiyon türü kullanımına izin vermektedir. Bu fonksiyon türlerinden ilki print(), len(),  enumerate() gibi  Python programlama dilinin kendi parçası olan ve "gömülü/yerleşik fonksiyonlar" olarak adlandırılan türüdür. İkincisi kullanıcı ya da geliştiricilerin tanımladıkları ve bir amaç için kullandıkları, "kullanıcı tanımlı fonksiyonlar" olarak adlandırılan türüdür. Üçüncüsü ise yine kullanıcıların tanımladıkları ancak tanımlarken def anahtar kelimesini kullanmadıkları için "lambda fonksiyonları" olarak adlandırılan türüdür.

 

Python'da Kullanıcı Tanımlı Fonksiyonlar Neden Kullanılır?

  • Kodlanan bir programın kontrol edilebilir modüllere bölünmesi sağlar.
  • Bir kodun yazılmasını, yönetilmesini, hata ayıklamasını kolaylaştırır.
  • Sadece çağırma ile birkez yazılan kodun istenildiği kadar kullanılmasını sağlar.
  • Değiştirilmesi zor olduğu için çok geliştiricili projelerde her geliştiricinin farklı bir fonksiyon aracılığı ile kendi modüllerini diğerlerini değiştirmeden yazmasına olanak verir.

 

Python'da Fonksiyon Nasıl Tanımlanır?

Python'da fonksiyonlar def   anahtar kelimesi ile tanımlanırlar. Örneğin:

# Python'da Fonksiyon Tanımlama

"""
    Python'da fonksiyonlar buradaki örnekte olduğu gibi
    def anahtar kelimesi ile tanımlanır. Daha sonra
    fonksiyon adı ve sonrasında ise parantezler kullanılır.
    En nihayetinde ise iki nokta(:) ile bitirilirler.
    Fonksiyonlar çağrılmadıkları sürece çalışmamaktadırlar.
"""

def fonksiyon_1():
    message = 'Merhaba Sayın Seyirciler'
    print(message)

 

 

Yukarıda çok temel bir örnek kullanarak bir fonksiyon tanımlamış olduk. Ancak bu fonksiyonu henüz çağırmadığımız için herhangi bir işlem yapmamakta ve çıktı boş olmaktadır.

Python'da Fonksiyon Çağırma

# Python'da Fonksiyon Çağırma

"""
    Bir önceki örneğimizde tanımladığımız
    fonksiyonu burada çağıralım.
"""

def fonksiyon_1():
    message = 'Merhaba Sayın Seyirciler'
    print(message)

fonksiyon_1()

# Output: Merhaba Sayın Seyirciler

 

Python'da Fonksiyonların Kapsamı

Python programlamada kullanıcı tarafından tanımlanmış bir fonksiyon iki farklı kapsama sahip olabilir. Bunlardan biri global kapsam diğeri ise local kapsam dır. Global olarak tanımlanmış bir fonksiyon yazılan programın her aşamasında işlevseldir ve her an çağrılabilir. Local kapsamda tanımlanmış bir fonksiyon ise sadece local olarak tanımlandığı kod bloğu içinde işlevseldir.

Python'da Local Kapsam

# Python'da Local Kapsam

"""
    Python'da bir fonksiyon içinde tanımlanmış bir değişkene
    dışarıdan erişmek mümkün değildir. Buradaki örnekte olduğu
    gibi hata döndürür. Ancak fonksiyonun kendisi çağrıldığında
    çalışacaktır.
"""


def fonksiyon_2():
    a = 'Merhaba'
    print(a)

fonksiyon_2()
# Output : Merhaba



print(a)

"""
    Output:
        Traceback (most recent call last):
      File "test.py", line 10, in <module>
        print(a)
    NameError: name 'a' is not defined

"""

 

Python'da Global Kapsam

# Python'da Global  Kapsam

"""
    Ancak buradaki örnekte olduğu gibi
    fonksiyon içerisinde kullanılacak olan
    değişken fonksiyon dışında tanımlanırsa
    global özelliğinde olmuş olacaktır.
    Dolayısı ile fonksiyon dışından değişkene
    ulaşılabildiği gibi fonksiyonun kendisi de
    sorunsuz çalışmaktadır.
"""

a = 'Merhaba'

def fonksiyon_3():

    print(a)

fonksiyon_3()
# Output : Merhaba

print(a)
# Output: Merhaba

 

 

Buradaki durumlar dışında fonksiyon içinde tanımlanmış bir değişkene fonksiyon dışından ulaşmakta mümkündür. Bunun için değişken fonksiyon içinde tanımlanırken global anahtar kelimesi kullanılmaktadır. Örneğin:

# Python'da Global  Kapsam

"""
    global anahtar kelimesi kullanıldığında 
    fonksiyon içerisindeki değişkene
    fonksiyon dışından erişilebilir.
"""



def fonksiyon_4():
    global text
    text = 'Merhaba'
    print(text)

fonksiyon_4()
# Output: Merhaba
print(text)
# Output: Merhaba

 

 

 

Python'da Kullanıcı Tarafından Tanımlanmış Bir Fonksiyonu Silme

# Python'da Fonksiyon Silme

"""
    Buradaki örneğimizde daha önceki örneklere benzer
    bir 'Merhaba' mesajı çıktılayan bir fonksiyon
    tanımladık. Daha sonra fonksiyonumuzu çağırıyoruz.
    Konsolda Merhaba metni çıkıyor. Sonrasında ise
    del anahtar ifadesi ile parantezleri kullanmadan
    fonksiyonu siliyoruz.
    Sildikten sonra tekrar çağırıyoruz ve böyle bir 
    fonksiyonun olmadığına dair hata ile karşılaşıyoruz.
"""



def fonksiyon_5():
    print('Merhaba')

fonksiyon_5()
# Output : Merhaba
del fonksiyon_5


fonksiyon_5()
"""
    Output: 
    
        Traceback (most recent call last):
      File "test.py", line 17, in <module>
        fonksiyon_5()
    NameError: name 'fonksiyon_5' is not defined

"""
  

 

 

Python'da Lambda Fonksiyonları

Lamda fonksiyonları kullanıcı tarafından tanımlanan ancak tanımlanırken def anahtar kelimesi kullanılmayan yapı olarak list comprehension yapısını andıran fonksiyonlardır.

# Python'da Lambda Fonksiyonu

"""
    Tanımladığımı değişkene lambda fonksiyonu ile
    bir işlem dizisi uyguluyoruz. result_1 adındaki
    fonksiyonumuz kendisine parametre olarak
    verilecek sayılarının karelerini hesaplayacak
    daha sonra bu karelerin çarpımını hesaplayacak son olarak ise
    çıkan sonucun tekrar karesini alarak sonucu döndürecektir.
    Buradaki örnekte olduğu gibi def anahtar kelimesi kullanılmamaktadır.
    Fonksiyon çağrılırken parametreler belirtilebilir.
    Fonksiyonu çağırırken 5 ve 6 sayılarını
    parametre değerleri olarak belirtiyoruz.

"""

result_1 = lambda x, y: (x**2 * y**2)**2
print(result_1(5,6))

# Output: 810000
  

 

 

Python'da Rekürsif Fonksiyonlar

Rekürsif fonksiyonlar diğer adı ile özyinelemeli fonksiyonlardır. Bu fonksiyonlar kendi kendilerinin çağırmak biçiminde belirtilen şekilde sonuca ulaşırlar. Rekürsif fonksiyonlarda kullanılan temel örnek faktöriyel örneğidir.

# Python'da Rekürsif Fonksiyonlar

"""
    Faktöriyel kavramı pozitif tamsayılar
    kümesinde tanımlı bir değerin
    1'den kendisine kadar olan sayıların çarpımı şeklinde
    ifade edilmektedir. Rekürsif fonksiyon ise kendi
    kendini çağıran fonksiyon demektir. Fonksiyon
    kendisine parametre olarak verilecek değeri almakta
    daha sonra bu sayısı bir eksilterek kendisi ile çarpmaktadır.
    Her defasında fonksiyon kendisini tekrar çağıracaktır.
    En nihayetinde çarpılacak sayı bir olduğunda fonksiyon
    sonucu döndürecektir. Aşağıdaki faktöriyel
    örneğini inceleyerek rekürsif fonksiyonları
    daha iyi almak mümkündür.
"""




def faktoriyel (x) :
  if x == 1  :
    return 1
  return x * faktoriyel (x-1)

print(faktoriyel(17))
# Output: 355687428096000
  

 

 

Python programalama dilinde fonksiyonlar çok önemli ve detaylı bir bölümdür. Fonksiyonlar bütün özelliklerini ve kullanım şekillerini tek bir makalede incelemek mümkün olmayacaktır. Burada temel olarak Python'da fonksiyon nasıl tanımlanır, kaç fonksiyon türü vardır, fonksiyonlarda kapsama alanları nasıl çalışmaktadır gibi sorulara özet şeklinde cevaplar aramaya çalıştık. Fonksiyonlar bölümünün her alt başlığı ayrı bir inceleme konusudur. Dolayısı ile ileride daha detaylı bir şekilde her alt başlığı ayrı ayrı incelemeye çalışacağız.

def message():
    ileti = 'Herkese İyi Kodlamalar'
    print(ileti)

message()
  

 





0

Yorum Formu

vikikod.com    © 2019