[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-fonksiyon-yazimi-arguman-donus-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},25327,"Python fonksiyon yazımı: argüman, dönüş ve lambda örnekleri","Bu yazıda Python'da fonksiyon tanımı, farklı argüman türleri (positional, keyword, *args/**kwargs), dönüş değerleri, docstring ve lambda kullanımı adım adım örneklerle açıklanır.","\u003Ch2>Python fonksiyon yazımı: argüman, dönüş ve lambda örnekleri\u003C/h2>\n\u003Cp>Fonksiyonlar, kodu modüler ve yeniden kullanılabilir kılmanın temel yollarındandır. Bu yazıda, sık kullanılan \u003Cstrong>python kod snippetleri\u003C/strong> ile fonksiyon tanımı, argüman çeşitleri, dönüş değerleri, docstring ve \u003Cem>lambda\u003C/em> ifadeleri hakkında pratik örnekler bulacaksınız. Temel dil davranışları için Python resmi belgelerine bakabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">function definition — Python referansı\u003C/a>.\u003C/p>\n\n\u003Ch3>1. Temel fonksiyon tanımı ve return\u003C/h3>\n\u003Cp>Bir fonksiyon \u003Cstrong>def\u003C/strong> anahtar kelimesiyle tanımlanır; parametre listesi parantez içinde yer alır. Fonksiyonun dönüş değeri \u003Cstrong>return\u003C/strong> ile belirtilir. Eğer return kullanılmazsa fonksiyon \u003Cem>None\u003C/em> döner.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def topla(a, b):\u003Cbr>\n    \"\"\"İki sayıyı toplar ve sonucu döner.\"\"\"\u003Cbr>\n    return a + b\u003C/p>\n\u003C/blockquote>\n\u003Cp>Yukarıdaki basit örnekte \u003Ccode>topla(2, 3)\u003C/code> çağrısı \u003Ccode>5\u003C/code> döner. Fonksiyon tanımları ve davranışları için resmi referans: \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">https://docs.python.org/tr/3/reference/compound_stmts.html\u003C/a>.\u003C/p>\n\n\u003Ch3>2. Positional ve keyword argümanlar; varsayılan değerler\u003C/h3>\n\u003Cp>Fonksiyonlar hem positional (sıralı) hem de keyword (anahtar kelime ile) argümanlar alabilir. Ayrıca parametrelere varsayılan değer vererek isteğe bağlı hale getirebilirsiniz.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def selamla(isim, mesaj=\"Merhaba\"):\u003Cbr>\n    return f\"{mesaj}, {isim}!\"\u003C/p>\n\u003C/blockquote>\n\u003Cp>Çağırma örnekleri:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cp>\u003Ccode>selamla(\"Ayşe\")\u003C/code> → \"Merhaba, Ayşe!\"\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Ccode>selamla(\"Ali\", mesaj=\"Selam\")\u003C/code> → \"Selam, Ali!\"\u003C/p>\u003C/li>\n\u003C/ul>\n\u003Cp>Dikkat: Varsayılan değerler fonksiyon tanımlandığı anda değerlendirilir; mutable (ör. liste, sözlük) bir varsayılan kullanmak beklenmedik paylaşım davranışına yol açabilir. Bu davranışın sebepleri ve detayları için Python referansına bakabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">Python dil referansı\u003C/a>.\u003C/p>\n\n\u003Ch3>3. *args ve **kwargs: değişken sayıda argüman\u003C/h3>\n\u003Cp>*args, pozisyonel argümanları tuple olarak alır; **kwargs ise anahtar-değer çiftlerini sözlük olarak alır. Bu yapılar fonksiyonları esnek hale getirir.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def demo(*args, **kwargs):\u003Cbr>\n    print(\"Positional:\", args)\u003Cbr>\n    print(\"Keyword:\", kwargs)\u003C/p>\n\u003C/blockquote>\n\u003Cp>Çağırma örnekleri:\u003C/p>\n\u003Cul>\n  \u003Cli>\u003Cp>\u003Ccode>demo(1, 2, a=3, b=4)\u003C/code>\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Ccode>liste = [1,2,3]; kwargs = {'x':10}; demo(*liste, **kwargs)\u003C/code>\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Ch3>4. Keyword-only parametreler\u003C/h3>\n\u003Cp>Fonksiyonda bir yıldız (\u003Ccode>*\u003C/code>) yerleştirirseniz, ondan sonra gelen parametreler yalnızca anahtar kelime ile atanabilir (keyword-only). Bu, API tasarımında netlik sağlar.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def baglan(host, port, *, timeout=10):\u003Cbr>\n    \"\"\"timeout yalnızca keyword ile verilebilir\"\"\"\u003Cbr>\n    ...\u003C/p>\n\u003C/blockquote>\n\n\u003Ch3>5. Dönüş değerleri: tek/çoklu dönüşler ve None\u003C/h3>\n\u003Cp>Python fonksiyonları tek bir ifade döndürür, ancak bu ifade tuple, liste veya başka bir yapı olabilir; böylece çoklu değer döndürüyormuşsunuz gibi davranabilirsiniz.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def bolme_ve_kalan(x, y):\u003Cbr>\n    q = x // y\u003Cbr>\n    r = x % y\u003Cbr>\n    return q, r  # tuple döner\u003C/p>\n\u003C/blockquote>\n\u003Cp>Çağrı örneği: \u003Ccode>q, r = bolme_ve_kalan(10, 3)\u003C/code>\u003C/p>\n\u003Cp>Eğer fonksiyonda \u003Ccode>return\u003C/code> bulunmazsa veya \u003Ccode>return\u003C/code> ifadesi herhangi bir değer içermiyorsa fonksiyon \u003Cem>None\u003C/em> döndürür. Bu davranış dilin temel kurallarından biridir (bkz. resmi doküman).\u003C/p>\n\n\u003Ch3>6. Docstring ve type hint örnekleri\u003C/h3>\n\u003Cp>Fonksiyonun ne yaptığını anlatan kısa açıklamalar için docstring kullanın. Type hint'ler (pekiştirmeler) okunabilirliği artırır ve statik araçlarla birlikte fayda sağlar.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def carp(a: int, b: int) -> int:\u003Cbr>\n    '''Verilen iki tam sayıyı çarpar ve sonucu döner.'''\n    return a * b\u003C/p>\n\u003C/blockquote>\n\u003Cp>Docstring'ler IDE'lerde ve otomatik dokümantasyon araçlarında gözükür. Official docs fonksiyon tanımları ve docstring yaklaşımlarına değinir: \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">Python fonksiyon tanımları\u003C/a>.\u003C/p>\n\n\u003Ch3>7. Lambda ifadeleri: kısa anonim fonksiyonlar\u003C/h3>\n\u003Cp>\u003Cem>lambda\u003C/em> ifadeleri tek satırlık anonim fonksiyonlar üretir. Basit dönüşümler veya kısa callback'ler için uygundur; ancak daha karmaşık mantık için \u003Ccode>def\u003C/code> tercih edilir.\u003C/p>\n\u003Cblockquote>\n\u003Cp>square = lambda x: x * x\u003Cbr>\nnums = [1, 2, 3]\u003Cbr>\nprint(list(map(lambda x: x * 2, nums)))  # [2,4,6]\u003Cbr>\n# sorted örneği: sıralama anahtarı olarak lambda kullanmak sık görülür\u003Cbr>\npairs = [(1, 'b'), (2, 'a')]\u003Cbr>\nprint(sorted(pairs, key=lambda p: p[1]))\u003C/p>\n\u003C/blockquote>\n\u003Cp>Lambda ile \u003Ccode>def\u003C/code> arasındaki seçim okunabilirlik ve karmaşıklığa bağlıdır. Tek satırlık, basit ifadeler için lambda yeterlidir; daha okunaklı ve test edilebilir olması için çoğu zaman adlandırılmış fonksiyonlar tercih edilir (bkz. \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">resmi referans\u003C/a>).\u003C/p>\n\n\u003Ch3>8. Hızlı test: assert ile temel doğrulama\u003C/h3>\n\u003Cp>Geliştirme aşamasında küçük doğrulamalar için \u003Ccode>assert\u003C/code> kullanılabilir. Birim testleri için ise \u003Ccode>unittest\u003C/code> veya \u003Ccode>pytest\u003C/code> tercih edilir.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def topla(a, b):\u003Cbr>\n    return a + b\u003Cbr>\n\nassert topla(2, 3) == 5\u003Cbr>\nassert topla(-1, 1) == 0\u003C/p>\n\u003C/blockquote>\n\u003Cp>Bu doğrulamalar hızlı geri bildirim sağlar; ancak kapsamlı testler ve otomasyon için test çerçeveleri kullanılmalıdır.\u003C/p>\n\n\u003Ch3>9. En iyi uygulamalar (pratik kontrol listesi)\u003C/h3>\n\u003Cul>\n  \u003Cli>\u003Cp>\u003Cstrong>Anlamlı isimler:\u003C/strong> Fonksiyon ve parametre isimleri işlevi açıkça ifade etsin.\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Cstrong>Tek sorumluluk:\u003C/strong> Fonksiyonlar bir işi iyi yapacak kadar küçük olsun.\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Cstrong>Docstring ekleyin:\u003C/strong> Ne yaptığı, parametreleri ve dönüş değeri kısa açıklanmalı.\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Cstrong>Mutable varsayılanlardan kaçının:\u003C/strong> Gerekirse \u003Ccode>None\u003C/code> kullanıp içeride oluşturun.\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Cstrong>Type hint kullanımı:\u003C/strong> IDE ve statik analiz araçlarına yardımcı olur.\u003C/p>\u003C/li>\n  \u003Cli>\u003Cp>\u003Cstrong>Basit testler yazın:\u003C/strong> Asserttler veya birim testleriyle doğrulayın.\u003C/p>\u003C/li>\n\u003C/ul>\n\n\u003Ch3>10. Hızlı referans tablosu\u003C/h3>\n\u003Ctable>\n  \u003Cthead>\n    \u003Ctr>\u003Cth>Konsept\u003C/th>\u003Cth>Kısa örnek\u003C/th>\u003C/tr>\n  \u003C/thead>\n  \u003Ctbody>\n    \u003Ctr>\u003Ctd>Def\u003C/td>\u003Ctd>\u003Cp>def f(x): return x\u003C/p>\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>*args / **kwargs\u003C/td>\u003Ctd>\u003Cp>def f(*a, **k): ...\u003C/p>\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>Lambda\u003C/td>\u003Ctd>\u003Cp>lambda x: x*2\u003C/p>\u003C/td>\u003C/tr>\n    \u003Ctr>\u003Ctd>Docstring\u003C/td>\u003Ctd>\u003Cp>'''Açıklama'''\u003C/p>\u003C/td>\u003C/tr>\n  \u003C/tbody>\n\u003C/table>\n\n\u003Chr>\n\u003Cp>Sonuç olarak, fonksiyonlar kodunuzu düzenli ve tekrar kullanılabilir hale getirir. Buradaki örnekler Python'un temel fonksiyon davranışlarını göstermeye yönelik olup resmi dokümanlar fonksiyon tanımları ve ilgili detaylar için birincil kaynaktır: \u003Ca href=\"https://docs.python.org/tr/3/reference/compound_stmts.html\">function definitions — Python referansı\u003C/a> ve gömülü fonksiyonlar için \u003Ca href=\"https://docs.python.org/tr/3.12/library/functions.html\">Python gömülü fonksiyonlar\u003C/a>. Bu örnekleri kendi projelerinizde deneyin, küçük testlerle doğrulayın ve okunabilirliği önceliklendirin.\u003C/p>","Python fonksiyon yazımı — argümanlar, dönüşler ve lambda örü","Bu rehberde Python fonksiyon tanımı, positional/keyword argümanlar, *args/**kwargs, dönüş değerleri, docstring ve lambda örnekleriyle pratik python kod snippet'","python kod snippetleri, args kwargs örnek, lambda fonksiyon, geri dönüş değeri, docstring örnekleri","python-fonksiyon-yazimi-arguman-donus-ve-lambda-ornekleri","2026-04-07T13:28: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/491ecf8f2256b5d65fafc97b044ccfca.jpg","/media/blog/491ecf8f2256b5d65fafc97b044ccfca_thumb.jpg","/media/blog/491ecf8f2256b5d65fafc97b044ccfca.webp","/media/blog/491ecf8f2256b5d65fafc97b044ccfca_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,725,0,"4 dk okuma süresi","/blog/python-fonksiyon-ornekleri/python-fonksiyon-yazimi-arguman-donus-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/491ecf8f2256b5d65fafc97b044ccfca.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-fonksiyon-ornekleri/python-fonksiyon-yazimi-arguman-donus-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-fonksiyon-yazimi-arguman-donus-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}]