- Katılım
- 21 Ocak 2024
- Mesajlar
- 164
- Tepkime puanı
- 36
- Puanları
- 28
Şimdiye kadar birçok yerleşik Python fonksiyonu gördük. Bu bölümde, özel fonksiyonlara odaklanacağız. Fonksiyon nedir? Fonksiyon yapmaya başlamadan önce, fonksiyonun ne olduğunu ve neden onlara ihtiyacımız olduğunu öğrenelim.
Program boyutunun artması, programın bakımını zorlaştırır ve bir programcı için daha az okunabilir ve anlaşılabilir hale gelir. Bu nedenle, kodun yeniden kullanımı programlamanın önemli bir parçasıdır. Tekrardan kaçınmak ve kodu yeniden kullanılabilir hale getirmek için, büyük bir program fonksiyon olarak bilinen daha küçük birimlere ayrılır.
Bir fonksiyon, belirli bir görevi yerine getiren bir grup ilgili ifadedir. Bu kod bloğu yalnızca çağrıldığında çalışır.
Python print(), map() vb. gibi birçok dahili fonksiyon sağlar, ancak bir kullanıcı kendi fonksiyonlarını da oluşturabilir. Bu fonksiyonlar kullanıcı tanımlı fonksiyonlar olarak bilinir.
Python'da Fonksiyon Tanımlama
Bir fonksiyon tanımlamak için syntax aşağıdaki gibidir:
Bir fonksiyon def anahtar sözcüğü ile başlar ve ardından fonksiyon adı, parantez ve iki nokta üst üste ile devam eder. Fonksiyon adı bir fonksiyonu benzersiz bir şekilde tanımlar ve fonksiyon isimlendirmesi Python'daki değişken yazma kurallarının aynısını izler.
Not: Fonksiyonun içindeki kodu girintilemeniz gerekir.
İşte bir örnek.
Çağrı Fonksiyonları
Fonksiyonlar sadece tanımlandıklarında çalıştırılmazlar. Fonksiyonun içindeki ifadeleri çalıştırmak için onları çağırmanız gerekir.
Bir fonksiyonu çağırmak için, fonksiyon adını ve ardından bir parantez kullanın.
Bu da aşağıdaki çıktıyla sonuçlanır:
Not: Bir fonksiyon ancak tanımlandıktan sonra çağrılabilir.
Fonksiyon Argümanları
Değerler fonksiyonlara argüman olarak aktarılabilir. Bağımsız değişkenler fonksiyon adından sonra, parantez içinde belirtilir. İstediğiniz kadar argüman ekleyebilirsiniz, bunları virgülle ayırmanız yeterlidir.
Bir örnek görelim.
Bu programda, fonksiyonun bir argümanı vardır ve fonksiyon çağrıldığında, bir ifadeyi yazdırmak için fonksiyon içinde kullanılan bir dize geçirilir. Çıktı şu şekilde olacaktır:
Bir fonksiyon doğru sayıda argümanla çağrılmalıdır. Eğer farklı sayıda argümanla çağırırsak, yorumlayıcı bir hata mesajı gösterecektir. Örneğin,
Bu program, fonksiyon iki argüman beklerken yalnızca bir argüman aldığı için bir hatayla sonuçlanır.
Arbitrary Argümanlar
Bazen, bir fonksiyona aktarılacak argüman sayısını önceden bilemeyiz. Bu tür durumlar, fonksiyon tanımında parametre adının önüne bir yıldız işareti (*) eklenerek ele alınabilir. Bu şekilde fonksiyon bir argüman demeti alır ve elemanlara uygun şekilde erişebilir.
Örnek:
Çıktı:
Keyword Argümanları
Bağımsız değişkenler anahtar=değer biçiminde de gönderilebilir.
Bu formatta, argümanların sırası önemli değildir. Çıktı şöyle olacaktır:
Varsayılan Bağımsız Değişkenler
Varsayılan değerler, atama operatörü(=) kullanılarak bir fonksiyon argümanına sağlanabilir. Fonksiyon bir argüman olmadan çağrılırsa, fonksiyon varsayılan değeri kullanır. İşte bir örnek,
Not: Bir fonksiyondaki herhangi bir sayıda argüman varsayılan değere sahip olabilir. Ancak bir kez varsayılan bir argümanımız olduğunda, sağındaki tüm argümanlar da varsayılan değerlere sahip olmalıdır. Bu, varsayılan olmayan argümanların varsayılan argümanları takip edemeyeceği anlamına gelir. Örneğin, bir fonksiyon başlığını şu şekilde tanımlamış olsaydık:
Bir hata ile sonuçlanacaktır:
Bir diziyi bağımsız değişken olarak geçirme
Herhangi bir veri türü (liste, sayı, dize, sözlük, vb.) bir işleve gönderilebilir ve işlev içinde aynı veri türü olarak ele alınacaktır. İşte bir listeyi argüman olarak geçirmenin bir örneği:
Program bir çıktı verir:
Geri Dönüş İbaresi
Bir fonksiyondan bir değer döndürmek için return deyimini kullanabilirsiniz. Örnekler
Fonksiyon iki sayının toplamını döndürür ve yazdırılır. Böylece çıktı şöyle olur:
Program bir sayının tek mi çift mi olduğunu kontrol eder. Çıktı şöyle olacaktır:
Geçiş Bildirimi
Python'da fonksiyon tanımı boş olamaz. Ancak, bazı nedenlerden dolayı, işlev gövdesi olmayan bir işlev tanımı istiyorsanız, pass deyimini koyabilirsiniz, böylece bir hata oluşturmaz.
Python Anonim/ Lambda Fonksiyonu
Python'da anonim fonksiyon, isimsiz olarak tanımlanan bir fonksiyondur. Python'da normal fonksiyonlar def anahtar sözcüğü kullanılarak tanımlanırken, anonim fonksiyonlar lambda anahtar sözcüğü kullanılarak tanımlanır.
Bir lambda fonksiyonu aşağıdaki sözdizimine sahiptir:
Lambda işlevlerinin herhangi bir sayıda bağımsız değişkeni olabilir ancak yalnızca bir ifadesi olabilir. İfade değerlendirilir ve döndürülür.
İşte bazı örnekler:
Bağımsız değişken olarak geçirilen değeri üçe katlayan ve sonucu yazdıran bir lambda işlevi.
Çıktı:
Üç sayıyı çarpan ve sonuçlarını yazdıran bir lambda işlevi.
Çıktı:
Bu nedenle Lambda fonksiyonları, kısa bir süre için isimsiz bir fonksiyona ihtiyaç duyduğumuzda kullanılır.
Program boyutunun artması, programın bakımını zorlaştırır ve bir programcı için daha az okunabilir ve anlaşılabilir hale gelir. Bu nedenle, kodun yeniden kullanımı programlamanın önemli bir parçasıdır. Tekrardan kaçınmak ve kodu yeniden kullanılabilir hale getirmek için, büyük bir program fonksiyon olarak bilinen daha küçük birimlere ayrılır.
Bir fonksiyon, belirli bir görevi yerine getiren bir grup ilgili ifadedir. Bu kod bloğu yalnızca çağrıldığında çalışır.
Python print(), map() vb. gibi birçok dahili fonksiyon sağlar, ancak bir kullanıcı kendi fonksiyonlarını da oluşturabilir. Bu fonksiyonlar kullanıcı tanımlı fonksiyonlar olarak bilinir.
Python'da Fonksiyon Tanımlama
Bir fonksiyon tanımlamak için syntax aşağıdaki gibidir:
Python:
def function-name(): //function header
statements //function body
Bir fonksiyon def anahtar sözcüğü ile başlar ve ardından fonksiyon adı, parantez ve iki nokta üst üste ile devam eder. Fonksiyon adı bir fonksiyonu benzersiz bir şekilde tanımlar ve fonksiyon isimlendirmesi Python'daki değişken yazma kurallarının aynısını izler.
Not: Fonksiyonun içindeki kodu girintilemeniz gerekir.
İşte bir örnek.
Python:
def my_function():
print(“Python fonksiyonlarını öğreniyorum. Python öğrenmek eğlenceli.”)
Çağrı Fonksiyonları
Fonksiyonlar sadece tanımlandıklarında çalıştırılmazlar. Fonksiyonun içindeki ifadeleri çalıştırmak için onları çağırmanız gerekir.
Bir fonksiyonu çağırmak için, fonksiyon adını ve ardından bir parantez kullanın.
Python:
def my_function():
print(“Python fonksiyonlarını öğreniyorum. Python öğrenmek eğlenceli!”)my_function() //function call
Bu da aşağıdaki çıktıyla sonuçlanır:
Python fonksiyonlarını öğreniyorum. Python öğrenmek eğlenceli!
Not: Bir fonksiyon ancak tanımlandıktan sonra çağrılabilir.
Fonksiyon Argümanları
Değerler fonksiyonlara argüman olarak aktarılabilir. Bağımsız değişkenler fonksiyon adından sonra, parantez içinde belirtilir. İstediğiniz kadar argüman ekleyebilirsiniz, bunları virgülle ayırmanız yeterlidir.
Bir örnek görelim.
Python:
def my_function(name):
print(“Hey! I’m ” + name)my_function(“Okan”)
Bu programda, fonksiyonun bir argümanı vardır ve fonksiyon çağrıldığında, bir ifadeyi yazdırmak için fonksiyon içinde kullanılan bir dize geçirilir. Çıktı şu şekilde olacaktır:
Hey! I’m Okan
Bir fonksiyon doğru sayıda argümanla çağrılmalıdır. Eğer farklı sayıda argümanla çağırırsak, yorumlayıcı bir hata mesajı gösterecektir. Örneğin,
Python:
def my_function(firstname, lastname):
print(“Hey! I’m ” + firstname + “ ” + lastname)my_function(“Okan”)
Bu program, fonksiyon iki argüman beklerken yalnızca bir argüman aldığı için bir hatayla sonuçlanır.
TypeError: my_function() missing 1 required positional argument: ‘lastname’
Arbitrary Argümanlar
Bazen, bir fonksiyona aktarılacak argüman sayısını önceden bilemeyiz. Bu tür durumlar, fonksiyon tanımında parametre adının önüne bir yıldız işareti (*) eklenerek ele alınabilir. Bu şekilde fonksiyon bir argüman demeti alır ve elemanlara uygun şekilde erişebilir.
Örnek:
Python:
def my_function(*fruits):
print(“My favourite fruit is ” + fruits[2])my_function(‘Banana’, ‘Watermelon’, ‘Orange’, ‘Grape’)
Çıktı:
My favourite fruit is Orange
Keyword Argümanları
Bağımsız değişkenler anahtar=değer biçiminde de gönderilebilir.
Python:
def my_function(fruit4, fruit2, fruit3, fruit1):
print(“My favourite fruit is ” + fruit4)my_function(fruit1 = ‘Mango’, fruit2 = ‘Apple’, fruit3 = ‘Cherry’, fruit4 = ‘Pear’)
Bu formatta, argümanların sırası önemli değildir. Çıktı şöyle olacaktır:
My favourite fruit is Pear
Varsayılan Bağımsız Değişkenler
Varsayılan değerler, atama operatörü(=) kullanılarak bir fonksiyon argümanına sağlanabilir. Fonksiyon bir argüman olmadan çağrılırsa, fonksiyon varsayılan değeri kullanır. İşte bir örnek,
Python:
def my_function(a = 7):
print(“The value of the variable a is ” + a)my_function(9)
//A value is provided, so it will overwrite the default value.my_function()
// The value is not provided, so the default value will be used inside the function.
Not: Bir fonksiyondaki herhangi bir sayıda argüman varsayılan değere sahip olabilir. Ancak bir kez varsayılan bir argümanımız olduğunda, sağındaki tüm argümanlar da varsayılan değerlere sahip olmalıdır. Bu, varsayılan olmayan argümanların varsayılan argümanları takip edemeyeceği anlamına gelir. Örneğin, bir fonksiyon başlığını şu şekilde tanımlamış olsaydık:
Python:
def my_function(a = 7, b):
Bir hata ile sonuçlanacaktır:
SyntaxError: non-default argument follows default argument
Bir diziyi bağımsız değişken olarak geçirme
Herhangi bir veri türü (liste, sayı, dize, sözlük, vb.) bir işleve gönderilebilir ve işlev içinde aynı veri türü olarak ele alınacaktır. İşte bir listeyi argüman olarak geçirmenin bir örneği:
Python:
def my_function(numbers):
for x in numbers:
print(x)my_list = [10, 20, 30, 40, 50]
my_function(my_list)
//The list ‘my_list’ is passed as an argument to my_function.
Program bir çıktı verir:
10
20
30
40
50
Geri Dönüş İbaresi
Bir fonksiyondan bir değer döndürmek için return deyimini kullanabilirsiniz. Örnekler
Python:
def my_function(num):
return 100 + numprint(my_function(90))
Fonksiyon iki sayının toplamını döndürür ve yazdırılır. Böylece çıktı şöyle olur:
Python:
def even_nums(a):
if(a%2==0):
return “Even”
else:
return “Odd”number = 10
result = even_nums(number)
print(result)
Program bir sayının tek mi çift mi olduğunu kontrol eder. Çıktı şöyle olacaktır:
Geçiş Bildirimi
Python'da fonksiyon tanımı boş olamaz. Ancak, bazı nedenlerden dolayı, işlev gövdesi olmayan bir işlev tanımı istiyorsanız, pass deyimini koyabilirsiniz, böylece bir hata oluşturmaz.
Python:
def my_function():
pass
Python Anonim/ Lambda Fonksiyonu
Python'da anonim fonksiyon, isimsiz olarak tanımlanan bir fonksiyondur. Python'da normal fonksiyonlar def anahtar sözcüğü kullanılarak tanımlanırken, anonim fonksiyonlar lambda anahtar sözcüğü kullanılarak tanımlanır.
Bir lambda fonksiyonu aşağıdaki sözdizimine sahiptir:
Python:
lambda arguments: expression
Lambda işlevlerinin herhangi bir sayıda bağımsız değişkeni olabilir ancak yalnızca bir ifadesi olabilir. İfade değerlendirilir ve döndürülür.
İşte bazı örnekler:
Bağımsız değişken olarak geçirilen değeri üçe katlayan ve sonucu yazdıran bir lambda işlevi.
Python:
x = lambda num : num * 3
print(x(100))
Çıktı:
Üç sayıyı çarpan ve sonuçlarını yazdıran bir lambda işlevi.
Python:
product = lambda x, y, z : x*y*z
print(product(1*2*3)
Çıktı:
Bu nedenle Lambda fonksiyonları, kısa bir süre için isimsiz bir fonksiyona ihtiyaç duyduğumuzda kullanılır.