[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-python-fonksiyon-ornekleri-parametreler-default-ve-lambda":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},25658,"Python Fonksiyon Örnekleri: Parametreler, Default ve Lambda","Bu makale Python fonksiyonlarının tanımı, parametre türleri, default (varsayılan) parametreler ve lambda ifadeleri hakkında pratik örnekler sunar. Adım adım örnekler ve sık karşılaşılan durumlar için çözümler içerir.","\u003Ch2>Python Fonksiyon Örnekleri: Parametreler, Default ve Lambda\u003C/h2>\n\u003Cp>Python fonksiyonları, tekrar kullanılabilir kod blokları oluşturmak için kullanılır. Bu rehberde fonksiyon tanımı, konumsal ve anahtar kelime parametreleri, varsayılan (default) parametreler, *args/**kwargs, lambda ifadeleri ile kapsama (scope) ve dönüş değerlerine ilişkin pratik örnekler sunulacaktır. Temel tanımlar için Python'un resmi belgelerine göz atabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3.12/tutorial/controlflow.html\">Python Tutorial — Control Flow\u003C/a> ve \u003Ca href=\"https://docs.python.org/tr/3.12/reference/compound_stmts.html\">Python Reference — Compound statements\u003C/a>.\u003C/p>\n\n\u003Ch3>1. Fonksiyon tanımlama: temel sözdizimi\u003C/h3>\n\u003Cp>Basit bir fonksiyon 'def' anahtar sözcüğüyle tanımlanır. Fonksiyon gövdesi girintili blok şeklindedir ve isteğe bağlı olarak \u003Cstrong>return\u003C/strong> ile değer döndürür.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def add(a, b):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"İki sayıyı toplar.\"\"\"\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return a + b\u003C/p>\n\u003C/blockquote>\n\u003Cp>Çağırma örnekleri:\u003C/p>\n\u003Cblockquote>\n\u003Cp>print(add(2, 3))        # 5\u003Cbr>print(add(a=4, b=1))    # 5  (anahtar kelime argümanları)\u003C/p>\n\u003C/blockquote>\n\n\u003Ch3>2. Parametre türleri\u003C/h3>\n\u003Cp>Python fonksiyon parametreleri farklı şekillerde kullanılabilir:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Konumsal (positional)\u003C/strong> argümanlar: sıraya bağlı olarak atanır.\u003C/li>\n\u003Cli>\u003Cstrong>Anahtar kelime (keyword)\u003C/strong> argümanlar: parametre adıyla belirtilir.\u003C/li>\n\u003Cli>\u003Cstrong>*args\u003C/strong>: fonksiyona değişken sayıda konumsal argüman geçmek için kullanılır.\u003C/li>\n\u003Cli>\u003Cstrong>**kwargs\u003C/strong>: fonksiyona değişken sayıda anahtar kelime argüman geçirmek için kullanılır.\u003C/li>\n\u003C/ul>\n\u003Cp>Örnek:\u003C/p>\n\u003Cblockquote>\n\u003Cp>def collect(*args, **kwargs):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;print('positional:', args)\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;print('keywords:', kwargs)\u003Cbr>\u003Cbr>collect(1, 2, x=3, y=4)\u003C/p>\n\u003C/blockquote>\n\n\u003Ch3>3. Default (varsayılan) parametreler\u003C/h3>\n\u003Cp>Fonksiyon tanımında parametreye bir değer atanırsa, o parametre çağrılmadığında varsayılan değer kullanılır. Bu kullanım sıkça tercih edilir, ancak dikkat edilmesi gereken bir durum vardır: \u003Cstrong>mutable\u003C/strong> (ör. list, dict) nesneler varsayılan olarak paylaşılan tek bir nesne olarak kullanılabilir ve beklenmeyen birikimlere yol açabilir.\u003C/p>\n\u003Cp>Doğru ve yanlış kullanım ayrımını görmek için örnek:\u003C/p>\n\u003Cblockquote>\n\u003Cp>def greet(name, greeting='Merhaba'):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return f\"{greeting}, {name}!\"\u003Cbr>\u003Cbr>print(greet('Ali'))                    # Merhaba, Ali!\u003Cbr>print(greet('Ayşe', greeting='Selam'))  # Selam, Ayşe!\u003C/p>\n\u003C/blockquote>\n\u003Cp>Mutable default tuzağı:\u003C/p>\n\u003Cblockquote>\n\u003Cp>def append_to(item, target=[]):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;target.append(item)\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return target\u003Cbr>\u003Cbr>print(append_to(1))  # [1]\u003Cbr>print(append_to(2))  # [1, 2]  (aynı liste paylaşıldı)\u003C/p>\n\u003C/blockquote>\n\u003Cp>Bu sorunu önlemek için genellikle None sentinel kullanılır:\u003C/p>\n\u003Cblockquote>\n\u003Cp>def append_to(item, target=None):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;if target is None:\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target = []\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;target.append(item)\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return target\u003C/p>\n\u003C/blockquote>\n\n\u003Ch3>4. Lambda ifadeleri: küçük anonim fonksiyonlar\u003C/h3>\n\u003Cp>Lambda ifadeleri tek bir ifadeyle tanımlanan anonim (isimsiz) fonksiyonlardır. Kısa, tek kullanımlık fonksiyonlar için uygundur. Resmi belgelerde lambda ifadelerinin tek bir ifadeyle sınırlı olduğu belirtilir ve fonksiyon nesnelerinin gerekli olduğu her yerde kullanılabilir.\u003C/p>\n\u003Cblockquote>\n\u003Cp># Sıralama için örnek\u003Cbr>pairs = [('a', 3), ('b', 1), ('c', 2)]\u003Cbr>sorted_pairs = sorted(pairs, key=lambda x: x[1])\u003Cbr>print(sorted_pairs)  # [('b', 1), ('c', 2), ('a', 3)]\u003C/p>\n\u003C/blockquote>\n\u003Cp>Map/filter ile kullanımı:\u003C/p>\n\u003Cblockquote>\n\u003Cp>squares = list(map(lambda x: x * x, range(5)))\u003Cbr>evens = list(filter(lambda x: x % 2 == 0, range(10)))\u003C/p>\n\u003C/blockquote>\n\u003Cp>Not: Daha okunaklı olan durumlarda list comprehension veya ayrı isimli fonksiyon tercih edilebilir.\u003C/p>\n\n\u003Ch3>5. Kapsam (scope) ve dönüş değerleri\u003C/h3>\n\u003Cp>Fonksiyon içinde tanımlanan değişkenler yerel (local) kapsamda olur. \u003Cstrong>return\u003C/strong> ifadesi bir değer döndürür; eğer yoksa Python varsayılan olarak \u003Cstrong>None\u003C/strong> döndürür. Bir fonksiyondan birden çok değer döndürmek için tuple döndürmek sıkça kullanılan yöntemdir.\u003C/p>\n\u003Cblockquote>\n\u003Cp>def divmod_like(a, b):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;quotient = a // b\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;remainder = a % b\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return quotient, remainder\u003Cbr>\u003Cbr>q, r = divmod_like(7, 3)  # q=2, r=1\u003C/p>\n\u003C/blockquote>\n\u003Cp>Nested (iç içe) fonksiyon örneği ve nonlocal kullanımı:\u003C/p>\n\u003Cblockquote>\n\u003Cp>def counter():\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;count = 0\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;def inc():\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nonlocal count\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count += 1\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return count\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return inc\u003Cbr>\u003Cbr>c = counter()\u003Cbr>print(c())  # 1\u003Cbr>print(c())  # 2\u003C/p>\n\u003C/blockquote>\n\u003Cp>Nonlocal ve global değişken yönetimi hakkında daha fazla bilgi için Python referansına bakabilirsiniz: \u003Ca href=\"https://docs.python.org/tr/3.12/reference/compound_stmts.html\">Compound statements\u003C/a>.\u003C/p>\n\n\u003Ch3>6. Pratik ipuçları ve iyi uygulamalar\u003C/h3>\n\u003Cul>\n\u003Cli>Her fonksiyon için kısa ve açıklayıcı docstring yazın; bu, bakım ve test açısından faydalıdır.\u003C/li>\n\u003Cli>Mutable varsayılanlardan kaçının; None sentinel kullanın.\u003C/li>\n\u003Cli>Fonksiyonları tek bir sorumluluk (single responsibility) ilkesiyle küçük tutun.\u003C/li>\n\u003Cli>Karmaşık mantık için isimlendirilmiş fonksiyonları tercih edin; lambda'lar kısa ve basit kullanım için uygundur.\u003C/li>\n\u003Cli>Type hint (ör. def f(x: int) -> int) kullanımı kodu daha öngörülebilir kılar, ancak zorunlu değildir.\u003C/li>\n\u003C/ul>\n\n\u003Ch3>7. Adım adım: kendi fonksiyonunuzu yazma checklist\u003C/h3>\n\u003Col>\n\u003Cli>Ne yapacağını ve hangi parametrelere ihtiyaç duyduğunu belirleyin.\u003C/li>\n\u003Cli>Gerekliyse varsayılan değerleri ve *args/**kwargs kullanımını planlayın.\u003C/li>\n\u003Cli>Docstring ekleyin ve basit örnek kullanım gösterin.\u003C/li>\n\u003Cli>Edge case'leri düşünün (ör. sıfıra bölme, boş liste, None).\u003C/li>\n\u003Cli>Basit testlerle davranışı doğrulayın.\u003C/li>\n\u003C/ol>\n\n\u003Ch3>8. Hızlı örnek: küçük bir modül\u003C/h3>\n\u003Cblockquote>\n\u003Cp>def make_multiplier(n):\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"Verilen n ile çarpan oluşturur.\"\"\"\u003Cbr>&nbsp;&nbsp;&nbsp;&nbsp;return lambda x: x * n\u003Cbr>\u003Cbr>doubler = make_multiplier(2)\u003Cbr>print(doubler(5))  # 10\u003C/p>\n\u003C/blockquote>\n\n\u003Ch3>9. Sonuç ve kaynaklar\u003C/h3>\n\u003Cp>Bu yazıda Python fonksiyonlarının temel kullanımı, parametre çeşitleri, varsayılan değerler, lambda ifadeleri ve kapsam ile dönüş örnekleri gösterildi. Daha ayrıntılı ve sürüm odaklı açıklamalar için resmi belgelendirmeyi inceleyin: \u003Ca href=\"https://docs.python.org/tr/3.12/tutorial/controlflow.html\">Python Tutorial\u003C/a> ve \u003Ca href=\"https://docs.python.org/tr/3.12/reference/compound_stmts.html\">Python Reference\u003C/a>. Bu sayfalar, söz dizimi ve davranış hakkında resmi ve güncel bilgiyi sağlar.\u003C/p>\n\u003Chr>\n\u003Cp>\u003Cem>İpuçları: örnekleri küçük parçalar halinde çalıştırarak davranışı gözlemleyin ve testler yazarak beklentilerinizi doğrulayın.\u003C/em>\u003C/p>","Python Fonksiyon Örnekleri — Parametreler, Default Değerler,","Python'da fonksiyon yazımı: parametre türleri, varsayılan (default) parametreler, lambda ifadeleri ve kapsam/dönüş örnekleri ile pratik rehber.","Python Fonksiyon Örnekleri, fonksiyon yazımı python, lambda örnekleri, default param python, kapsam ve dönüş değerleri","python-fonksiyon-ornekleri-parametreler-default-ve-lambda","2026-04-08T11:07:43.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/8336e4d061c958826ce09ce7c21ea271.jpg","/media/blog/8336e4d061c958826ce09ce7c21ea271_thumb.jpg","/media/blog/8336e4d061c958826ce09ce7c21ea271.webp","/media/blog/8336e4d061c958826ce09ce7c21ea271_thumb.webp",null,{"minutes":30,"wordCount":31,"imageCount":32,"formatted":33},4,795,0,"4 dk okuma süresi","/blog/python-fonksiyon-ornekleri/python-fonksiyon-ornekleri-parametreler-default-ve-lambda",[],["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/8336e4d061c958826ce09ce7c21ea271.jpg",{"hid":64,"property":64,"content":65},"og:url","https://kodogreniyorum.com/blog/python-fonksiyon-ornekleri/python-fonksiyon-ornekleri-parametreler-default-ve-lambda",{"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-ornekleri-parametreler-default-ve-lambda",["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}]