{"id":118,"date":"2026-01-01T17:39:27","date_gmt":"2026-01-01T17:39:27","guid":{"rendered":"https:\/\/blog.metu.edu.tr\/tanrikul\/?p=118"},"modified":"2026-01-01T21:02:41","modified_gmt":"2026-01-01T21:02:41","slug":"python-hakkinda-muhtemelen-bilmediginiz-5-sasirtici-gercek","status":"publish","type":"post","link":"https:\/\/blog.metu.edu.tr\/tanrikul\/2026\/01\/01\/python-hakkinda-muhtemelen-bilmediginiz-5-sasirtici-gercek\/","title":{"rendered":"Python Hakk\u0131nda Muhtemelen Bilmedi\u011finiz 5 \u015ea\u015f\u0131rt\u0131c\u0131 Ger\u00e7ek"},"content":{"rendered":"<p style=\"text-align: right\"><strong>Haluk Tanr\u0131kulu<\/strong><\/p>\n<p>Yeni y\u0131la eski ve aziz dostum olan <strong>Python Programlama Dili <\/strong>hakk\u0131nda bir \u015feyler yazmakla ba\u015flamak istedim.<\/p>\n<p><a href=\"https:\/\/blog.metu.edu.tr\/tanrikul\/2026\/01\/01\/python-hakkinda-muhtemelen-bilmediginiz-5-sasirtici-gercek\/1-notasyon_ht\/\" rel=\"attachment wp-att-119\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-119\" src=\"https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-300x167.png\" alt=\"\" width=\"300\" height=\"167\" srcset=\"https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-300x167.png 300w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-1024x572.png 1024w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-768x429.png 768w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-1536x857.png 1536w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-2048x1143.png 2048w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-150x84.png 150w, https:\/\/blog.metu.edu.tr\/tanrikul\/files\/2026\/01\/1-notasyon_HT-250x140.png 250w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Python, g\u00fcn\u00fcm\u00fczde veri bilimi, web geli\u015ftirme ve yapay zeka gibi alanlarda en pop\u00fcler programlama dillerinden biri olarak \u00f6ne \u00e7\u0131k\u0131yor. Milyonlarca geli\u015ftirici taraf\u0131ndan kullan\u0131lan bu dil, basit ve anla\u015f\u0131l\u0131r s\u00f6zdizimi sayesinde programlamaya yeni ba\u015flayanlar i\u00e7in de ideal bir ba\u015flang\u0131\u00e7 noktas\u0131 olarak g\u00f6r\u00fcl\u00fcyor.<\/p>\n<p>Ancak Python&#8217;\u0131n pop\u00fclerli\u011finin ard\u0131nda, pek \u00e7ok kullan\u0131c\u0131n\u0131n bile fark\u0131nda olmad\u0131\u011f\u0131 baz\u0131 temel \u00f6zellikler ve e\u015fsiz bir tarih yat\u0131yor. Bu \u00f6zellikler sadece birer trivia bilgisi (k\u0131ymetsiz bilgiler) olman\u0131n \u00f6tesinde, dilin tasar\u0131m felsefesini ve neden bu kadar ba\u015far\u0131l\u0131 oldu\u011funu anlamam\u0131z\u0131 sa\u011fl\u0131yor. Haluk Tanr\u0131kulu&#8217;nun &#8220;Python ile Programlamaya Giri\u015f&#8221; adl\u0131 kitab\u0131ndan yola \u00e7\u0131karak haz\u0131rlad\u0131\u011f\u0131m\u0131z bu yaz\u0131da, Python hakk\u0131nda en \u015fa\u015f\u0131rt\u0131c\u0131 ve etkili be\u015f ger\u00e7e\u011fi mercek alt\u0131na alaca\u011f\u0131z.<\/p>\n<h3>1. \u0130smi Bir Komedi \u015eovundan Geliyor<\/h3>\n<p>Bir\u00e7ok ki\u015finin sand\u0131\u011f\u0131n\u0131n aksine, Python&#8217;\u0131n isminin y\u0131lanlarla hi\u00e7bir ilgisi yoktur. Dilin yarat\u0131c\u0131s\u0131 Guido van Rossum, bu ismi se\u00e7erken 1980&#8217;lerin sonlar\u0131nda hayran\u0131 oldu\u011fu \u00fcnl\u00fc \u0130ngiliz komedi grubu &#8220;Monty Python&#8221;dan ilham alm\u0131\u015ft\u0131r.<\/p>\n<p>Bu e\u011flenceli ger\u00e7ek, asl\u0131nda Python&#8217;\u0131n k\u00f6kenlerindeki eri\u015filebilir ve daha az korkutucu k\u00fclt\u00fcr\u00fc yans\u0131t\u0131yor. O d\u00f6nemde dominant olan C++ veya Java gibi dillerin daha resmi ve kurumsal k\u00fclt\u00fcr\u00fcn\u00fcn aksine bu isim, daha en ba\u015f\u0131ndan farkl\u0131 t\u00fcrde bir topluluk olu\u015fturmaya y\u00f6nelik bilin\u00e7li bir se\u00e7imdi. Karma\u015f\u0131k ve kat\u0131 bir imaj yerine, daha esnek ve yarat\u0131c\u0131l\u0131\u011fa a\u00e7\u0131k bir topluluk ruhuyla do\u011fan Python, bu felsefesini dilin geneline yaym\u0131\u015ft\u0131r.<\/p>\n<h3>2. Kodun G\u00f6r\u00fcn\u00fcm\u00fc, \u0130\u015flevinin Bir Par\u00e7as\u0131d\u0131r: Zorunlu Girintileme<\/h3>\n<p>Python&#8217;\u0131 di\u011fer programlama dillerinden ay\u0131ran en temel ve radikal \u00f6zelliklerden biri, kod yap\u0131s\u0131n\u0131n g\u00f6rsel olarak girintileme (indentation) ile zorunlu k\u0131l\u0131nmas\u0131d\u0131r. C, Java veya JavaScript gibi dillerde kod bloklar\u0131n\u0131 tan\u0131mlamak i\u00e7in s\u00fcsl\u00fc parantezler <code>{}<\/code> kullan\u0131l\u0131rken, Python bu i\u015f i\u00e7in bo\u015fluklar\u0131 kullan\u0131r. Bir <code>if<\/code>, <code>for<\/code> veya fonksiyon blo\u011funa ait kodlar, genellikle 4 bo\u015flukla i\u00e7eri kayd\u0131r\u0131larak yaz\u0131l\u0131r.<\/p>\n<p>Bu kural, rastgele bir tercih de\u011fil, bilin\u00e7li bir tasar\u0131m karar\u0131d\u0131r. Geli\u015ftiricileri temiz, okunabilir ve tutarl\u0131 kod yazmaya zorlar. Bu yap\u0131 &#8220;okunabilirli\u011fi art\u0131rmakla birlikte hatas\u0131z \u00e7al\u0131\u015fmay\u0131 zorunlu hale getirir.&#8221; Bu kat\u0131l\u0131k ilk ba\u015fta mant\u0131ks\u0131z g\u00f6r\u00fcnebilir, ancak Python&#8217;un &#8220;kolay \u00f6\u011frenilir&#8221; felsefesinin do\u011frudan bir yans\u0131mas\u0131d\u0131r; stilistik tart\u0131\u015fmalar\u0131 ortadan kald\u0131rarak geli\u015ftiricilerin mant\u0131\u011fa odaklanmas\u0131n\u0131 sa\u011flar ve herhangi bir kaynaktan gelen kodu an\u0131nda tan\u0131d\u0131k hale getirir.<\/p>\n<h3>3. Tek Bir Dil, Sonsuz Olas\u0131l\u0131k: \u015ea\u015f\u0131rt\u0131c\u0131 Derecede \u00c7ok Y\u00f6nl\u00fc<\/h3>\n<p>Python, g\u00fcn\u00fcm\u00fczdeki en \u00e7ok y\u00f6nl\u00fc programlama dillerinden biridir. Tek bir dil \u00f6\u011frenerek birbirinden tamamen farkl\u0131 alanlarda profesyonel projeler geli\u015ftirmek m\u00fcmk\u00fcnd\u00fcr. Bu esneklik, Python&#8217;\u0131 hem farkl\u0131 alanlar\u0131 ke\u015ffetmek isteyen yeni ba\u015flayanlar hem de g\u00fc\u00e7l\u00fc ve \u00e7ok ama\u00e7l\u0131 bir araca ihtiya\u00e7 duyan uzmanlar i\u00e7in m\u00fckemmel bir se\u00e7enek haline getirir.<\/p>\n<p>Python&#8217;\u0131n kullan\u0131ld\u0131\u011f\u0131 baz\u0131 pop\u00fcler alanlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><b>Yapay Zeka ve Makine \u00d6\u011frenmesi<\/b> (TensorFlow, Keras gibi k\u00fct\u00fcphanelerle)<\/li>\n<li><b>Veri Bilimi ve Analizi<\/b> (Pandas, NumPy gibi k\u00fct\u00fcphanelerle)<\/li>\n<li><b>Web Geli\u015ftirme<\/b> (Django, Flask gibi framework&#8217;lerle)<\/li>\n<li><b>Otomasyon ve Scripting<\/b><\/li>\n<li><b>Siber G\u00fcvenlik Uygulamalar\u0131<\/b><\/li>\n<li><b>A\u011f Programlama<\/b><\/li>\n<\/ul>\n<p>Bu \u00e7ok y\u00f6nl\u00fcl\u00fck, Python&#8217;\u0131n g\u00fc\u00e7l\u00fc bir &#8220;yap\u0131\u015ft\u0131r\u0131c\u0131 dil&#8221; (glue language) olarak hareket etmesi sayesinde m\u00fcmk\u00fcnd\u00fcr. Basit \u00e7ekirde\u011fi, web isteklerinden karma\u015f\u0131k sinir a\u011f\u0131 hesaplamalar\u0131na kadar uzanan g\u00f6revler i\u00e7in C gibi y\u00fcksek performansl\u0131 dillerde yaz\u0131lm\u0131\u015f son derece \u00f6zel k\u00fct\u00fcphanelerin kolayca entegre edilmesine olanak tan\u0131r.<\/p>\n<h3>4. &#8220;Piller Dahil&#8221; Felsefesi: Geni\u015f Standart K\u00fct\u00fcphane<\/h3>\n<p>Python, &#8220;piller dahil&#8221; (batteries included) felsefesiyle tasarlanm\u0131\u015ft\u0131r. Bu, dilin kurulumuyla birlikte, ek bir y\u00fckleme gerektirmeyen, yayg\u0131n g\u00f6revler i\u00e7in \u00f6nceden olu\u015fturulmu\u015f mod\u00fcllerden olu\u015fan devasa bir standart k\u00fct\u00fcphane ile geldi\u011fi anlam\u0131na gelir. Bir geli\u015ftirici olarak bu, temel i\u015flevler i\u00e7in &#8220;tekerle\u011fi yeniden icat etmek&#8221; zorunda kalmadan projelerinize h\u0131zla ba\u015flaman\u0131z\u0131 sa\u011flar.<\/p>\n<p>\u0130\u015fte bu g\u00fc\u00e7l\u00fc standart k\u00fct\u00fcphaneden sadece birka\u00e7 \u00f6rnek:<\/p>\n<ul>\n<li><code>math<\/code>: Geli\u015fmi\u015f matematiksel i\u015flemler i\u00e7in.<\/li>\n<li><code>os<\/code>: \u0130\u015fletim sistemiyle etkile\u015fim kurmak (dosya silme, klas\u00f6r olu\u015fturma vb.) i\u00e7in.<\/li>\n<li><code>datetime<\/code>: Tarih ve zaman verileriyle \u00e7al\u0131\u015fmak i\u00e7in.<\/li>\n<li><code>json<\/code>: Pop\u00fcler veri format\u0131 JSON&#8217;\u0131 kolayca i\u015flemek i\u00e7in.<\/li>\n<\/ul>\n<p>Bu felsefenin stratejik i\u015f d\u00fcnyas\u0131 sonu\u00e7lar\u0131 vard\u0131r: yeni projeler i\u00e7in pazara \u00e7\u0131k\u0131\u015f s\u00fcresini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r ve k\u00fc\u00e7\u00fck ekipler ve startup&#8217;lar i\u00e7in giri\u015f engelini d\u00fc\u015f\u00fcr\u00fcr, \u00e7\u00fcnk\u00fc temel g\u00f6revler i\u00e7in \u00e7ok say\u0131da \u00fc\u00e7\u00fcnc\u00fc taraf arac\u0131 lisanslamalar\u0131na veya entegre etmelerine gerek kalmadan g\u00fc\u00e7l\u00fc uygulamalar olu\u015fturabilirler.<\/p>\n<h3>5. Az Kod, \u00c7ok \u0130\u015f: List Comprehension&#8217;\u0131n Zarafeti<\/h3>\n<p>Python&#8217;\u0131n s\u00f6zdizimi, zarafet ve okunabilirlik \u00fczerine kuruludur. Bu felsefenin en g\u00fczel \u00f6rneklerinden biri de &#8220;List Comprehension&#8221; \u00f6zelli\u011fidir. List Comprehension, mevcut bir liste veya yinelenebilir bir yap\u0131 \u00fczerinden, tek sat\u0131rda ve son derece temiz bir \u015fekilde yeni bir liste olu\u015fturma y\u00f6ntemidir.<\/p>\n<p>\u00d6rne\u011fin, bir listedeki t\u00fcm say\u0131lar\u0131n karelerinden olu\u015fan yeni bir liste olu\u015fturmak istedi\u011finizi d\u00fc\u015f\u00fcn\u00fcn. Geleneksel y\u00f6ntemde bunun i\u00e7in bir d\u00f6ng\u00fc kurman\u0131z gerekir. Ancak List Comprehension ile bu i\u015flem \u00e7ok daha basittir:<\/p>\n<pre><code class=\"language-python\">sayilar = [1, 2, 3, 4, 5]\nkareler = [x ** 2 for x in sayilar]\n<\/code><\/pre>\n<p>Bu zarif tek sat\u0131r\u0131n anatomisi \u015f\u00f6yledir:<\/p>\n<ul>\n<li><code>[x ** 2 ...]<\/code> \u2014 Yap\u0131lacak i\u015flem: Her eleman\u0131n karesini al.<\/li>\n<li><code>[... for x in sayilar]<\/code> \u2014 D\u00f6ng\u00fc: <code>sayilar<\/code> listesindeki her bir eleman i\u00e7in i\u015flemi yap.<\/li>\n<\/ul>\n<p><code>kareler<\/code> listesinin \u00e7\u0131kt\u0131s\u0131 <code>[1, 4, 9, 16, 25]<\/code> olacakt\u0131r. Bu sadece tu\u015f vuru\u015flar\u0131ndan tasarruf etmekle ilgili de\u011fildir; karma\u015f\u0131kl\u0131\u011f\u0131 azaltmakla ilgilidir. Tek, okunabilir bir sat\u0131r, \u00e7ok sat\u0131rl\u0131 bir d\u00f6ng\u00fcn\u00fcn yerini alarak dilin &#8220;basit ve anla\u015f\u0131l\u0131r&#8221; olma temel hedefiyle m\u00fckemmel bir uyum sergiler.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu be\u015f \u00f6zellik birbirinden ba\u011f\u0131ms\u0131z tuhafl\u0131klar de\u011fil, tek bir felsefenin i\u00e7 i\u00e7e ge\u00e7mi\u015f iplikleridir: geli\u015ftiricinin zaman\u0131na ve bili\u015fsel y\u00fck\u00fcne \u00f6ncelik vermek. Giri\u015f engelini d\u00fc\u015f\u00fcren e\u011flenceli bir isimden, belirsizli\u011fi ortadan kald\u0131ran kat\u0131 bir s\u00f6zdizimine kadar, Python \u00f6nce insanlar i\u00e7in in\u015fa edildi\u2014bu karar, dilin y\u00f6r\u00fcngesini ve modern yaz\u0131l\u0131m geli\u015ftirmenin do\u011fas\u0131n\u0131 derinden \u015fekillendirmi\u015ftir.<\/p>\n<p>Peki, Python&#8217;\u0131n bu temel tasar\u0131m felsefeleri, gelecekte yaz\u0131l\u0131m geli\u015ftirmenin nereye evrilece\u011fi hakk\u0131nda bize ne gibi ipu\u00e7lar\u0131 veriyor?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluk Tanr\u0131kulu Yeni y\u0131la eski ve aziz dostum olan Python Programlama Dili hakk\u0131nda bir \u015feyler yazmakla ba\u015flamak istedim. Python, g\u00fcn\u00fcm\u00fczde veri bilimi, web geli\u015ftirme ve yapay zeka gibi alanlarda en pop\u00fcler programlama dillerinden biri olarak \u00f6ne \u00e7\u0131k\u0131yor. Milyonlarca geli\u015ftirici taraf\u0131ndan kullan\u0131lan bu dil, basit ve anla\u015f\u0131l\u0131r s\u00f6zdizimi sayesinde programlamaya yeni&#8230; <a class=\"continue-reading-link\" href=\"https:\/\/blog.metu.edu.tr\/tanrikul\/2026\/01\/01\/python-hakkinda-muhtemelen-bilmediginiz-5-sasirtici-gercek\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":1077,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[21],"tags":[],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-python-programlama"],"_links":{"self":[{"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/users\/1077"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":0,"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.metu.edu.tr\/tanrikul\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}