Python'da Fonksiyon Parametreleri ve Argümanları ()

Python'da Fonksiyon Parametreleri ve Argümanları ()

Python dilinde fonksiyon parametreleri ve argümanları hakkında bilgi edinmek ister misiniz? Bu makale size detaylı bir kılavuz sunuyor! Parametre ve argümanların nasıl tanımlandığını, farklı türleri ve örnek kullanımlarını öğrenmek için hemen okumaya başlayın Python programlama dilinde uzmanlaşmak isteyen herkes için faydalı bir kaynak!

Python'da Fonksiyon Parametreleri ve Argümanları ()

Python'da fonksiyonlar, bir işlevi yerine getiren birimlerdir. Fonksiyonlar, bilgi işlem projelerinde büyük ölçüde kullanılan bir Python yapı taşıdır. Fonksiyonların tanımlanması ve kullanımı, Python dilinin anahtar decidersindendir.

Fonksiyonlar, tekrar kullanılabilir ve modüler bir kod yazmanın en iyi yoludur. Fonksiyonlar, özellikle büyük çaplı projelerde kodlama işlemlerini yönetmek için kullanılır. Ayrıca, fonksiyonlar sayesinde Python programlama dili, diğer programlama dillerinin yazılım süreçleriyle karşılaştırıldığında daha okunaklı, anlaşılır ve hata ayıklama yapmak daha kolaydır.

Fonksiyonlar, parametreler ve argümanlar kullanarak süreç boyunca çeşitli bilgi türlerini aktarabilirler. Python'da fonksiyon parametreleri, işlevin işleyişini düzenlemek için kullanılır. Parametreler, işlevlere başvururken aldığımız değerlerdir. Fonksiyon argümanları, çağrıda verilen değerlerdir. Fonksiyonlar argümanlar aracılığıyla çalıştırılırken parametreler, fonksiyonların belirli değerler almasına yardımcı olur.

Bu parametreler çeşitli tiplerde belirlenebilir. Fonksiyonlar, pozisyonel veya anahtar kelime argümanları kullanarak çağrıldığında, bu parametrelerin kullanım özellikleri değişebilir. Her parametre, farklı bir fonksiyon yapı taşıdır ve farklı kullanım özelliklerine sahiptir.

Parametre Türü Kullanım Özelliği
Pozisyonel Parametreler Varsayılan değerler (default values) ve fonksiyon içindeki sıralama
Anahtar Kelimeli Argümanlar Parametreler anahtar kelime kullanılarak belirlenir
Varsayılan Değerler Bir parametrenin varsayılan bir değeri vardır

Fonksiyonlar, bu parametreleri kullanarak, belirli bir bilgi türü alarak, ideal çalışma koşullarında çalışır.


Pozisyonel Parametreler

Python dilinde, fonksiyonlarda belirtilen parametrelerin sıralı olarak atanması pozisyonel (varsayılan) parametreler olarak adlandırılır. Bu parametreler, fonksiyonun çağrılması sırasında sıralı bir şekilde atanır. Bu sayede fonksiyonun çalışması sağlanır. Pozisyonel parametreler, varsayılan değerlerle de kullanılabilir, böylece bir parametrenin atanması zorunlu olmayabilir.

Örneğin aşağıdaki fonksiyon, pozisyonel parametrelerin kullanımını gösterir:

Fonksiyon Açıklama
def isme_gore_selam_ver(ad, soyad):    print("Merhaba", ad, soyad)
Ad ve soyad parametreleri pozisyonel olarak atanır.

Eğer bu fonksiyonu çağırırken parametreleri pozisyonlarına uygun şekilde belirtmezseniz, hata alırsınız:

Fonksiyon Çağrısı Çıktı
isme_gore_selam_ver("Jane")
TypeError: isme_gore_selam_ver() missing 1 required positional argument: 'soyad'

Fonksiyon çağrısı sırasında eksik parametre verilmesi sorunu, varsayılan değerler kullanılarak çözülebilir.

Aşağıdaki örnek, varsayılan değerlerin kullanımını gösterir:

Fonksiyon Açıklama
def isme_gore_selam_ver(ad, soyad="Smith"):    print("Merhaba", ad, soyad)
Soyad parametresine varsayılan değer atanır.

Böylece, soyad parametresi belirtilmezse varsayılan değer kullanılır:

Fonksiyon Çağrısı Çıktı
isme_gore_selam_ver("Jane")
Merhaba Jane Smith

Soyad parametresi belirtilmişse, belirtilen değer kullanılır:

Fonksiyon Çağrısı Çıktı
isme_gore_selam_ver("Jane", "Doe")
Merhaba Jane Doe

Python, pozisyonel parametrelerin esnek kullanımına izin verir, böylece fonksiyonlar değişken sayıda parametreleri işleyebilir.


Varsayılan Değerler

Python'da fonksiyonlar, bir eylem veya işlev gerçekleştirmek üzere kullanılan bloklar halinde yazılabilir. Fonksiyonlar, parametreler ve argümanlar gibi özellikler ile birlikte tanımlanır. Varsayılan değerler de, Python'da fonksiyonların önemli bir parçasıdır.

Varsayılan değerler, bir parametrenin geçerli olmadığı durumlar için ataşe edilen değerlerdir. Fonksiyonların belirli bir parametresine verilen değer, kullanıcının bir değer sağlamadığı durumlarda varsayılan olarak atanır. Bu, genellikle işlem hızını artıran bir özelliktir. Varsayılan değerler, fonksiyonlar üzerinde daha fazla kontrol sağlar ve geliştirme sürecini kolaylaştırır.

Python'da varsayılan değerler, parametrelerin tanımı sırasında belirtilebilir. Örneğin:

Fonksiyon Adı Açıklama
def area_of_rectangle(length, width=6): Bir dikdörtgenin alanını hesaplar
  • Yukarıdaki örnekte, genişlik parametresine bir varsayılan değer atandı.
  • Bu, boyut parametresini belirtmek isteyen kullanıcıların hem uzunluğu hem de genişliği belirtebileceği anlamına gelir.
  • Ancak, sadece uzunluğu belirten kullanıcılar için 6 birim genişlik varsayılır.

Sonuç olarak, varsayılan değerler, Python'da fonksiyonların belirlenmesi ve kullanımı için önemlidir. İşlevselliği artıran ve hızlı geliştirme sürecini sağlayan birçok özellik sunarlar.


Zorunlu Parametreler

Zorunlu parametreler, bir fonksiyonun minimum parametre sayısını ifade eder. Bir fonksiyonun kaç adet parametreye ihtiyaç duyacağına karar vermek, fonksiyonun işlevselliği için oldukça önemlidir. Zorunlu parametreler, fonksiyonun gerekli işlemleri yapabilmesi için en temel gerekliliklerdir.

Örneğin, bir matematiksel işlemi gerçekleştiren fonksiyon bir sayı almalıdır. Bu sayı zorunlu parametre olarak tanımlanır. Eğer kullanıcı fonksiyonu sayı olmadan çalıştırmaya kalkarsa, hata mesajı alacaktır.

Zorunlu Parametreler Örneği Kod Çıktı
Bir sayının karesini alan fonksiyon
def kare_al(sayi):    return sayi ** 2kare_al()
TypeError: kare_al() missing 1 required positional argument: 'sayi'
Aralarındaki çarpımı hesaplayan fonksiyon
def carpim_bul(sayi_1, sayi_2):    return sayi_1 * sayi_2carpim_bul(5)
TypeError: carpim_bul() missing 1 required positional argument: 'sayi_2'

Zorunlu parametreleri doldurmak için kullanıcıların, fonksiyonu çağırırken bu parametreleri girmesi gerekir. Aksi takdirde, hata mesajı alınacaktır.

Zorunlu parametreler, fonksiyonların olmazsa olmazlarıdır. Bir fonksiyonun ne iş yapacağına göre belirlenir ve fonksiyonun doğru çalışabilmesi için her zaman hatırlanması gereken bir konudur.


Argümanların Kullanımı

Argümanlar, fonksiyonların kullanımı açısından oldukça önemli bir yer tutar. Python'da argümanlar, fonksiyonlara iletilen değerlerdir. Bu değerler, fonksiyon içerisinde kullanılabilmektedir. Fonksiyonlar, argümanlar sayesinde daha esnek bir kullanım sunar. Python'da argümanların tanımlama yöntemleri ve kullanım örnekleri aşağıda verilmiştir.

Anahtar kelime argümanları, isimle belirtilen argümanlardır. Bu argümanlar, fonksiyon içerisinde daha okunaklı bir kullanım sağlar. Anahtar kelime argümanları, pozisyonlarına göre sıralanmak zorunda değildir. Ayrıca, zorunlu olmayan argümanlar olarak da tanımlanabilir. Aşağıdaki örnekte anahtar kelime argümanlarının kullanımı gösterilmektedir.

```def selamla(isim, yas): print("Merhaba, benim adım " + isim + " ve " + str(yas) + " yaşındayım.")

selamla(isim="Ahmet", yas=25)```

Pozisyonel argümanlar, sıralı bir şekilde belirtilen argümanlardır. Bu argümanlar, fonksiyon içerisinde belirtildiği sıraya göre kullanılmalıdır. Pozisyonel argümanlar, zorunlu argümanlar olarak da adlandırılabilir. Aşağıdaki örnekte pozisyonel argümanların kullanımı gösterilmektedir.

```def topla(a, b, c): return a + b + c

print(topla(1, 2, 3))```

Args ve kwargs, Python'da fonksiyonlarda parametre sayısını değiştirmek için kullanılan özelliklerdir.

Args, tuple olarak belirtilmiş argümanlardır. Fonksiyona iletilen argümanların sayısının değişken olması durumunda kullanılır. Aşağıdaki örnekte args kullanımı gösterilmektedir.

```def topla(*args): toplam = 0 for sayi in args: toplam += sayi return toplam

print(topla(1, 2, 3))print(topla(1, 2, 3, 4, 5))```

Kwargs, sözlük olarak belirtilmiş anahtar kelime argümanlarıdır. Fonksiyona iletilen argümanların değişken olması durumunda kullanılır. Aşağıdaki örnekte kwargs kullanımı gösterilmektedir.

```def selamla(**kwargs): if kwargs is not None: for key, value in kwargs.items(): print("{} = {}".format(key, value))

selamla(isim="Ahmet", yas=25)selamla(isim="Merve", yas=22, sehir="İstanbul")```


Anahtar Kelimeli Argümanlar

Python'da anahtar kelime argümanları, fonksiyonlara gönderilen argümanların anahtar kelime değerleri aracılığıyla tanımlandığı argümanlardır. Bu sayede fonksiyon çağrılırken argümanların sırasına dikkat etmek yerine, anahtar kelimeye göre sıralama yapmak mümkündür. Böylece, fonksiyonlarda istenilen parametrelere değer atanması daha doğru ve anlaşılır hale gelir.

Aşağıdaki örnek, 'adi' ve 'soyadi' parametrelerine isim ve soyisim değerlerini anahtar kelime argümanları kullanarak gönderir:

def personel_bilgisi(adi, soyadi):    print(f"Adı: {adi}")    print(f"Soyadı: {soyadi}")    personel_bilgisi(adi="Ali", soyadi="Yılmaz")

Bu kod bloğu sonucunda, 'Adı: Ali' ve 'Soyadı: Yılmaz' çıktısı alınır. Ancak parametre sıralamasının yanlış girilmesi durumunda, hatalar oluşabilir. Anahtar kelime argümanları kullanımı, bu hataların önüne geçerek fonksiyonların doğru çalışmasını sağlar.


Pozisyonel Argümanlar

Python programlama dili ile fonksiyonlarda kullanılan pozisyonel argümanlar, argümanların sırasına göre fonksiyonların çağrılması anlamına gelir. Bu nedenle, pozisyonel argümanlar her zaman fonksiyonun başlangıcında yer alır.

Örneğin, bir fonksiyonun içindeki argümanlarda 3 parametre bulunmaktadır - sayı1, sayı2 ve sayı3. Çağrıldığında bu fonksiyon, önce sayı1 parametresini, ardından sayı2'yi ve en son olarak sayı3'ü alacaktır. Ancak, pozisyonel argümanların sırasını değiştirmek mümkün değildir, yani önce sayı2'yi çağırmak mümkün değildir.

Pozisyonel argümanların kullanımı hakkında daha açıklayıcı bir örnek sunmak gerekirse, bir üçgenin kenar uzunluklarını hesaplayan bir fonksiyon düşünelim. Bu fonksiyon, üç tam sayı parametresi alır: a, b ve c, ve üçgenin türünü çıktı olarak verir.

Örneğin, pozisyonel argümanlar kullanılarak şu şekilde tanımlanabilir: ```def ucgen_turu(a,b,c): if a==b and b==c: print("Eşkenar Üçgen") elif a==b or b==c or c==a: print("İkizkenar Üçgen") else: print("Çeşitkenar Üçgen")

ucgen_turu(3, 3, 3) # Eşkenar Üçgenucgen_turu(3, 4, 4) # İkizkenar Üçgenucgen_turu(3, 4, 5) # Çeşitkenar Üçgen```

Yukarıdaki kodda, fonksiyona üç pozisyonel argüman olarak a, b ve c girilir ve koşullar kullanarak üçgenin türü belirlenir.

Pozisyonel argümanlar, fonksiyonlarda daha az esneklik sağlar. Çünkü argümanların sırası değiştirilemez ve argüman adı kullanılmaz. Ancak, basit fonksiyonlarda kullanımı oldukça kolay ve kullanışlıdır.


Args ve Kwargs

Args ve kwargs, Python fonksiyonlarındaki parametre sayısını değiştirmeye yarayan kullanışlı araçlardır. Args, esnek sayıda pozisyonel argümanları kabul eder ve bunları bir demet olarak toplar. Bu, fonksiyon içinde argümanların sayısı bilinmediğinde kullanışlıdır. Args parametresinin kullanımı, * işaretinin argüman adından önce kullanılmasıyla belirtilir.Örnek olarak, aşağıdaki "toplam" fonksiyonu args parametresiyle yazılmıştır:

def toplam(*args):    sonuc = 0    for arg in args:        sonuc += arg    return sonuc

Bu fonksiyon, istenilen sayıda pozisyonel argüman alabilir ve aldığı tüm argümanların toplamını hesaplar. Örneğin, toplam(1, 2, 3, 4) ifadesi çağrıldığında, fonksiyon 1, 2, 3 ve 4 argümanlarını alır ve 10 sonucunu döndürür.

Benzer şekilde, kwargs parametresi esnek sayıda anahtar kelime argümanını kabul eder ve bunları bir sözlük olarak toplar. Bu, fonksiyon içinde anahtar kelime argümanlarının sayısı bilinmediğinde kullanışlıdır. Args parametresinde olduğu gibi, kwargs parametresinin kullanımı da ** işaretinin argüman adından önce kullanılmasıyla belirtilir.Örnek olarak, aşağıdaki "profil" fonksiyonu kwargs parametresiyle yazılmıştır:

def profil(**kwargs):    for key, value in kwargs.items():        print(f"{key}: {value}")

Bu fonksiyon, istenilen sayıda anahtar kelime argümanı alabilir ve aldığı tüm argümanları anahtar ve değer olarak yazdırır. Örneğin, profil(isim='John', soyisim='Doe', yaş=30) ifadesi çağrıldığında, fonksiyon isim, soyisim ve yaş anahtar kelime argümanlarını alır ve şöyle bir çıktı verir:

isim: Johnsoyisim: Doeyaş: 30

Args ve kwargs, Python'da çok kullanışlıdır ve fonksiyonlarda parametre sayısını esnek hale getirir. Bu özellikleri doğru kullanarak, kodunuzun daha esnek ve genişletilebilir olmasını sağlayabilirsiniz.


Args

Python'da fonksiyon tanımlamalarında, fonksiyonlara herhangi bir sayıda argüman göndermek mümkündür. İşte burada, argümanlardan biri olan args () parametresi kullanışlıdır ve tanımlandığında, fonksiyona gönderilen tüm pozisyonel argümanlar args adlı bir demet olarak paketlenir. Args parametresi, önceden bilinmeyen sayıda pozisyonel argümanlar için bir değişken adı sağlayarak programcılara belirsiz argüman sayısını yönetme esnekliği sağlar.

Args parametresi isteğe bağlıdır ve birkaç uygulama örneğinde kullanılır. Aşağıdaki fonksiyona bir örnek verelim:

def hesapla(*args):    toplam = 0    for i in args:        toplam += i    return toplam

Bu örnekte * işareti, args adında bir Tuple oluşturdu. Fonksiyona gönderilen tüm argümanlar tuple içerisinde argümanlar olarak depolanır. Ardından, hesapla() fonksiyonu için toplam değişkeni ayarlanır ve args içindeki tüm argümanlar üzerinde bir döngü oluşturulur. Daha sonra, döngüdeki tüm argümanlar, toplam değişkenine eklenir ve nihai sonuç olarak döndürülür.

Bu örnekte, hesapla() fonksiyonu sağlamak için herhangi bir pozisyonel argüman sayısı gerektirmez. Herhangi bir sayıda parametre gönderebilir ve fonksiyon çağrısı sırasında args parametresi Tuple içinde argümanları toplar.

Ayrıca, args parametresinin yanı sıra anahtar kelime argümanları veya kwargs kullanıldığında, fonksiyonun tanımlanmasında *args son parametre olarak belirtilmelidir. Bu, argümanların bir demet haline getirilmiş hallerini kabul edecektir.

Özetle, Python'da args, belirsiz sayıda pozisyonel argümanlar kullanmak isteyenler için son derece yararlı bir parametredir. Fonksiyonlarınızda çoklu argüman almanız gerekiyorsa, args kullandığınızdan emin olun.


Kwargs

Python'da kwargs, *kwargs olarak tanımlanan parametresi, sözlükleri kullanarak fonksiyonlara istediğimiz miktarda anahtar kelime-argüman çifti eklememize olanak tanır. Bu durumda fonksiyon, sözlük temelli anahtar kelime-argüman çiftlerini alma özelliği taşır. Bu bir nevi esnekliği arttırmaktadır.

Argüman yollarken anahtar kelimeyi belirterek girdiğimiz argümanlar, kwargs kullanılarak tanımlanır. Python'da kwargs parametreleri varsayılan olarak sıralanmış pozisyonel parametrelerin yanında kullanılabilir.

kwargs parametresi, fonksiyona geçtiğimiz anahtar kelime-argüman çiftlerini bir sözlük olarak aktarır. Böylece fonksiyon içerisinde bu dictionary kullanılarak işlem yapılabilir.

Örnek olarak, bir öğrenci kayıt sistemi programı yazdığımızı düşünelim. Öğrencilerin isimlerini, numaralarını ve diğer bilgilerini depolamaya çalışıyoruz. Bunu yaparken bir fonksiyon yazmak ve bu fonksiyonu verileri sözlük olarak alacak şekilde yazmak en mantıklı seçenek olacaktır. Bu sorunun kaç çözüm yöntemi olduğu tamamen kullanıcının hayal gücüne kalmış bir seçenek olsa da, *kwargs argümanı kullanarak yapılabildiğini bilmek oldukça önemlidir.

Bu sebep ile kwargs, birden fazla argümanı olan ve tanımsız sayıda argüman kullanmak istediğimiz fonksiyonlarda tercih edilebilir.