Merhaba Python Fonksiyonlar konusunu okuyan ziyaretçi! :)

Önceki yazımda For ve While hakkında bilgiler vermiştim. Bu yazımda Fonksiyonlar konusunu anlatacağım.

Fonksiyonlar, programların okunabilirliğini artırır ve modüler olmasını sağlar.
Örneğin bir işlemi, bir kaç kez farklı değerler ile çalıştırmaya ihtiyaç duyabiliriz. Böyle bir durumda aynı kodu tekrar tekrar yazmak yerine, fonksiyon olarak tanımlayıp ihtiyaç duyulduğunda çalıştırırız. Örnekler üzerinde daha iyi anlayacağını düşünüyorum.

Bir Python dosyası oluştur ve yazıyı okumaya devam et ;)


Python'da bir fonksiyon oluşturmak için def kullanırız. Aşağıdaki satırı bir inceleyiver.
def ilk():
    print ('dersler.hackeradana.org')
Yeşil renkli ilk yazısı fonksiyonumuzun adı. if, for, while de kullandığımız gibi burada da girinti kullanıyoruz. İlk fonksiyonumuzu oluşturduk, şimdi işleri arap saçına dönderelim.
def ilk():
    isim = input('ismin nedir?')
    print ('Senin ismin şuymuş:', isim)

ilk()
Yukarıda satırı incelediğinde input() ile kullanıcıdan ismini almışım ve print() ile ekrana yazdırmışım. En alt satırda ise ilk() ibaresini görüyorsun. Bu ilk() ibaresi, fonksiyonumuzu çalıştırmamızı sağlıyor. Bunu eklemediğinde çıktı boş dönecek, çünkü fonksiyonlar çağrılmadan çalışmazlar :)


Parantezlerin neden orada olduğunu, yada neden boş olduğunu merak ettin mi? Etmediysen, bilemedim. Ettiysen geldik parantez içine ;)
def ilk(nerelisin):
    print ('Sen şuralısın:', nerelisin)

nerelisin = input('Nerelisin? ')
ilk(nerelisin)
O parantez, fonksiyon içine değer aktarmamızı sağlıyor. Kodu inceleyelim.

Fonksiyon isminin yanında parantez içinde nerelisin yazıyor. input() satırına dikkat ettiğinde nerelisin değişkenini göreceksin. nerelisin bir değişken ismi. Alt satırında fonksiyonumuzu çalıştırdın ve fonksiyonun çalışması için ihtiyaç duyan değişkeni belirttin.

Bu koda göre, ilk() fonksiyonu çalışmak için nerelisin değişkenine ihtiyaç duyuyor. İhtiyaç duyduğu değişkeni, fonksiyon oluştururken parantez içinde belirttik. Son satıra geldiğimizde, aha bu değişken sana lazım olacak, bunu al anlamına gelen argümanı ekledik, parantez içine eklediklerimizi argüman olarak adlandırıyoruz.

Bu kodda nerelisin değişkeni şart'tı. nerelisin değişkeni olmadan çalışmayacak. Dene istersen :)


Şimdi Türkçe kaynaklarda pek fazla bulamayacağın, hiç söz edilmeyen bir kaç husustan bahsedeceğim. Öncelikle yukarıdaki örnekten şunu anlamalısın ki, print(), type(), format() gibi önceki yazılarımda bahsedip kullandığımız komutlar, birer fonksiyondur ve bu fonksiyonlara değer verdiğimizde, yukarıdaki gibi bir fonksiyonu çalıştırırız :)

Örnek üzerinde devam edelim.
def deger(deger=1):
   print ('Varsayılan değer:', deger)

deger()
Burada farklı olarak deger(deger=1) argümanını görüyorsun. Çalıştırdığında çıktı Varsayılan değer 1 olacaktır.

Bu, şu demek; "Sen değer belirtmediğin sürece deger değişkeni 1'dir. ". Fonksiyonu çağırdığımız satırı deger(3) şeklinde değiştirdiğimde çıktı, Varsayılan değer 3 olacaktır.

Şu satırı yorumla bakalım. Ama öğrenmek istiyorsan incelemeden açıklamasına bakma ;)
def adres(yazar, yil, site='dersler.hackeradana.org'):
   print ('-'* 30)
   print ('Şuradasınız:', site)
   print ('Şu yıldasınız:', yil)
   print ('Ve yazarınız bu:', yazar)
   print ('-'* 30)

adres('anarsist', '2018')
Bu satırda ilk dikkat etmen gereken yer, değer atadığım site değerini en sona eklemem. Diğer satırlarda ise zaten bilmediğin bir şey yok ;)

İlk iki argüman zorunlu olduğu için eklemediğinde hata alacaksın.


Takıldığın yeri sormayı, öğrendiğini tekrarlamayı, sürekli kodlamayı ve yazıyı paylaşmayı unutma! :)
Sonraki yazımda görüşmek ümidiyle! :)