[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-fonksiyonlari-argumanlar-varsayilanlar-ve-lambda-ornekleri":3},{"dataItem":4,"heading":36,"metaData":38,"schema":81},["Reactive",5],{"id":6,"title":7,"summary":8,"content":9,"seo_title":10,"seo_description":11,"seo_keywords":12,"slug":13,"createdAt":14,"updatedAt":14,"blog_categories":15,"authors":19,"image":24,"thumb":25,"image_webp":26,"thumb_webp":27,"rating":28,"heading_title":7,"heading_sub_title":17,"readingTime":29,"url":34,"comments":35,"meta_cover":24},25565,"Python fonksiyonları: Argümanlar, varsayılanlar ve lambda örnekleri","Bu rehber, Python fonksiyonlarının argüman türlerini, varsayılan değerlerini, *args/**kwargs kullanımını, lambda ifadelerini ve docstring yazımını örneklerle açıklar.","\u003Ch2>Python fonksiyonları: Argümanlar, varsayılanlar ve lambda örnekleri\u003C/h2>\n\u003Cp>Fonksiyonlar, belirli bir görevi yerine getiren, tekrar kullanılabilir kod bloklarıdır. Python'da fonksiyon tanımı ve parametre davranışları hakkında detaylı açıklamalar için resmi belgelere bakabilirsiniz (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">Python dil tanımı\u003C/a>). Bu makalede temel sözdizimi, argüman türleri, varsayılanlar, *args/**kwargs, lambda ifadeleri ve docstring yazımı üzerine pratik örnekler bulacaksınız.\u003C/p>\n\n\u003Ch3>Temel fonksiyon yazımı\u003C/h3>\n\u003Cp>Bir fonksiyon \u003Cstrong>def\u003C/strong> anahtar kelimesiyle tanımlanır. En basit haliyle bir fonksiyon ve çağırma örneği:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def topla(a, b):\u003Cbr>    \"\"\"İki sayıyı toplar ve sonucu döner.\"\"\"\u003Cbr>    return a + b\u003Cbr>\u003Cbr>sonuc = topla(3, 5)  # 8\u003C/p>\n\u003C/blockquote>\n\u003Cp>Yukarıdaki örnekte \u003Cstrong>a\u003C/strong> ve \u003Cstrong>b\u003C/strong> konumsal (positional) parametrelerdir: çağrıda sıraya göre verilirler. Fonksiyonun hemen altında yer alan üç tırnaklı metin docstring olarak adlandırılır ve fonksiyonun ne yaptığını belgelemek için kullanılır (daha fazlası aşağıda).\u003C/p>\n\n\u003Ch3>Konumsal (positional) ve anahtar kelime (keyword) argümanlar\u003C/h3>\n\u003Cp>Konumsal argümanlar sıra ile eşlenir; anahtar kelime argümanlar ise parametre adıyla verilir. Her iki türü karıştırmak mümkündür ve genelde okunabilirlik için önemli avantaj sağlar:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def kayit_ekle(isim, soyisim, yas=30):\u003Cbr>    return f\"{isim} {soyisim}, {yas} yaşında\"\u003Cbr>\u003Cbr>kayit_ekle(\"Ayşe\", \"Demir\")\u003Cbr>kayit_ekle(soyisim=\"Kaya\", isim=\"Mehmet\", yas=40)\u003C/p>\n\u003C/blockquote>\n\u003Cp>İkinci çağrıda parametre adları kullanıldığı için sıra önemli değildir. Resmi dil tanımında fonksiyon parametrelerinin nasıl eşlendiği ayrıntılı şekilde açıklanmıştır (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">Python referansı\u003C/a>).\u003C/p>\n\n\u003Ch3>Varsayılan argümanlar\u003C/h3>\n\u003Cp>Varsayılan argümanlar, fonksiyon çağrılırken belirtilmeyen parametrelere önceden belirlenmiş bir değer sağlar:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def üs_al(x, n=2):\u003Cbr>    return x ** n\u003Cbr>\u003Cbr>üs_al(3)   # 9\u003Cbr>üs_al(3, 3)  # 27\u003C/p>\n\u003C/blockquote>\n\u003Cp>Önemli bir nokta: Python'da varsayılan argümanların değerlendirilme zamanı fonksiyon tanımlandığı andır; her çağrıda yeniden hesaplanmaz. Bu durum mutable (değiştirilebilir) varsayılan değerlerle beklenmedik sonuçlar verebilir. Örneğin liste gibi bir mutable nesneyi varsayılan yapmak çoğu zaman paylaşılan durum oluşturur:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def ekle(x, liste=[]):\u003Cbr>    liste.append(x)\u003Cbr>    return liste\u003Cbr>\u003Cbr># birden fazla çağrıda liste birikir — beklenmedik olabilir\u003C/p>\n\u003C/blockquote>\n\u003Cp>Bu yüzden güvenli ve yaygın yöntem, varsayılan olarak \u003Cstrong>None\u003C/strong> kullanıp içinde yeni nesne oluşturmak veya gerekli işlemi yapmak olacaktır:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def ekle(x, liste=None):\u003Cbr>    if liste is None:\u003Cbr>      liste = []\u003Cbr>    liste.append(x)\u003Cbr>    return liste\u003C/p>\n\u003C/blockquote>\n\u003Cp>Varsayılan argümanların bu davranışı ve değerlendirme zamanı hakkında daha teknik ayrıntılar için resmi dokümantasyona göz atabilirsiniz (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">Python dil tanımı\u003C/a>).\u003C/p>\n\n\u003Ch3>*args ve **kwargs: Belirsiz sayıda argüman\u003C/h3>\n\u003Cp>*args konumsal (positional) argümanların tuple halinde yakalanmasını sağlar; **kwargs ise anahtar kelime (keyword) argümanları sözlük (dict) olarak yakalar. Bu mekanizmalar, fonksiyonları esnek hale getirir:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def toplam(*sayilar):\u003Cbr>    return sum(sayilar)\u003Cbr>\u003Cbr>def yazdir(**alanlar):\u003Cbr>    for anahtar, deger in alanlar.items():\u003Cbr>      print(anahtar, deger)\u003C/p>\n\u003C/blockquote>\n\u003Cp>Çağrıda ayrıca bir liste veya sözlüğü açmak için \u003Cstrong>*\u003C/strong> ve \u003Cstrong>**\u003C/strong> operatörleri kullanılabilir:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>nums = [1, 2, 3]\u003Cbr>toplam(*nums)  # 6\u003Cbr>\u003Cbr>kwargs = {\"isim\": \"Ece\", \"yas\": 28}\u003Cbr>yazdir(**kwargs)\u003C/p>\n\u003C/blockquote>\n\u003Cp>Parametrelerin fonksiyon tanımındaki sırası önemlidir: önce normal parametreler, sonra *args, sonra keyword-only parametreler (aşağıda) ve sonunda **kwargs gelir. Bu sıralama dil tanımında kurallarla belirlenmiştir (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">kaynak\u003C/a>).\u003C/p>\n\n\u003Ch3>Anahtar kelime-only (keyword-only) argümanlar\u003C/h3>\n\u003Cp>Bir '*' işareti fonksiyon imzasında kullanıldığında, ondan sonra gelen parametreler yalnızca anahtar kelime ile verilebilir. Bu, çağrının okunabilirliğini artırmak ve bazı parametreleri zorunlu kılmak için kullanışlıdır:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def kaydet(dosya, *, onay=True):\u003Cbr>    if onay:\u003Cbr>      print(f\"{dosya} kaydedildi\")\u003C/p>\n\u003C/blockquote>\n\u003Cp>Burada \u003Cstrong>onay\u003C/strong> parametresi yalnızca \u003Cem>onay=False\u003C/em> gibi anahtar kelimeyle verilebilir; konumsal olarak sağlanamaz.\u003C/p>\n\n\u003Ch3>Lambda ifadeleri (anonim fonksiyonlar)\u003C/h3>\n\u003Cp>Lambda ifadeleri tek satırlık anonim fonksiyonlar oluşturmak için uygundur. Kısa, basit dönüşümler veya sıralama anahtarları (key) gibi durumlarda okunurluğu artırabilirler. Resmi eğitim dokümanında lambda kullanımıyla ilgili örnekler bulunmaktadır (\u003Ca href=\"https://docs.python.org/tr/3/tutorial/controlflow.html\">Python eğitim rehberi\u003C/a>).\u003C/p>\n\u003Cblockquote>\n  \u003Cp>double = lambda x: x * 2\u003Cbr>double(5)  # 10\u003Cbr>\u003Cbr>isimler = [\"ali\", \"Zeynep\", \"mehmet\"]\u003Cbr>sorted(isimler, key=lambda s: s.lower())\u003C/p>\n\u003C/blockquote>\n\u003Cp>Lambda kullanımı kısa fonksiyonlar için pratiktir; daha karmaşık mantık için normal \u003Cstrong>def\u003C/strong> ile isimlendirilmiş fonksiyon tercih edilir.\u003C/p>\n\n\u003Ch3>Docstring: Fonksiyon belgeleme\u003C/h3>\n\u003Cp>Docstring, fonksiyonun hemen altında bulunan ve fonksiyonun amacını, parametrelerini ve dönüş değerini açıklayan metindir. İyi yazılmış docstring'ler kodun bakımını ve otomatik dokümantasyon üretimini kolaylaştırır:\u003C/p>\n\u003Cblockquote>\n  \u003Cp>def cikar(a, b):\u003Cbr>    \"\"\"İki sayıyı çıkarır.\u003Cbr>\u003Cbr>    Parametreler:\u003Cbr>      a (int): Birinci sayı.\u003Cbr>      b (int): İkinci sayı.\u003Cbr>\u003Cbr>    Döner:\u003Cbr>      int: a - b değerini döner.\u003Cbr>    \"\"\"\u003Cbr>    return a - b\u003C/p>\n\u003C/blockquote>\n\u003Cp>Pek çok proje için Google, NumPy veya reStructuredText (reST) stillerinden biri tercih edilir; önemli olan tutarlılıktır.\u003C/p>\n\n\u003Ch3>Pratik ipuçları ve kontrol listesi\u003C/h3>\n\u003Cul>\n  \u003Cli>Fonksiyonları kısa ve tek bir amaç için yazın (tek sorumluluk ilkesi).\u003C/li>\n  \u003Cli>Anlamlı isimler kullanın; parametre adları çağrı bağlamında açıklayıcı olsun.\u003C/li>\n  \u003Cli>Mutable nesneler için varsayılan değer olarak None kullanın.\u003C/li>\n  \u003Cli>*args/**kwargs kullanmadan önce alternatifleri değerlendirin; gereksiz genellik okunabilirliği azaltabilir.\u003C/li>\n  \u003Cli>Dokümantasyon için docstring ekleyin ve gerektiğinde tip ipuçları (type hints) kullanın.\u003C/li>\n  \u003Cli>Lambda'ları kısa dönüşümler veya key fonksiyonları için kullanın; karmaşık mantıkta def tercih edin.\u003C/li>\n  \u003Cli>Fonksiyon davranışı ve parametre eşlemesi hakkında daha ayrıntılı bilgi için resmi dokümantasyonu inceleyin (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">referans\u003C/a>, \u003Ca href=\"https://docs.python.org/tr/3/tutorial/controlflow.html\">öğretici\u003C/a>).\u003C/li>\n\u003C/ul>\n\n\u003Ch3>Kısa referans: parametre türleri\u003C/h3>\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>Tür\u003C/th>\n      \u003Cth>Açıklama\u003C/th>\n      \u003Cth>Örnek\u003C/th>\n    \u003C/tr>\n  \u003C/thead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>Konumsal\u003C/td>\n      \u003Ctd>Sıra ile eşlenen argümanlar\u003C/td>\n      \u003Ctd>def f(a, b):\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>Anahtar kelime\u003C/td>\n      \u003Ctd>Parametre adıyla verilen argümanlar\u003C/td>\n      \u003Ctd>f(b=2, a=1)\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>Varsayılan\u003C/td>\n      \u003Ctd>Tanımlanmışsa çağrıda belirtilmeyen değeri alır\u003C/td>\n      \u003Ctd>def g(x=0)\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>*args\u003C/td>\n      \u003Ctd>Belirsiz sayıda konumsal argüman\u003C/td>\n      \u003Ctd>def h(*args)\u003C/td>\n    \u003C/tr>\n    \u003Ctr>\n      \u003Ctd>**kwargs\u003C/td>\n      \u003Ctd>Belirsiz sayıda anahtar kelime argüman\u003C/td>\n      \u003Ctd>def k(**kwargs)\u003C/td>\n    \u003C/tr>\n  \u003C/tbody>\n\u003C/table>\n\n\u003Chr>\n\u003Cp>Bu rehber temel kavramları ve kullanım örneklerini özetlemektedir. Daha derinlemesine dil kuralları ve sınır durumları için Python resmi belgelerine bakmanız yararlı olacaktır (\u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">dil tanımı\u003C/a>, \u003Ca href=\"https://docs.python.org/tr/3/tutorial/controlflow.html\">öğretici\u003C/a>). Kod örneklerini geliştirme ortamınızda çalıştırarak deneyim kazanabilirsiniz.\u003C/p>","Python Fonksiyon Örnekleri — Argümanlar, Varsayılanlar ve Λ","Python'da fonksiyon yazımı: konumsal ve anahtar argümanlar, varsayılan parametreler, *args/**kwargs, lambda ifadeleri ve docstring örnekleriyle pratik rehber.","Python Fonksiyon Örnekleri, fonksiyon yazımı, lambda, varsayılan argüman, *args, **kwargs, docstring, Python argümanlar","python-fonksiyonlari-argumanlar-varsayilanlar-ve-lambda-ornekleri","2026-04-07T19:58:09.000Z",{"id":16,"title":17,"slug":18},208,"Python Fonksiyon Örnekleri","python-fonksiyon-ornekleri",{"id":20,"name":21,"nickname":22,"slug":23},92,"Burak Demirtaş","CodeMentor","burak-demirtas","/media/blog/11667d813936f0b4e5ead3d4828d4165.jpg","/media/blog/11667d813936f0b4e5ead3d4828d4165_thumb.jpg","/media/blog/11667d813936f0b4e5ead3d4828d4165.webp","/media/blog/11667d813936f0b4e5ead3d4828d4165_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,786,0,"4 dk okuma süresi","/blog/python-fonksiyon-ornekleri/python-fonksiyonlari-argumanlar-varsayilanlar-ve-lambda-ornekleri",[],["Reactive",37],{"title":7,"subTitle":17,"image":24},["Reactive",39],{"title":10,"meta":40,"link":75},[41,43,45,48,51,54,57,60,63,66,69,71,73],{"hid":42,"name":42,"content":11},"description",{"hid":44,"name":44,"content":12},"keywords",{"hid":46,"name":46,"content":47},"author","Başlangıç Seviyesi Kod & Snippet Rehberi",{"hid":49,"name":49,"content":50},"robots","index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1",{"hid":52,"property":52,"content":53},"og:type","website",{"hid":55,"property":55,"content":56},"og:title","Başlangıç Kod & Snippet Rehberi | KodÖğreniyorum",{"hid":58,"property":58,"content":59},"og:description","Yeni başlayanlara yönelik kısa kod örnekleri, snippet'ler ve adım adım alıştırmalar. Hızlı uygulamalarla temel programlama mantığını pekiştir.",{"hid":61,"property":61,"content":62},"og:image","https://kodogreniyorum.com/media/blog/11667d813936f0b4e5ead3d4828d4165.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-fonksiyon-ornekleri/python-fonksiyonlari-argumanlar-varsayilanlar-ve-lambda-ornekleri",{"hid":67,"name":67,"content":68},"twitter:card","summary_large_image",{"hid":70,"name":70,"content":56},"twitter:title",{"hid":72,"name":72,"content":59},"twitter:description",{"hid":74,"name":74,"content":62},"twitter:image",[76,78],{"rel":77,"href":65},"canonical",{"rel":79,"href":80},"amphtml","https://amp.kodogreniyorum.com/blog/python-fonksiyon-ornekleri/python-fonksiyonlari-argumanlar-varsayilanlar-ve-lambda-ornekleri",["Reactive",82],{"@context":83,"@graph":84},"https://schema.org",[85,98],{"@type":86,"headline":10,"image":62,"author":87,"publisher":90,"datePublished":14,"dateModified":14,"mainEntityOfPage":96,"description":11},"BlogPosting",{"@type":88,"name":21,"url":89},"Person","https://kodogreniyorum.com/yazarlar/burak-demirtas",{"@type":91,"name":47,"logo":92},"Organization",{"@type":93,"url":94,"width":95,"height":95},"ImageObject","https://kodogreniyorum.com/img/icons/favicon.png",32,{"@type":97,"@id":65},"WebPage",{"@type":99,"itemListElement":100},"BreadcrumbList",[101,106,110,113],{"@type":102,"position":103,"name":104,"item":105},"ListItem",1,"Ana Sayfa","https://kodogreniyorum.com",{"@type":102,"position":107,"name":108,"item":109},2,"Blog","https://kodogreniyorum.com/blog",{"@type":102,"position":111,"name":17,"item":112},3,"https://kodogreniyorum.com/blog/python-fonksiyon-ornekleri",{"@type":102,"position":30,"name":7,"item":65}]