İş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 ekliyoruz.
İ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.