Python Fonksiyonlar

  • Konbuyu başlatan Konbuyu başlatan Hüseyin
  • Başlangıç tarihi Başlangıç tarihi

Hüseyin

Üye
Top Poster Of Month
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:

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:


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:

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.
 
Geri
Üst