‫İşlevler hakkında konuşmanın zamanı geldi.
‫İşlerin gerçekten ilginçleştiği yer burası çünkü şimdiye kadar külçe listelemek gibi yazdırma
‫gibi şeylerin yazıldığı fonksiyonlar gördük.
‫Kullanıcının yazdığı her şeyin girdisini almak için input işlevini bile gördük ve bunlar veri türlerimiz üzerinde eylemler
‫gerçekleştirmemize izin verdi.
‫Ancak gerçek güç, kendi işlevlerimizi yaratmaya başladığımızda ortaya çıkar.
‫Bu doğru.
‫Python'un bize verdiği şeylerle sınırlı değiliz.
‫Kendi fonksiyonlarımızı oluşturabilir ve bunları programlarımızda kullanabiliriz.
‫Öyleyse bunu nasıl yapacağımızı öğrenelim.
‫Python'da bir fonksiyon oluşturma şeklimiz ve bu arada fonksiyonlar tüm programlama dillerinde mevcuttur.
‫Çok ama çok önemlidirler.
‫Eğer de f yaparsak bu python yorumlayıcısına bir fonksiyon tanımlamak üzere olduğumuzu bildirir.
‫Def, define kelimesinin kısaltmasıdır.
‫Yani yorumlayıcı diyecek ki, tamam, bir fonksiyon tanımlamak üzereler.
‫İşlev ne olacak?
‫İstediğimiz her şeyi yaratabiliriz.
‫Fonksiyonlarımızı tanımlamak için değişkenlerle yaptığımız aynı adlandırma durumunu kullanırız.
‫Şimdi tekrar bir fonksiyon oluşturalım.
‫Adını Merhaba De koyacağız.
‫Sadece benim yarattığım bir değişken.
‫Ancak bu sefer bir fonksiyon çünkü burada def anahtar kelimesini kullanıyoruz ve merhaba diyoruz.
‫Ayrıca, yorumlayıcıya bunun üzerinde işlem yapacağımız bir şey olduğunu veya bunun bir veri türü üzerinde
‫bir eylem gerçekleştireceğini bildirmek için parantezler ekleriz.
‫İki nokta üst üste kullanıyoruz ve ardından bu kod bloğu içinde print diyebiliyoruz.
‫Merhaba.
‫Ve bu bir işlevdir.
‫Çalıştır'a tıklarsam.
‫Hmm.
‫Hiçbir şey olmadı.
‫Nedenmiş o?
‫Pekala, say hello fonksiyonunu yarattık, tanımladık ve şimdi makinemizin hafızasında bir yerlerde
‫yaşıyor.
‫Ancak, bir fonksiyonu kullanmak için, tıpkı print fonksiyonunu kullandığımız gibi, onu parantezlerle çağırmamız gerektiğini
‫unutmayın.
‫Yani bir fonksiyon tanımladıktan sonra merhaba diyoruz.
‫Ve nasıl dalgalandığımı fark ettin mi?
‫Söylediğim anda.
‫Aslında bana merhaba de komutunu veriyor çünkü onu ben yarattım.
‫Ve bunun bir fonksiyon olduğunu gösteren mor kutuyu görüyor musunuz?
‫Tıpkı yazdırma işlevini kullanabildiğimiz gibi, artık bunu da kullanabiliyoruz.
‫Yani merhaba dersem ve parantezlerle çalıştırırsam ve çalıştır'a tıklarsam.
‫Anladım.
‫Alo?
‫Ne kadar havalı değil mi?
‫Bu arada, parantezler olmadan çalıştırırsam ve çalıştır'a tıklarsam ne olur?
‫Hiçbir şey olmaz, çünkü unutmayın, bir eylemde bulunabilmemiz için tercümana haber vermemiz gerekir.
‫Hey, koşmak istiyorum.
‫Merhaba de.
‫Fonksiyonların bu kadar güçlü olmasının nedeni, bahsettiğimiz prensiptir.
‫Doğru.
‫Kendini tekrar etme anlamına gelen DRI fikri.
‫Fonksiyonlar, tekrar tekrar yapmak istediğiniz şeyler olduğunda gerçekten çok kullanışlıdır.
‫Örneğin, yazdırma işlevini çok kullandık.
‫Bunu her seferinde kendimiz kodlamak ve print fonksiyonunun ne işe yaradığını söylemek zorunda kaldığımızı düşünün.
‫Neyse ki, Python bize bir baskı veriyor çünkü çok kullanışlı bir araç.
‫Ancak programımızda birden çok kez merhaba demek istiyorsak ve bunun aslında çok daha karmaşık olduğunu hayal
‫edebilirsiniz, belki on satır kod.
‫Bu on satırlık kodu tekrar tekrar yazmak yerine, bunu bir fonksiyon olarak tanımlayabilir ve programımda
‫istediğim yerde kullanabilirim.
‫Örneğin, bir resmimizin olduğu ve bir Noel ağacı bastığımız yeri hatırlayın.
‫Bunu birden fazla kez çalıştırmak istediğimizi düşünün.
‫Bunu yapmak için bu kodu kopyalayıp yapıştıracağım.
‫Ve sonra tekrar ekleyin.
‫Ve eğer Çalıştır'a tıklarsam.
‫Artık iki Noel ağacım var, ama bu 26 satırlık bir kod.
‫Aynı şeyi bir fonksiyonla tekrar tekrar kopyalayıp yapıştırdım.
‫Şöyle bir şey yapabiliriz.
‫Söyleyebilirim.
‫Gösteriyi tanımla.
‫Ağaç.
‫Colin ve şimdi bir fonksiyonumuz var.
‫Ama Python'daki girintileri hatırlıyorsunuz, değil mi?
‫Girinti önemlidir.
‫Noktalı virgül var, bir fonksiyon tanımlıyoruz.
‫Bu yüzden içeride şu kod bloğunu oluşturmamız gerekir: hey, burada girintili olan her neyse, bu işlevin bir
‫parçasıdır.
‫Artık gösteri ağacımız olduğuna göre, şuna bir bakın.
‫Ağacı göster, tekrar çalıştır diyebilirim.
‫Belki üç kez çalıştıralım.
‫Çalıştır'a tıklarsam.
‫Ne kadar havalı değil mi?
‫Sadece bu fonksiyonu çağırarak aynı şeyi tekrar tekrar yapabiliyorum.
‫İşte bu da fonksiyonların gücüdür.
‫Fonksiyonlar kodumuzu kuru tutmamızı sağlar.
‫Kendimizi tekrarlamıyoruz ve makinelerimizin yapabileceği şeyleri tekrar tekrar kullanmıyoruz.
‫İşin güzel tarafı da bunun bizim için bir anı olarak kalması.
‫Yani Tree artık bu program için bir anlam ifade ediyor çünkü onu biz yarattık.
‫Bu yüzden yapabileceğimiz kendi özel eylemimiz var.
‫Şimdi, taşınırsam ne olur?
‫Ağacı burada yukarıya doğru göster.
‫Eğer bunu çalıştırırsam.
‫Bir hava ismi alacağım.
‫Onun adı.
‫Gösteri ağacı tanımlanmamıştır.
‫Nedenmiş o?
‫Çünkü yorumlayıcımız satır satır ilerliyor.
‫İlk olarak, tamam, resim bu değere eşittir der.
‫Sonra 11. satıra gidiyor ve "Çalıştır, ağacı göster" diyor.
‫Ancak henüz show tree'yi tanımlamadık, bu yüzden Python yorumlayıcısı hata verecek ve şöyle diyecek: Hey, show tree'nin
‫ne olduğu hakkında hiçbir fikrim yok.
‫Sen neden bahsediyorsun?
‫Bunun yerine, bir fonksiyonla, fonksiyonları başlangıçta tanımladığımızdan emin olmamız gerekir.
‫Python yorumlayıcısı şöyle der: Pekala.
‫Ağaç göstermek artık bu anlama geliyor.
‫Onu çalıştırmayacağım.
‫Henüz kullanmayacağım.
‫Sadece hafızamda tutacağım.
‫Ve sonunda Show Tree'ye rastladığımda, bunun bir anlamı olduğunu bileceğim.
‫Show tree kullanarak bellekten alacağım ve sonra parantezleri kullanarak çalıştıracağım.
‫Örneğin, hiçbir şey olmadan, parantezler olmadan show tree yazdırırsam, çalıştır'a tıklarsam.
‫Gördüğünüz gibi bu konumda ağaç gösterme fonksiyonum var.
‫Bu sadece bellekteki konumdur.
‫Burası gösteri ağacı işlevini sakladığımız kitaplık.
‫Çok, çok havalı.
‫Ve fonksiyonlar programlamada önemli ve güçlü bir kavramdır.
‫Bir sonraki videoda bunu biraz daha genişletecek ve inceleyeceğiz.
‫Bir sonrakinde görüşürüz.