24 Ağustos 2014 Pazar

Fonksiyonlarla İlgili Birkaç Deyim

Herkese Merhabalar,

Geçen hafta fonksiyonların ne kadar önemli olduğundan ve fonksiyonların genel yapısından bahsetmiştim. Fonksiyonların bizler için ne kadar önemli olduğunu artık daha iyi biliyoruz. Bu hafta size fonksiyonlarla ilgili 3 deyimden bahsedeceğim. Bunlar global deyimi, return deyimi ve pass deyimi. return deyiminden gecen yazımda biraz bahsetmiştim ama şimdi daha detaylı anlatmaya başlayacağım.

global Deyimi


Fonksiyon içindeki bir değere fonksiyon dışından ulaşamayız. Global deyimi kullanarak aslında bu mümkündür. Bunu bir örnek ile açıklamak daha iyi olacaktır.
def fonk():
    isim = "Osman"
    print isim
fonk()
Bu fonksiyonu yazıp çalıştırdığınızda çıktısı şu şekilde olacaktır.
>>>
Osman
Bu şekilde isim değişkeninin neye eşit olduğunu görebiliyoruz fakat fonksiyon dışında isim değişkenini yazdırmaya çalışırsak ne oluyor?

 def fonk():
    isim = "Osman"
    print isim
fonk()
print isim
Bu kodu yazıp çalıştırdığınızda çıktısı şu şekilde olacaktır.
>>>
Osman
Traceback (most recent call last):
  File "C:\Users\osman\Desktop\DENEME (2).py", line 6, in <module>
    print isim
NameError: name 'isim' is not defined
Bu hata bize isim diye bir değişkenin olmadığını söylüyor. Birde şöyle deneyelim o zaman.
def fonk():
    isim = "Osman"
    print isim
fonk()
isim = "Turkyilmaz"
print isim
Bu kodu yazıp çalıştırdığınızda çıktısı şu şekilde olacaktır.
>>>
Osman
Turkyilmaz
İsimi fonksiyon dışında Turkyilmaz olarak tanımladığımız için artık foksiyon dışında isim değeri Turkyilmaz olarak geçiyor. Osman yazısı ise fonksiyon içindeki isimin değeridir. Son olarak bir de şu kodumuzu yazıp deneyelim.
def fonk():
    global isim
    isim = "Osman"
    print isim
fonk()
print isim
Bu kodu yazıp çalıştırdığınızda çıktısı şu şekilde olacaktır.


>>>
Osman
Osman

Burada isim değişkenini fonksiyon içinde global olarak tanımladık. Bu şekilde artık isim değişkenine fonksiyon dışından da ulaşabilir hale geldik. Bu kullanım işimizi çok kolaylaştırsa da yinede kullanırken çok dikkatli olmak gerekir. Özellikle uzun kodlarda değişken adı bulmakta zorlanırsanız bu  deyim sizi biraz zorlayabilir.

return Deyimi


Return kelimesinin Türkçe’ de anlamı “vermek, döndürmek, iade etmek” anlamına gelmektedir. Yani bize istediğimiz şeyi döndürüyor. Peki, bu ne demek?

Döndürmek aslında bir işlemin sonucu olarak çıkan değeri vermek anlamına gelmektedir. Aslında kaba bir tabir ile fonksiyonlarda print komutunun yerini return alıyor diyebiliriz. Bunu bir örnek ile anlatmak daha iyi olacaktır.


def fonk():
    isim = "Osman"
    print isim
Burada herhangi bir değer döndürmedik. Sadece isim değerini ekrana yazdırmaya çalıştık. Bir de yukarıdaki fonksiyonu şu şekilde çağıralım.


def fonk():
    isim = "Osman"
    print isim
print fonk()
Bu kodu yazıp çalıştırdığınızda çıktısı şu şekilde olacaktır.


>>>
Osman
None
Burada gördüğümüz “None” değeri, fonk() adlı fonksiyonumuzun otomatik olarak döndürdüğü değerdir. Yukarıdaki fonksiyonu print olmadan da çağırabiliriz ve o zaman “None” yazısını görmezsiniz. Son olarak bir de şu kodu yazıp deneyelim.


def fonk():
    isim = "Osman"
    return isim
fonk()
Bu kodu yazıp çalıştırdığınızda ekranda bir şey göremeyeceğiz çünkü ekrana yazdırmak için print komutunu kullanmadık ama fonksiyonu çağırırken başına print yazarsanız isim değişkeninin değerini görebilirsiniz.

Peki, return ve print arasındaki fark nedir? Print sadece ekrana yazdırma işlemi yaparken return ile elde ettiğiniz veriden ne yapacağınız size kalmış. Yani return ettiğiniz şeyi başka yerde ulanabilirsiniz.

Pass Deyimi


“Pass” kelimesi Türkçe’de” geçmek, aşmak” gibi anlamlara gelir. Python’da ise bu deyim herhangi bir işlem yapmadan geçeceğimiz durumlarda kullanılır. Bir örnek ile anlatırsak daha iyi olacaktır.


def deneme():
    while True:
        isim = raw_input("Giriniz: ")
        if isim == "Osman":
            print "Turkyilmaz"
        else:
            pass
deneme()
Bu kodu yazdığımızda biden bir şey girmemizi isteyecek. Eğer girdiğiniz şey Osman ise ekrana Turkyilmaz yazdıracak ama başka bir şey yazarsanız hiçbir şey yapmayacak tekrar bir şey girmenizi isteyecektir. Bir fonksiyon yazdığınızda gövdesini boş bırakamazsınız. Bu yüzden fonksiyonun adını yazdıktan sonra gövdesine pass deyimini yazabilirsiniz.

Bu haftalık anlatacaklarım bu kadar. Bir dahaki yazımda buluşmak dileğiyle.

Bilgi paylaştıkça güzelleşir. Paylaşarak öğrenmek dileğiyle.


Osman

Hiç yorum yok:

Yorum Gönderme