PYTHON FUNCTIONS

##PYTHON FONKSİYONLARI: YENİDEN KULLANILABİLİRLİK VE CLEAN CODE

Python fonksiyonları yazılan kodları organize etmek ve yeniden kullanılabilirliğini artırmak için çok önemli bir rol oynar. Complex kod blokları ve sistemler arasında daha kolay gezinmeyi sağlamakla birlikte clean code denilen hem hata ayıklamayı (debugging) hem de hata fırlatmayı kolaylaştırır. Yazdığımız kodları daha yönetilebilir hale getirir.

## PYTHON FONKSİYONU NEDİR?

Python’da fonksiyonlar, birlikte çağırılabilen ve birbiriyle ilişkili kod blokları, gruplarıdır. Tipik olarak istediğiniz ve görevlendirdiğiniz bir görevi yerine getirebilir, bir dizi parametre alabilir, almayabilir veya “return” kullanımı ile bir değer döndürür(returning). Fonksiyonlar herhangi bir yerde tanımlanabilir ve dilediğiniz başka bir yerde çalıştırılabilir veya çağırılabilir ki bu ikisi çok farklı şeyler değildir ancak iki tür söylemi de kullanmak ve bilmek gerekir. Bu, yazdığımız kodun yukarıda da bahsettiğim gibi hem daha modüler hem de daha anlaşılabilir olmasını ve temiz görünmesini sağlar. Ayrıca aynı fonksiyon birden fazla kez veya birden fazla yerde tekrar tekrar çalıştırılabilir, çağırılabilir. Fonksiyonların bu özelliği kod bloklarımıza ve yazdığımız kodlara işlevsellik ve kullanılabilirlik katar. Ancak bir fonksiyonu tanımlarken de bazı parametrelere dikkat etmek gerekir. 

krafttechnologie-1695051116542.png

Bir fonksiyon Python kullanarak bu şekilde tanımlanır. Yukarıda solda gördüğümüz kod bloğunun Output değeri yani çıktısı sağdaki fotoğraf gibidir. “return” bloğu yanında belirttiğimiz değeri(string, boolean, number ve diğer veri tipleri) geri döndürür yani return eder. Tıpkı print fonksiyonu ile istediğimiz bir değeri ekrana yazdırabildiğimiz gibi fonksiyon bloğu içinde de bunu “return” ile yapmamız mümkündür. 

## PYTHON FONKSİYONLARININ AVANTAJLARI

- Yeniden Kullanılabilirlik : Fonksiyonlar, kodu çoğaltmadan yeniden kullanmamızı sağlar. Bir fonksiyon tamamlandıktan sonra farklı input değerleri veya farklı parametreler ile birden çok kez çağırılabilir ve kullanılabilir. Bu özellik de kodumuzu daha verimli ve sürekli hale getirir. (Clean Code)

- Modülerlik(Modularity): Complex görevleri daha küçük parçalara yani fonksiyonlara bölerek daha iyi bir kod organizasyonu elde edebiliriz. Her fonksiyon bu complex görevler içinde kendi görevli oldukları parçaları çalıştırır, daha organize ve daha az karışık bir kod elde ederiz. Ayrıca bu yapılan modülerite işlemi daha kolay Hata Ayıklama’yı(Debugging) sağlar.

- Soyutlama(Abstraction): Fonksiyonlar bir soyutlama katmanı sağlayarak uygulama ayrıntılarını gizler ve bunları kara kutu olarak kullanmamıza olanak tanır. İç işleyişi hakkında endişelenmeden sadece bir fonksiyonun ne yaptığını ve nasıl kullanılacağını bilmemiz gerekir.

- Okunabilirlik(Readability): Net ve temiz şekilde açıklanmış ve yazılmış fonksiyonlar kodun okunabilirliğini önemli derecede artırabilir. Fonksiyonlar, bağımsız kod blokları olarak hareket ederler ve açık kaynak projelerde diğer geliştiricilerin bu projeleri anlamasını ve projeye katkı yapmalarını kolaylaştırır.

## PYTHON FONKSİYONLARI NASIL KULLANILIR?

Python’da bir fonksiyon tanımlamak için aşağıdaki talimatları sırasıyla takip etmeniz gerekir:

1. **Fonksiyon Tanımı**: Fonksiyonun adını ve gerekli argümanları belirterek ‘def’ ‘keyword’ünü de kullanarak fonksiyonu tanımlayın.

krafttechnologie-1695051904971.png

2. **Fonksiyonu Çağırma**: Fonksiyonu, adını ve ardından parantezleri kullanarak çağırın. Gerekli argümanları (eğer varsa ki biz bu örnekte args kullanmayacağız.) parantezlerin içine aktarın. 

krafttechnologie-1695052114826.png

3. **Fonksiyonu ‘return’ Etme: Fonksiyonun bir geri dönüş ifadesi varsa, örneğin ‘greetings’ adında kullanıcıları selamlayan bir fonksiyon yazıyorsak bu selamlama işlemini ekrana fonksiyon kod bloğu içinde “return” ile geri döndürebiliriz(ekrana yazdırabiliriz).

krafttechnologie-1695052129113.png

**Şimdi ise birlikte Fonksiyon kullanımı için birkaç örnek modül yazalım.

** İçine yazacağımız değerin karesini aldıran bir fonksiyon yazalım.

1. Öncelikle Python gibi programlama dillerini kullanırken yazacağımız kod öncesinde bunun bir algoritmasını yaratalım:

1.1 Öncelikle ‘def’ anahtar kelimesini kullanarak ‘square’ isimli fonksiyonumuzu oluşturalım.

1.2 Ardından oluşturduğumuz fonksiyonun içine önce kullanıcıdan bir değer isteyelim.

1.3 Aldığımız bu değer Python’ın varsayılan input girdisi olan “String” tipinde olacaktır. Bu string değeri kullanabilmek adına ‘integer’a dönüştürelim.

1.4 Dönüştürme işlemi de tamamlandıktan sonra asıl önemli kısım olan bu aldığımız sayının karesini alma işlemini gerçekleştirelim. (Örneğin, aldığımız değer a olsun. Bu değerinin karesini almak için birçok farklı yol izleyebiliriz.)

1. Yol: Python’da bulunan Math modülünü aktif ederek üs aldıran fonksiyon olan ‘math.pow() ‘ u kullanabiliriz.

2. Yol: Aldığımız değer a olsun demiştik. 2. Yol: olarak da bu a değerini return ile geri döndürerek return (a ** 2) bu şekilde tanımlayabiliriz.

1.5 Ve son adım olarak da fonksiyonumuzu çağırarak işlemimizi tamamlarız. 

krafttechnologie-1695052140159.png

Yukarıda da gördüğümüz üzere fonksiyonların nasıl tanımlandığını, nasıl kullanıldığını ve ne işe yaradıklarını kavramış olduk.

**SONUÇ**

Python Fonksiyonları, yazdığımız kodları düzenlemek ve yeniden kullanmak için güçlü bir araçtır. Modülerliği, yeniden kullanılabilirliği, soyutlanabilirliği ve okunmayı kolaylaştırmasıyla daha sürdürülebilir ve okunabilir bir kod yazmayısağlar. ‘Clean Code’ dediğimiz temiz ve kolay işlenebilir kod için Python Fonksiyonları önemli bir araçtır. Python projelerinize fonksiyonları dahil ederek verimliliği, başka insanlarla açık kaynak projelerinde işbirliği yapmayı ve yazdığınız kodun kalitesini artırabilirsiniz.

SHOW MUST CODE ON !

HAZIRLAYAN: Bartu Akdoğan