{"id":32360,"date":"2025-10-20T22:03:02","date_gmt":"2025-10-20T19:03:02","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/"},"modified":"2025-10-20T22:03:02","modified_gmt":"2025-10-20T19:03:02","slug":"programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/","title":{"rendered":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f"},"content":{"rendered":"<p><h1>Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin<\/h1>\n<\/p>\n<p><body><\/p>\n<p>Python&#8217;da kontrol ak\u0131\u015f\u0131, programlar\u0131n\u0131z\u0131 dinamik ve ak\u0131ll\u0131 hale getirmenin anahtar\u0131d\u0131r. Ko\u015fullu ifadelerden d\u00f6ng\u00fclere kadar program ak\u0131\u015f\u0131n\u0131 y\u00f6netmeyi ad\u0131m ad\u0131m \u00f6\u011frenin ve kodunuzun beklenmedik durumlarla nas\u0131l ba\u015fa \u00e7\u0131kt\u0131\u011f\u0131n\u0131, belirli ko\u015fullara g\u00f6re farkl\u0131 yollar izledi\u011fini ve g\u00f6revleri otomatikle\u015ftirdi\u011fini ke\u015ffedin. Bu teknik makale, Python&#8217;daki kontrol ak\u0131\u015f\u0131 mekanizmalar\u0131n\u0131 s\u0131f\u0131rdan ele alarak, karma\u015f\u0131k programlar yazmak i\u00e7in sa\u011flam bir temel olu\u015fturman\u0131za yard\u0131mc\u0131 olacak, pratik \u00f6rnekler ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla dolu bir rehber sunmaktad\u0131r. \u0130ster yeni ba\u015flayan ister deneyimli bir geli\u015ftirici olun, kontrol ak\u0131\u015f\u0131 mant\u0131\u011f\u0131n\u0131 anlamak, daha g\u00fc\u00e7l\u00fc ve verimli Python uygulamalar\u0131 olu\u015fturman\u0131z i\u00e7in kritik \u00f6neme sahiptir. Bu temel kavramlara hakim olarak, kodunuzu daha okunur, bak\u0131m\u0131 daha kolay ve hatalara kar\u015f\u0131 daha diren\u00e7li hale getirebilirsiniz. Unutmay\u0131n, iyi yap\u0131land\u0131r\u0131lm\u0131\u015f bir kontrol ak\u0131\u015f\u0131, bir program\u0131n beynidir.<\/p>\n<p>Bir program\u0131n \u00e7al\u0131\u015fma mant\u0131\u011f\u0131n\u0131 belirleyen en temel kavramlardan biri, \u015f\u00fcphesiz &#8220;kontrol ak\u0131\u015f\u0131&#8221;d\u0131r. Peki, bu ne anlama geliyor? Basit\u00e7e ifade etmek gerekirse, kontrol ak\u0131\u015f\u0131, bir bilgisayar program\u0131n\u0131n hangi kod sat\u0131rlar\u0131n\u0131 hangi s\u0131rayla \u00e7al\u0131\u015ft\u0131raca\u011f\u0131n\u0131 belirleyen mekanizmad\u0131r. T\u0131pk\u0131 g\u00fcnl\u00fck hayat\u0131m\u0131zdaki &#8220;E\u011fer hava g\u00fczelse d\u0131\u015far\u0131 \u00e7\u0131k, de\u011filse evde kal&#8221; gibi kararlar veya &#8220;Her sabah kahvemi yap&#8221; gibi tekrarlayan eylemler gibi, programlar da belirli ko\u015fullara ba\u011fl\u0131 olarak farkl\u0131 yollar izlemeli veya baz\u0131 g\u00f6revleri defalarca tekrar etmelidir. Python, bu t\u00fcr senaryolar\u0131 y\u00f6netmek i\u00e7in zengin ve sezgisel bir kontrol ak\u0131\u015f\u0131 yap\u0131s\u0131 sunar. Bu yap\u0131, programlar\u0131n\u0131z\u0131n sadece talimatlar\u0131 yukar\u0131dan a\u015fa\u011f\u0131ya do\u011fru birer birer \u00e7al\u0131\u015ft\u0131rmaktan \u00e7ok daha fazlas\u0131n\u0131 yapabilmesini sa\u011flar; ona bir t\u00fcr &#8220;zeka&#8221; ve &#8220;adaptasyon yetene\u011fi&#8221; kazand\u0131r\u0131r.<\/p>\n<p>Kontrol ak\u0131\u015f\u0131n\u0131 anlamak, programlama yolculu\u011funuzda kritik bir d\u00f6n\u00fcm noktas\u0131d\u0131r. \u00c7\u00fcnk\u00fc ger\u00e7ek d\u00fcnya uygulamalar\u0131 asla basit, tek y\u00f6nl\u00fc i\u015f ak\u0131\u015flar\u0131na sahip de\u011fildir. Kullan\u0131c\u0131 etkile\u015fimleri, veritaban\u0131 sorgular\u0131, a\u011f ba\u011flant\u0131lar\u0131 veya dosya i\u015flemleri gibi say\u0131s\u0131z senaryo, program\u0131n dinamik kararlar almas\u0131n\u0131 gerektirir. \u00d6rne\u011fin, bir web sitesine giri\u015f yapmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zda, sistem kullan\u0131c\u0131 ad\u0131n\u0131z\u0131n ve \u015fifrenizin do\u011fru olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. E\u011fer do\u011fruysa, profil sayfan\u0131za y\u00f6nlendirilirsiniz; yanl\u0131\u015fsa, bir hata mesaj\u0131 al\u0131rs\u0131n\u0131z. Bu, temel bir kontrol ak\u0131\u015f\u0131 \u00f6rne\u011fidir. Benzer \u015fekilde, bir e-posta listesindeki her aboneye ki\u015fiselle\u015ftirilmi\u015f bir e-posta g\u00f6ndermek istedi\u011finizde, program\u0131n listeyi tek tek i\u015flemesi ve her abone i\u00e7in ayn\u0131 eylemi tekrarlamas\u0131 gerekir. Bu da d\u00f6ng\u00fc ad\u0131 verilen bir ba\u015fka kontrol ak\u0131\u015f\u0131 bile\u015fenidir.<\/p>\n<p>Bu makalede, Python&#8217;\u0131n kontrol ak\u0131\u015f\u0131n\u0131n temel ta\u015flar\u0131n\u0131 olu\u015fturan \u00fc\u00e7 ana \u00f6\u011feyi derinlemesine inceleyece\u011fiz: ko\u015fullu ifadeler (<code>if<\/code>, <code>elif<\/code>, <code>else<\/code>), d\u00f6ng\u00fcler (<code>for<\/code>, <code>while<\/code>) ve d\u00f6ng\u00fc kontrol deyimleri (<code>break<\/code>, <code>continue<\/code>, <code>pass<\/code>). Her bir kavram\u0131 ad\u0131m ad\u0131m ele alacak, bol miktarda pratik kod \u00f6rne\u011fi sunacak ve ger\u00e7ek d\u00fcnya senaryolar\u0131yla peki\u015ftirece\u011fiz. Amac\u0131m\u0131z, sadece bu yap\u0131lar\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 \u00f6\u011fretmekle kalmay\u0131p, ayn\u0131 zamanda onlar\u0131 ne zaman ve neden kullanman\u0131z gerekti\u011fini de anlaman\u0131z\u0131 sa\u011flamakt\u0131r. Bu mod\u00fcl\u00fcn sonunda, programlar\u0131n\u0131z\u0131n mant\u0131\u011f\u0131n\u0131 daha etkin bir \u015fekilde y\u00f6netme becerisine sahip olacak, b\u00f6ylece daha esnek, sa\u011flam ve kullan\u0131c\u0131 dostu uygulamalar geli\u015ftirebileceksiniz. Hadi ba\u015flayal\u0131m ve Python&#8217;\u0131n kontrol ak\u0131\u015f\u0131n\u0131n b\u00fcy\u00fcleyici d\u00fcnyas\u0131na ad\u0131m atal\u0131m!<\/p>\n<h2>Ko\u015fullu \u0130fadeler: <code>if<\/code>, <code>elif<\/code>, <code>else<\/code> ve Mant\u0131ksal Operat\u00f6rlerle Karar Mekanizmalar\u0131<\/h2>\n<p>Programlama, genellikle belirli ko\u015fullara g\u00f6re farkl\u0131 eylemler ger\u00e7ekle\u015ftirmekle ilgilidir. Bu karar verme yetene\u011fi, kodunuzu statik bir talimat listesinden \u00e7ok daha fazlas\u0131 haline getirir. Python&#8217;da ko\u015fullu ifadeler, programlar\u0131n\u0131za bu esnekli\u011fi kazand\u0131ran temel ara\u00e7lard\u0131r: <code>if<\/code>, <code>elif<\/code> (else if&#8217;in k\u0131saltmas\u0131) ve <code>else<\/code>. Bu yap\u0131lar, belirli bir ko\u015fulun do\u011fru (<code>True<\/code>) veya yanl\u0131\u015f (<code>False<\/code>) olmas\u0131na ba\u011fl\u0131 olarak kod bloklar\u0131n\u0131n y\u00fcr\u00fct\u00fclmesini sa\u011flar.<\/p>\n<p>En temel ko\u015fullu ifade olan <code>if<\/code>, belirli bir ko\u015ful do\u011fru oldu\u011funda bir kod blo\u011funu \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131l\u0131r. E\u011fer ko\u015ful yanl\u0131\u015fsa, <code>if<\/code> blo\u011fu atlan\u0131r. \u00d6rne\u011fin, bir kullan\u0131c\u0131n\u0131n ya\u015f\u0131n\u0131 kontrol eden basit bir program d\u00fc\u015f\u00fcnelim:<\/p>\n<pre><code>\nyas = 19\n\nif yas >= 18:\n    print(\"Ehliyet ba\u015fvurusunda bulunabilirsiniz.\")\n\nprint(\"Program devam ediyor.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>yas >= 18<\/code> ko\u015fulu do\u011fru oldu\u011fu i\u00e7in \"Ehliyet ba\u015fvurusunda bulunabilirsiniz.\" mesaj\u0131 ekrana yazd\u0131r\u0131lacakt\u0131r. E\u011fer ya\u015f 17 olsayd\u0131, bu mesaj atlanacakt\u0131. <code>if<\/code> blo\u011funun girintili (indent edilmi\u015f) oldu\u011funa dikkat edin; Python'da kod bloklar\u0131 girintilerle belirlenir ve bu, s\u00f6zdizimi i\u00e7in kritik bir kurald\u0131r.<\/p>\n<p>Genellikle bir ko\u015fulun do\u011fru olmad\u0131\u011f\u0131 durumlarda da belirli bir eylem ger\u00e7ekle\u015ftirmek isteriz. \u0130\u015fte bu noktada <code>else<\/code> ifadesi devreye girer. <code>if<\/code> ko\u015fulu yanl\u0131\u015f oldu\u011funda otomatik olarak <code>else<\/code> blo\u011fu \u00e7al\u0131\u015f\u0131r. Yukar\u0131daki \u00f6rne\u011fi geni\u015fletelim:<\/p>\n<pre><code>\nyas = 16\n\nif yas >= 18:\n    print(\"Ehliyet ba\u015fvurusunda bulunabilirsiniz.\")\nelse:\n    print(\"Ehliyet i\u00e7in ya\u015f\u0131n\u0131z hen\u00fcz uygun de\u011fil.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu durumda, <code>yas<\/code> 16 oldu\u011fu i\u00e7in <code>if<\/code> ko\u015fulu yanl\u0131\u015f olacak ve <code>else<\/code> blo\u011fundaki mesaj ekrana yazd\u0131r\u0131lacakt\u0131r.<\/p>\n<p>Birden fazla olas\u0131 durumunuz oldu\u011funda ve her biri i\u00e7in farkl\u0131 bir eylem ger\u00e7ekle\u015ftirmek istedi\u011finizde <code>elif<\/code> kullan\u0131l\u0131r. <code>elif<\/code>, birden fazla <code>if-else<\/code> zinciri olu\u015fturman\u0131za olanak tan\u0131r ve Python, ko\u015fullar\u0131 s\u0131rayla kontrol eder. \u0130lk do\u011fru bulunan ko\u015fulun blo\u011fu \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ve di\u011fer <code>elif<\/code> veya <code>else<\/code> bloklar\u0131 atlan\u0131r. Bu yap\u0131, birden \u00e7ok se\u00e7ene\u011fi y\u00f6netmek i\u00e7in olduk\u00e7a etkilidir.<\/p>\n<pre><code>\nhava_durumu = \"G\u00fcne\u015fli\"\n\nif hava_durumu == \"Ya\u011fmurlu\":\n    print(\"\u015eemsiyenizi almay\u0131 unutmay\u0131n.\")\nelif hava_durumu == \"Karl\u0131\":\n    print(\"Kal\u0131n giyinmeyi unutmay\u0131n, yollar buzlu olabilir.\")\nelif hava_durumu == \"G\u00fcne\u015fli\":\n    print(\"Harika bir g\u00fcn! D\u0131\u015far\u0131 \u00e7\u0131k\u0131p tad\u0131n\u0131 \u00e7\u0131kar\u0131n.\")\nelse:\n    print(\"Hava durumu belirsiz, haz\u0131rl\u0131kl\u0131 olun.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>hava_durumu<\/code> \"G\u00fcne\u015fli\" oldu\u011fu i\u00e7in \u00fc\u00e7\u00fcnc\u00fc <code>elif<\/code> blo\u011fu \u00e7al\u0131\u015facak ve di\u011ferleri atlanacakt\u0131r. Unutulmamal\u0131d\u0131r ki, ko\u015fullar\u0131n s\u0131ras\u0131 \u00f6nemlidir; Python ilk do\u011fru ko\u015fulu buldu\u011funda durur.<\/p>\n<p>Ko\u015fullu ifadeleri daha g\u00fc\u00e7l\u00fc ve esnek hale getiren bir di\u011fer \u00f6nemli ara\u00e7 da mant\u0131ksal operat\u00f6rlerdir: <code>and<\/code>, <code>or<\/code> ve <code>not<\/code>. Bu operat\u00f6rler, birden fazla ko\u015fulu tek bir ifadede birle\u015ftirmenize veya bir ko\u015fulun mant\u0131ksal tersini alman\u0131za olanak tan\u0131r:<\/p>\n<ul>\n<li><code>and<\/code>: Her iki ko\u015ful da do\u011fruysa ifade do\u011fru olur.<\/li>\n<li><code>or<\/code>: Ko\u015fullardan en az biri do\u011fruysa ifade do\u011fru olur.<\/li>\n<li><code>not<\/code>: Ko\u015fulun mant\u0131ksal tersini al\u0131r; do\u011fruyu yanl\u0131\u015f, yanl\u0131\u015f\u0131 do\u011fru yapar.<\/li>\n<\/ul>\n<pre><code>\nkullanici_adi = \"admin\"\nsifre = \"12345\"\nyetki = \"yonetici\"\n\nif kullanici_adi == \"admin\" and sifre == \"12345\":\n    print(\"Giri\u015f ba\u015far\u0131l\u0131!\")\n    if yetki == \"yonetici\" or yetki == \"superuser\":\n        print(\"Y\u00f6netici paneline eri\u015fim sa\u011fland\u0131.\")\n    else:\n        print(\"Normal kullan\u0131c\u0131 paneline y\u00f6nlendiriliyorsunuz.\")\nelse:\n    print(\"Kullan\u0131c\u0131 ad\u0131 veya \u015fifre yanl\u0131\u015f.\")\n\nif not (kullanici_adi == \"guest\"): # kullanici_adi \"guest\" de\u011filse True\n    print(\"Misafir olmayan bir kullan\u0131c\u0131 giri\u015f yap\u0131yor.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, bir kullan\u0131c\u0131n\u0131n sisteme giri\u015f yapma ve ard\u0131ndan yetkilerine g\u00f6re farkl\u0131 panellere eri\u015fme mant\u0131\u011f\u0131n\u0131 g\u00f6sterir. <code>and<\/code> operat\u00f6r\u00fc hem kullan\u0131c\u0131 ad\u0131n\u0131n hem de \u015fifrenin do\u011fru olmas\u0131n\u0131 beklerken, <code>or<\/code> operat\u00f6r\u00fc y\u00f6neticinin veya s\u00fcper kullan\u0131c\u0131n\u0131n eri\u015fimini kontrol eder. <code>not<\/code> operat\u00f6r\u00fc ise bir ko\u015fulun tam tersini sorgulamak i\u00e7in kullan\u0131l\u0131r. Bu operat\u00f6rler, programlar\u0131n\u0131zdaki karar alma s\u00fcre\u00e7lerini inan\u0131lmaz derecede esnek ve hassas hale getirir, b\u00f6ylece karma\u015f\u0131k senaryolar\u0131 bile kolayca y\u00f6netebilirsiniz. Do\u011fru kombinasyonlarla, programlar\u0131n\u0131z daha ak\u0131ll\u0131 ve adaptif hale gelir, \u00e7e\u015fitli durumlara g\u00f6re en uygun tepkileri verebilirler.<\/p>\n<h2><code>for<\/code> D\u00f6ng\u00fcs\u00fc: Python'da Veri Koleksiyonlar\u0131n\u0131 Etkili Bir \u015eekilde \u0130\u015flemek<\/h2>\n<p>Programlamada s\u0131kl\u0131kla kar\u015f\u0131la\u015f\u0131lan bir ihtiya\u00e7, belirli bir i\u015flemi bir veri koleksiyonundaki her \u00f6\u011fe \u00fczerinde tekrarlamakt\u0131r. \u00d6rne\u011fin, bir listedeki t\u00fcm say\u0131lar\u0131 toplamak, bir metin i\u00e7indeki her kelimeyi analiz etmek veya bir \u00fcr\u00fcn katalo\u011fundaki her \u00fcr\u00fcne belirli bir i\u015flem uygulamak isteyebilirsiniz. Python'da bu t\u00fcr tekrarlayan g\u00f6revleri otomatikle\u015ftirmek i\u00e7in kullan\u0131lan ana kontrol ak\u0131\u015f\u0131 yap\u0131lar\u0131ndan biri <code>for<\/code> d\u00f6ng\u00fcs\u00fcd\u00fcr. <code>for<\/code> d\u00f6ng\u00fcs\u00fc, belirli bir koleksiyon (liste, demet, dize, s\u00f6zl\u00fck vb.) \u00fczerindeki her \u00f6\u011fe i\u00e7in bir kod blo\u011funu \u00e7al\u0131\u015ft\u0131rman\u0131n zarif ve etkili bir yolunu sunar.<\/p>\n<p><code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn temel yap\u0131s\u0131 olduk\u00e7a basittir:<\/p>\n<pre><code>\nfor ogeler in koleksiyon:\n    # ogeler \u00fczerinde yap\u0131lacak i\u015flemler\n<\/pre>\n<p><\/code><\/p>\n<p>Burada <code>koleksiyon<\/code>, d\u00f6ng\u00fcn\u00fcn \u00fczerinde gezinece\u011fi herhangi bir yinelenebilir (iterable) nesnedir ve <code>ogeler<\/code>, her iterasyonda koleksiyondan al\u0131nan mevcut \u00f6\u011feyi temsil eden bir de\u011fi\u015fkendir. \u015eimdi basit bir liste \u00fczerinde gezinerek say\u0131lar\u0131 ekrana yazd\u0131ral\u0131m:<\/p>\n<pre><code>\nsayilar = [1, 2, 3, 4, 5]\n\nprint(\"Liste elemanlar\u0131:\")\nfor sayi in sayilar:\n    print(sayi)\n\nmeyveler = [\"elma\", \"armut\", \"kiraz\"]\nprint(\"\\nMeyveler:\")\nfor meyve in meyveler:\n    print(f\"Favori meyvem: {meyve}\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>for<\/code> d\u00f6ng\u00fcs\u00fc <code>sayilar<\/code> listesindeki her bir eleman\u0131 s\u0131ras\u0131yla <code>sayi<\/code> de\u011fi\u015fkenine atar ve <code>print(sayi)<\/code> komutunu her eleman i\u00e7in bir kez \u00e7al\u0131\u015ft\u0131r\u0131r. Ayn\u0131 mant\u0131k <code>meyveler<\/code> listesi i\u00e7in de ge\u00e7erlidir.<\/p>\n<p>Sadece listeler de\u011fil, dizeler (string) \u00fczerinde de <code>for<\/code> d\u00f6ng\u00fcs\u00fc kullanabilirsiniz. Her karakter \u00fczerinde tek tek i\u015flem yapmak istedi\u011finizde bu \u00e7ok kullan\u0131\u015fl\u0131d\u0131r:<\/p>\n<pre><code>\nkelime = \"Python\"\n\nprint(\"\\nKelimenin harfleri:\")\nfor harf in kelime:\n    print(harf)\n<\/pre>\n<p><\/code><\/p>\n<p>Bazen bir liste \u00fczerinde gezinirken hem \u00f6\u011fenin kendisine hem de o \u00f6\u011fenin indeksine (s\u0131ra numaras\u0131na) ihtiyac\u0131n\u0131z olabilir. Python'\u0131n <code>enumerate()<\/code> fonksiyonu bu durumu kolayla\u015ft\u0131r\u0131r:<\/p>\n<pre><code>\nurunler = [\"Laptop\", \"Mouse\", \"Klavye\"]\n\nprint(\"\\n\u00dcr\u00fcnler ve \u0130ndeksleri:\")\nfor indeks, urun in enumerate(urunler):\n    print(f\"{indeks}: {urun}\")\n<\/pre>\n<p><\/code><\/p>\n<p><code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn yayg\u0131n bir kullan\u0131m alan\u0131 da belirli bir aral\u0131ktaki say\u0131lar \u00fczerinde i\u015flem yapmakt\u0131r. Bunun i\u00e7in <code>range()<\/code> fonksiyonunu kullan\u0131r\u0131z. <code>range(baslangic, bitis, adim)<\/code> fonksiyonu, belirli bir aral\u0131kta say\u0131 dizisi \u00fcretir:<\/p>\n<pre><code>\n# 0'dan 4'e kadar say\u0131lar (5 dahil de\u011fil)\nprint(\"\\n0'dan 4'e kadar say\u0131lar:\")\nfor i in range(5):\n    print(i)\n\n# 2'den 8'e kadar \u00e7ift say\u0131lar (8 dahil de\u011fil, 2'\u015fer atlayarak)\nprint(\"\\n2'den 8'e kadar \u00e7ift say\u0131lar:\")\nfor i in range(2, 8, 2):\n    print(i)\n<\/pre>\n<p><\/code><\/p>\n<p><code>for<\/code> d\u00f6ng\u00fcleri, ger\u00e7ek d\u00fcnya senaryolar\u0131nda veri i\u015fleme, rapor olu\u015fturma, dosya okuma ve yazma gibi bir\u00e7ok alanda vazge\u00e7ilmezdir. \u00d6rne\u011fin, bir e-ticaret uygulamas\u0131nda m\u00fc\u015fterinin sepetindeki her bir \u00fcr\u00fcn\u00fc i\u015fleyip toplam tutar\u0131 hesaplayabilir veya stok durumunu g\u00fcncelleyebilirsiniz:<\/p>\n<pre><code>\nsepet = [\n    {\"urun\": \"Ayakkab\u0131\", \"fiyat\": 300, \"adet\": 2},\n    {\"urun\": \"Pantolon\", \"fiyat\": 200, \"adet\": 1},\n    {\"urun\": \"T-shirt\", \"fiyat\": 100, \"adet\": 3}\n]\n\ntoplam_fiyat = 0\nprint(\"\\nAl\u0131\u015fveri\u015f Sepeti Detaylar\u0131:\")\nfor urun_detayi in sepet:\n    urun_adi = urun_detayi[\"urun\"]\n    fiyat = urun_detayi[\"fiyat\"]\n    adet = urun_detayi[\"adet\"]\n    urun_toplam = fiyat * adet\n    toplam_fiyat += urun_toplam\n    print(f\"{urun_adi} ({adet} adet) - Birim Fiyat: {fiyat} TL - Toplam: {urun_toplam} TL\")\n\nprint(f\"\\nGenel Toplam: {toplam_fiyat} TL\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu basit al\u0131\u015fveri\u015f sepeti \u00f6rne\u011fi, <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn bir s\u00f6zl\u00fck listesi \u00fczerinde nas\u0131l kolayca gezindi\u011fini ve her \u00f6\u011fenin \u00f6zelliklerine g\u00f6re i\u015flem yapt\u0131\u011f\u0131n\u0131 g\u00f6sterir. \u0130\u00e7 i\u00e7e d\u00f6ng\u00fcler de, \u00f6rne\u011fin bir matrisin t\u00fcm elemanlar\u0131n\u0131 veya \u00e7ok boyutlu listeleri i\u015flerken olduk\u00e7a kullan\u0131\u015fl\u0131d\u0131r. <code>for<\/code> d\u00f6ng\u00fcleri, kodunuzu daha okunabilir, bak\u0131m\u0131 daha kolay ve \u00f6zellikle b\u00fcy\u00fck veri setleri veya tekrarlayan i\u015flemlerle u\u011fra\u015f\u0131rken daha verimli hale getirir. Bu y\u00fczden, Python'da geli\u015ftirme yaparken en s\u0131k ba\u015fvuraca\u011f\u0131n\u0131z kontrol ak\u0131\u015f\u0131 yap\u0131lar\u0131ndan biri olacakt\u0131r.<\/p>\n<h2><code>while<\/code> D\u00f6ng\u00fcs\u00fc: \u015eartlara Ba\u011fl\u0131 Tekrar ve Dinamik Kullan\u0131c\u0131 Etkile\u015fimleri<\/h2>\n<p>Programlamada belirli bir ko\u015ful do\u011fru oldu\u011fu s\u00fcrece bir kod blo\u011funu tekrar tekrar \u00e7al\u0131\u015ft\u0131rmak istedi\u011fimiz durumlar ortaya \u00e7\u0131kar. Bu t\u00fcr senaryolarda <code>while<\/code> d\u00f6ng\u00fcs\u00fc devreye girer. <code>for<\/code> d\u00f6ng\u00fcs\u00fc genellikle bilinen bir koleksiyonun veya belirli bir say\u0131 aral\u0131\u011f\u0131n\u0131n her \u00f6\u011fesi \u00fczerinde gezinmek i\u00e7in kullan\u0131l\u0131rken, <code>while<\/code> d\u00f6ng\u00fcs\u00fc bir ko\u015fulun ne kadar s\u00fcreyle do\u011fru kalaca\u011f\u0131n\u0131 bilmedi\u011fimiz veya bir olay\u0131n ger\u00e7ekle\u015fmesine ba\u011fl\u0131 olarak tekrar eden i\u015flemler i\u00e7in idealdir.<\/p>\n<p><code>while<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn temel yap\u0131s\u0131 \u015fu \u015fekildedir:<\/p>\n<pre><code>\nwhile kosul:\n    # kosul do\u011fru oldu\u011fu s\u00fcrece bu kod blo\u011fu \u00e7al\u0131\u015f\u0131r\n    # kosulu etkileyen bir ifade burada olmal\u0131 (aksi halde sonsuz d\u00f6ng\u00fc)\n<\/pre>\n<p><\/code><\/p>\n<p><code>kosul<\/code> ifadesi, her d\u00f6ng\u00fc iterasyonundan \u00f6nce kontrol edilir. E\u011fer <code>kosul<\/code> do\u011fru (<code>True<\/code>) ise, d\u00f6ng\u00fc blo\u011fundaki kodlar \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r ve ko\u015ful tekrar kontrol edilir. Bu i\u015flem, ko\u015ful yanl\u0131\u015f (<code>False<\/code>) olana kadar devam eder. Ko\u015ful ba\u015flang\u0131\u00e7ta yanl\u0131\u015fsa, d\u00f6ng\u00fc blo\u011fu hi\u00e7 \u00e7al\u0131\u015ft\u0131r\u0131lmaz.<\/p>\n<p>Bir saya\u00e7 ile basit bir <code>while<\/code> d\u00f6ng\u00fcs\u00fc \u00f6rne\u011fi:<\/p>\n<pre><code>\nsayac = 0\n\nwhile sayac < 5:\n    print(f\"Saya\u00e7 de\u011feri: {sayac}\")\n    sayac += 1 # Sayac\u0131 art\u0131rmay\u0131 unutmay\u0131n!\n\nprint(\"D\u00f6ng\u00fc tamamland\u0131.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, <code>sayac<\/code> 5'ten k\u00fc\u00e7\u00fck oldu\u011fu s\u00fcrece d\u00f6ng\u00fc \u00e7al\u0131\u015f\u0131r. Her iterasyonda <code>sayac<\/code> de\u011feri bir art\u0131r\u0131l\u0131r. E\u011fer <code>sayac += 1<\/code> ifadesi olmasayd\u0131, <code>sayac<\/code> de\u011feri hi\u00e7 de\u011fi\u015fmeyecek ve d\u00f6ng\u00fc sonsuza kadar devam edecekti. Buna \"sonsuz d\u00f6ng\u00fc\" denir ve program\u0131n tak\u0131l\u0131p kalmas\u0131na neden olabilir. Bu y\u00fczden <code>while<\/code> d\u00f6ng\u00fcs\u00fc kullan\u0131rken, d\u00f6ng\u00fcy\u00fc sonland\u0131racak bir ko\u015fulun mutlaka sa\u011flanaca\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<div class=\"uzman-ipucu\">\n  Uzman \u0130pucu: Sonsuz d\u00f6ng\u00fclerden ka\u00e7\u0131nmak i\u00e7in, <code>while<\/code> ko\u015fulunu etkileyecek bir de\u011fi\u015fikli\u011fi d\u00f6ng\u00fc blo\u011fu i\u00e7inde mutlaka yap\u0131n. Genellikle bu, bir sayac\u0131 art\u0131rmak veya kullan\u0131c\u0131dan d\u00f6ng\u00fcy\u00fc sonland\u0131racak bir giri\u015f almak gibi eylemleri i\u00e7erir.\n<\/div>\n<p><code>while<\/code> d\u00f6ng\u00fcleri, \u00f6zellikle kullan\u0131c\u0131dan ge\u00e7erli bir giri\u015f alana kadar s\u00fcrekli olarak tekrar eden i\u015flemler i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r. \u00d6rne\u011fin, bir uygulamaya giri\u015f yaparken do\u011fru \u015fifre girilene kadar kullan\u0131c\u0131dan tekrar \u015fifre isteme senaryosu:<\/p>\n<pre><code>\ndogru_sifre = \"gizli123\"\ngirilen_sifre = \"\"\n\nwhile girilen_sifre != dogru_sifre:\n    girilen_sifre = input(\"L\u00fctfen \u015fifrenizi girin: \")\n    if girilen_sifre != dogru_sifre:\n        print(\"Yanl\u0131\u015f \u015fifre! L\u00fctfen tekrar deneyin.\")\n\nprint(\"Giri\u015f ba\u015far\u0131l\u0131! Ho\u015f geldiniz.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu interaktif \u00f6rnekte, kullan\u0131c\u0131 do\u011fru \u015fifreyi girene kadar <code>while<\/code> d\u00f6ng\u00fcs\u00fc devam eder ve her yanl\u0131\u015f giri\u015fte bir uyar\u0131 mesaj\u0131 g\u00f6sterilir. Do\u011fru \u015fifre girildi\u011finde d\u00f6ng\u00fc sonlan\u0131r ve ba\u015far\u0131l\u0131 giri\u015f mesaj\u0131 g\u00f6sterilir.<\/p>\n<p>T\u0131pk\u0131 <code>for<\/code> d\u00f6ng\u00fclerinde oldu\u011fu gibi, <code>while<\/code> d\u00f6ng\u00fclerinde de iste\u011fe ba\u011fl\u0131 bir <code>else<\/code> blo\u011fu bulunabilir. Bu <code>else<\/code> blo\u011fu, d\u00f6ng\u00fc ko\u015fulu yanl\u0131\u015f hale geldi\u011finde (yani d\u00f6ng\u00fc normal bir \u015fekilde sona erdi\u011finde) \u00e7al\u0131\u015f\u0131r. E\u011fer d\u00f6ng\u00fc bir <code>break<\/code> deyimi ile sonland\u0131r\u0131l\u0131rsa, <code>else<\/code> blo\u011fu \u00e7al\u0131\u015fmaz.<\/p>\n<pre><code>\nsayi = 0\nhedef = 3\n\nwhile sayi < hedef:\n    print(f\"Say\u0131 {sayi} ve hedefe ula\u015f\u0131lmad\u0131.\")\n    sayi += 1\nelse:\n    print(f\"D\u00f6ng\u00fc tamamland\u0131! Say\u0131 {sayi} hedefe ula\u015ft\u0131 veya ge\u00e7ti.\")\n\n# Break ile biten bir d\u00f6ng\u00fcde else blo\u011fu \u00e7al\u0131\u015fmaz\nprint(\"\\n--- Break ile D\u00f6ng\u00fc Sonland\u0131rma ---\")\nsayi_b = 0\nwhile sayi_b < 5:\n    if sayi_b == 2:\n        print(\"2'ye ula\u015f\u0131ld\u0131, d\u00f6ng\u00fc sonland\u0131r\u0131l\u0131yor.\")\n        break\n    print(f\"Say\u0131_b: {sayi_b}\")\n    sayi_b += 1\nelse:\n    print(\"Bu mesaj g\u00f6r\u00fcnmeyecek \u00e7\u00fcnk\u00fc d\u00f6ng\u00fc break ile bitti.\")\n<\/pre>\n<p><\/code><\/p>\n<p><code>while<\/code> d\u00f6ng\u00fcleri, oyun motorlar\u0131, kullan\u0131c\u0131 aray\u00fcz\u00fc d\u00f6ng\u00fcleri veya belirli bir durum de\u011fi\u015fene kadar s\u00fcrekli \u00e7al\u0131\u015fan servisler gibi senaryolarda hayati \u00f6neme sahiptir. Kullan\u0131c\u0131 etkile\u015fimlerini y\u00f6netmek, belirsiz say\u0131da tekrar gerektiren i\u015flemleri otomatikle\u015ftirmek ve program ak\u0131\u015f\u0131n\u0131 ko\u015fullu olarak kontrol etmek i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir ara\u00e7t\u0131r. Do\u011fru kullan\u0131ld\u0131\u011f\u0131nda, programlar\u0131n\u0131za ak\u0131ll\u0131 ve dinamik tepkiler kazand\u0131r\u0131r.<\/p>\n<h2>D\u00f6ng\u00fc Ak\u0131\u015f\u0131n\u0131 Hassas \u015eekilde Kontrol Etmek: <code>break<\/code>, <code>continue<\/code> ve <code>pass<\/code> Deyimleri<\/h2>\n<p>D\u00f6ng\u00fcler, kod tekrar\u0131n\u0131 azaltarak programlama verimlili\u011fini art\u0131ran g\u00fc\u00e7l\u00fc ara\u00e7lard\u0131r. Ancak bazen bir d\u00f6ng\u00fcn\u00fcn varsay\u0131lan ak\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirmek, belirli bir ko\u015fulda d\u00f6ng\u00fcy\u00fc aniden sonland\u0131rmak, mevcut iterasyonu atlamak veya hi\u00e7bir \u015fey yapmamak isteyebiliriz. Python, bu t\u00fcr senaryolar\u0131 y\u00f6netmek i\u00e7in \u00fc\u00e7 \u00f6zel deyim sunar: <code>break<\/code>, <code>continue<\/code> ve <code>pass<\/code>. Bu deyimler, program ak\u0131\u015f\u0131 \u00fczerinde daha hassas kontrol sa\u011flaman\u0131za olanak tan\u0131r.<\/p>\n<h3><code>break<\/code> Deyimi: D\u00f6ng\u00fcy\u00fc Aniden Sonland\u0131rmak<\/h3>\n<p><code>break<\/code> deyimi, i\u00e7inde bulundu\u011fu d\u00f6ng\u00fcy\u00fc (<code>for<\/code> veya <code>while<\/code>) aniden ve tamamen sonland\u0131rmak i\u00e7in kullan\u0131l\u0131r. <code>break<\/code> ile kar\u015f\u0131la\u015f\u0131ld\u0131\u011f\u0131nda, d\u00f6ng\u00fcden hemen \u00e7\u0131k\u0131l\u0131r ve d\u00f6ng\u00fcn\u00fcn ard\u0131ndan gelen ilk kod sat\u0131r\u0131ndan devam edilir. Bu, \u00f6zellikle bir arama i\u015flemi s\u0131ras\u0131nda arad\u0131\u011f\u0131n\u0131z \u00f6\u011feyi buldu\u011funuzda veya bir hata durumu olu\u015ftu\u011funda d\u00f6ng\u00fcn\u00fcn geri kalan\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmaya gerek kalmad\u0131\u011f\u0131nda \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code>\nurun_listesi = [\"Elma\", \"Armut\", \"Muz\", \"Portakal\", \"\u00c7ilek\"]\naranan_urun = \"Muz\"\n\nfor urun in urun_listesi:\n    if urun == aranan_urun:\n        print(f\"Arad\u0131\u011f\u0131n\u0131z \u00fcr\u00fcn '{aranan_urun}' bulundu!\")\n        break # \u00dcr\u00fcn bulundu\u011funda d\u00f6ng\u00fcy\u00fc sonland\u0131r\n    print(f\"'{urun}' kontrol ediliyor...\")\n\nprint(\"Arama i\u015flemi tamamland\u0131.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, \"Muz\" bulundu\u011funda <code>break<\/code> deyimi d\u00f6ng\u00fcy\u00fc durdurur ve \"Portakal\" ile \"\u00c7ilek\" kontrol edilmez. Bu, gereksiz i\u015flem yap\u0131lmas\u0131n\u0131 engelleyerek program\u0131n verimlili\u011fini art\u0131r\u0131r.<\/p>\n<h3><code>continue<\/code> Deyimi: Mevcut \u0130terasyonu Atlamak<\/h3>\n<p><code>continue<\/code> deyimi, i\u00e7inde bulundu\u011fu d\u00f6ng\u00fcn\u00fcn mevcut iterasyonunu atlay\u0131p, bir sonraki iterasyona ge\u00e7mek i\u00e7in kullan\u0131l\u0131r. <code>continue<\/code> ile kar\u015f\u0131la\u015f\u0131ld\u0131\u011f\u0131nda, d\u00f6ng\u00fc blo\u011funun geri kalan\u0131ndaki kodlar atlan\u0131r ve d\u00f6ng\u00fc bir sonraki \u00f6\u011feyi (<code>for<\/code> d\u00f6ng\u00fcs\u00fcnde) veya bir sonraki ko\u015ful kontrol\u00fcn\u00fc (<code>while<\/code> d\u00f6ng\u00fcs\u00fcnde) ba\u015flat\u0131r. Bu, belirli bir ko\u015fulu kar\u015f\u0131layan \u00f6\u011feler \u00fczerinde i\u015flem yapmak istemedi\u011finiz durumlarda kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code>\nsayilar = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\nprint(\"\\nSadece \u00e7ift say\u0131lar\u0131 yazd\u0131r:\")\nfor sayi in sayilar:\n    if sayi % 2 != 0: # E\u011fer say\u0131 tek ise\n        continue      # Bu iterasyonu atla, bir sonraki say\u0131ya ge\u00e7\n    print(sayi)\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, bir say\u0131 tek oldu\u011funda <code>continue<\/code> deyimi tetiklenir ve <code>print(sayi)<\/code> ifadesi atlan\u0131r. B\u00f6ylece sadece \u00e7ift say\u0131lar ekrana yazd\u0131r\u0131lm\u0131\u015f olur. <code>continue<\/code>, veri temizli\u011fi veya belirli ko\u015fullar\u0131 sa\u011flamayan kay\u0131tlar\u0131 filtreleme gibi senaryolarda olduk\u00e7a etkilidir.<\/p>\n<h3><code>pass<\/code> Deyimi: Yer Tutucu \u0130\u015flevi<\/h3>\n<p><code>pass<\/code> deyimi, Python'da \"hi\u00e7bir \u015fey yapma\" anlam\u0131na gelir. Bir d\u00f6ng\u00fc, ko\u015fullu ifade, fonksiyon veya s\u0131n\u0131f tan\u0131m\u0131nda bir kod blo\u011funun bo\u015f olmamas\u0131 gerekti\u011fi, ancak hen\u00fcz ne yaz\u0131laca\u011f\u0131na karar verilmedi\u011fi durumlarda bir yer tutucu olarak kullan\u0131l\u0131r. <code>pass<\/code>, s\u00f6zdizimsel olarak bir kod blo\u011fu gerektiren ancak mant\u0131ksal olarak bir i\u015flem gerektirmeyen yerlerde kullan\u0131l\u0131r ve program\u0131n hatas\u0131z \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code>\nprint(\"\\nPass deyimi \u00f6rne\u011fi:\")\nfor i in range(3):\n    if i == 1:\n        pass # \u015eimdilik hi\u00e7bir \u015fey yapma, ileride buraya bir kod eklenebilir\n    else:\n        print(f\"Say\u0131: {i}\")\n\ndef gelecekteki_fonksiyon():\n    pass # Hen\u00fcz implement edilmedi\n\n# Kullan\u0131c\u0131 giri\u015fi \u00fczerinde basit bir placeholder\nkullanici_girisi = input(\"Bir \u015fey girin: \")\nif kullanici_girisi == \"\u00f6zel\":\n    pass # \u00d6zel giri\u015f i\u00e7in bir i\u015flem tan\u0131mlanacak\nelse:\n    print(f\"Standart giri\u015f: {kullanici_girisi}\")\n<\/pre>\n<p><\/code><\/p>\n<p><code>pass<\/code> deyimi, \u00f6zellikle kod geli\u015ftirme a\u015famas\u0131nda, belirli bir fonksiyonun veya kod blo\u011funun tasla\u011f\u0131n\u0131 olu\u015ftururken veya ileride eklenecek bir \u00f6zelli\u011fin yerini ay\u0131r\u0131rken \u00e7ok yararl\u0131d\u0131r. Program\u0131n ak\u0131\u015f\u0131n\u0131 etkilemez, sadece s\u00f6zdizimsel bir bo\u015flu\u011fu doldurur. <code>break<\/code>, <code>continue<\/code> ve <code>pass<\/code>, d\u00f6ng\u00fclerinizi ve ko\u015fullu yap\u0131lar\u0131n\u0131z\u0131 daha dinamik ve esnek hale getirerek, kodunuz \u00fczerinde \u00fcst d\u00fczey kontrol sa\u011flaman\u0131za yard\u0131mc\u0131 olan vazge\u00e7ilmez kontrol ak\u0131\u015f\u0131 deyimleridir.<\/p>\n<h2>Vaka Analizi ve Geli\u015fmi\u015f \u0130pu\u00e7lar\u0131: Kontrol Ak\u0131\u015f\u0131yla Ger\u00e7ek D\u00fcnya Problemlerini \u00c7\u00f6zmek<\/h2>\n<p>\u015eimdiye kadar Python'daki temel kontrol ak\u0131\u015f\u0131 yap\u0131lar\u0131n\u0131 (<code>if<\/code>, <code>elif<\/code>, <code>else<\/code>, <code>for<\/code>, <code>while<\/code>, <code>break<\/code>, <code>continue<\/code>, <code>pass<\/code>) detayl\u0131 bir \u015fekilde inceledik. Bu b\u00f6l\u00fcmde, \u00f6\u011frendiklerimizi bir araya getirerek ger\u00e7ek d\u00fcnya bir problemi \u00e7\u00f6zece\u011fimiz bir vaka analizi yapaca\u011f\u0131z ve ard\u0131ndan kontrol ak\u0131\u015f\u0131 kullan\u0131m\u0131n\u0131 daha da geli\u015ftirecek ileri d\u00fczey ipu\u00e7lar\u0131na de\u011finece\u011fiz. Amac\u0131m\u0131z, sadece kod yazmak de\u011fil, ayn\u0131 zamanda temiz, verimli ve bak\u0131m\u0131 kolay kod yazmak i\u00e7in en iyi uygulamalar\u0131 anlamakt\u0131r.<\/p>\n<h3>Vaka Analizi: Etkile\u015fimli Bir Konsol Hesap Makinesi Uygulamas\u0131<\/h3>\n<p>Haydi, kullan\u0131c\u0131dan s\u00fcrekli girdi alan, temel matematiksel i\u015flemleri ger\u00e7ekle\u015ftiren ve kullan\u0131c\u0131 \"\u00e7\u0131k\u0131\u015f\" yazana kadar \u00e7al\u0131\u015fan basit bir konsol tabanl\u0131 hesap makinesi geli\u015ftirelim. Bu uygulama, \u00f6\u011frendi\u011fimiz hemen her kontrol ak\u0131\u015f\u0131 kavram\u0131n\u0131 kullanmam\u0131z\u0131 gerektirecek.<\/p>\n<pre><code>\nprint(\"---------------------------------------\")\nprint(\"Basit Python Konsol Hesap Makinesi\")\nprint(\"\u0130\u015flemler: toplama (+), \u00e7\u0131karma (-), \u00e7arpma (*), b\u00f6lme (\/)\")\nprint(\"\u00c7\u0131kmak i\u00e7in '\u00e7\u0131k\u0131\u015f' yaz\u0131n.\")\nprint(\"---------------------------------------\")\n\nwhile True: # Sonsuz d\u00f6ng\u00fc, kullan\u0131c\u0131 '\u00e7\u0131k\u0131\u015f' yazana kadar devam edecek\n    giris = input(\"Bir i\u015flem se\u00e7in (\u00f6rn: 5 + 3 veya \u00e7\u0131k\u0131\u015f): \")\n\n    if giris.lower() == '\u00e7\u0131k\u0131\u015f':\n        print(\"Hesap makinesi kapat\u0131l\u0131yor. G\u00fcle g\u00fcle!\")\n        break # D\u00f6ng\u00fcden \u00e7\u0131k\n\n    # Giri\u015fi par\u00e7ala: say\u01311, operat\u00f6r, say\u01312\n    parcalar = giris.split()\n\n    if len(parcalar) != 3:\n        print(\"Ge\u00e7ersiz giri\u015f format\u0131. L\u00fctfen 'say\u0131 operat\u00f6r say\u0131' \u015feklinde girin (\u00f6rn: 5 + 3).\")\n        continue # Bu iterasyonu atla, yeni giri\u015f iste\n\n    try:\n        sayi1 = float(parcalar[0])\n        operator = parcalar[1]\n        sayi2 = float(parcalar[2])\n    except ValueError:\n        print(\"Ge\u00e7ersiz say\u0131 girdiniz. L\u00fctfen say\u0131sal de\u011ferler kullan\u0131n.\")\n        continue # Bu iterasyonu atla\n\n    sonuc = None # Sonu\u00e7 de\u011fi\u015fkenini ba\u015flang\u0131\u00e7ta bo\u015f tut\n\n    if operator == '+':\n        sonuc = sayi1 + sayi2\n    elif operator == '-':\n        sonuc = sayi1 - sayi2\n    elif operator == '*':\n        sonuc = sayi1 * sayi2\n    elif operator == '\/':\n        if sayi2 == 0:\n            print(\"S\u0131f\u0131ra b\u00f6lme hatas\u0131! L\u00fctfen ba\u015fka bir say\u0131 girin.\")\n            continue # Bu iterasyonu atla\n        sonuc = sayi1 \/ sayi2\n    else:\n        print(f\"Ge\u00e7ersiz operat\u00f6r: '{operator}'. L\u00fctfen '+', '-', '*' veya '\/' kullan\u0131n.\")\n        continue # Bu iterasyonu atla\n\n    if sonuc is not None:\n        print(f\"Sonu\u00e7: {sonuc}\")\n\nprint(\"Uygulama tamamen sonland\u0131.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu vaka analizinde, a\u015fa\u011f\u0131daki kontrol ak\u0131\u015f\u0131 elemanlar\u0131n\u0131 kulland\u0131k:<\/p>\n<ul>\n<li><code>while True:<\/code>: Kullan\u0131c\u0131n\u0131n '\u00e7\u0131k\u0131\u015f' komutu girene kadar s\u00fcrekli \u00e7al\u0131\u015facak bir ana d\u00f6ng\u00fc.<\/li>\n<li><code>if giris.lower() == '\u00e7\u0131k\u0131\u015f': break<\/code>: Kullan\u0131c\u0131 \u00e7\u0131k\u0131\u015f istedi\u011finde d\u00f6ng\u00fcy\u00fc sonland\u0131rmak i\u00e7in <code>if<\/code> ve <code>break<\/code>.<\/li>\n<li><code>if len(parcalar) != 3: continue<\/code>: Giri\u015f format\u0131 hatal\u0131ysa, bu iterasyonu atlay\u0131p yeni bir giri\u015f istemek i\u00e7in <code>if<\/code> ve <code>continue<\/code>.<\/li>\n<li><code>try-except ValueError: continue<\/code>: Say\u0131sal olmayan giri\u015flerde hatay\u0131 yakalamak ve devam etmek i\u00e7in.<\/li>\n<li><code>if operator == '+': elif ... else: continue<\/code>: Kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi operat\u00f6re g\u00f6re do\u011fru matematiksel i\u015flemi se\u00e7mek i\u00e7in kapsaml\u0131 bir <code>if-elif-else<\/code> zinciri. Hatal\u0131 operat\u00f6rde <code>continue<\/code>.<\/li>\n<li><code>if sayi2 == 0: continue<\/code>: S\u0131f\u0131ra b\u00f6lme hatas\u0131n\u0131 \u00f6nlemek i\u00e7in \u00f6zel bir ko\u015ful.<\/li>\n<\/ul>\n<p>Bu \u00f6rnek, farkl\u0131 kontrol ak\u0131\u015f\u0131 yap\u0131lar\u0131n\u0131 birle\u015ftirerek nas\u0131l i\u015flevsel ve kullan\u0131c\u0131 dostu bir uygulama olu\u015fturulabilece\u011fini a\u00e7\u0131k\u00e7a g\u00f6stermektedir. Kullan\u0131c\u0131n\u0131n davran\u0131\u015f\u0131na dinamik olarak tepki veren, hata durumlar\u0131n\u0131 y\u00f6netebilen ve istenmeyen giri\u015fleri filtreleyebilen bir program tasarlad\u0131k.<\/p>\n<h3>Geli\u015fmi\u015f \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h3>\n<p>Kontrol ak\u0131\u015f\u0131n\u0131 etkin bir \u015fekilde kullanmak sadece s\u00f6zdizimini bilmekle bitmez; ayn\u0131 zamanda okunabilir, bak\u0131m\u0131 kolay ve verimli kod yazmak i\u00e7in en iyi uygulamalar\u0131 benimsemek de \u00f6nemlidir.<\/p>\n<div class=\"uzman-ipucu\">\n  Uzman \u0130pucu: Karma\u015f\u0131k ko\u015fullar\u0131 y\u00f6netmek i\u00e7in, ko\u015fullar\u0131 anlaml\u0131 de\u011fi\u015fkenlere atayarak veya k\u00fc\u00e7\u00fck fonksiyonlara b\u00f6lerek kodunuzu daha okunabilir hale getirin.\n<\/div>\n<ul>\n<li>\n        <strong>Ternary Ko\u015fullu \u0130fade (Conditional Expression):<\/strong> Basit <code>if-else<\/code> durumlar\u0131 i\u00e7in tek sat\u0131rl\u0131k, daha kompakt bir s\u00f6zdizimi sunar. \u00d6zellikle bir de\u011fi\u015fkene ko\u015fullu olarak de\u011fer ataman\u0131z gerekti\u011finde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code>\n# Normal if-else\n# durum = \"gecer\"\n# if not puan < 50:\n#     durum = \"basarili\"\n# else:\n#     durum = \"basarisiz\"\n\n# Ternary operat\u00f6r ile\npuan = 65\ndurum = \"ba\u015far\u0131l\u0131\" if puan >= 50 else \"ba\u015far\u0131s\u0131z\"\nprint(f\"Puan {puan} ise durum: {durum}\")\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li>\n        <strong>Derin \u0130\u00e7 \u0130\u00e7e Ge\u00e7mi\u015f Ko\u015fullardan Ka\u00e7\u0131n\u0131n:<\/strong> \u00c7ok fazla i\u00e7 i\u00e7e <code>if<\/code> blo\u011fu (nesting), kodunuzu okumay\u0131 ve anlamay\u0131 zorla\u015ft\u0131r\u0131r (\"arrow anti-pattern\" olarak da bilinir). Bunun yerine, olumsuz ko\u015fullar\u0131 erken kontrol edip <code>return<\/code> veya <code>continue<\/code> kullanarak i\u015flevden\/d\u00f6ng\u00fcden erken \u00e7\u0131kmak (Guard Clauses) daha iyi bir yakla\u015f\u0131md\u0131r.<\/p>\n<pre><code>\n# K\u00f6t\u00fc \u00f6rnek: Derin i\u00e7 i\u00e7e\n# if kullanici_var_mi:\n#     if sifre_dogru_mu:\n#         if yetki_yeterli_mi:\n#             # \u0130\u015flem yap\n#         else:\n#             print(\"Yetkiniz yok.\")\n#     else:\n#         print(\"Yanl\u0131\u015f \u015fifre.\")\n# else:\n#     print(\"Kullan\u0131c\u0131 bulunamad\u0131.\")\n\n# \u0130yi \u00f6rnek: Erken \u00e7\u0131k\u0131\u015f (Guard Clauses)\ndef giris_kontrol(kullanici, sifre, yetki):\n    if not kullanici_var_mi(kullanici):\n        print(\"Kullan\u0131c\u0131 bulunamad\u0131.\")\n        return False\n    if not sifre_dogru_mu(sifre):\n        print(\"Yanl\u0131\u015f \u015fifre.\")\n        return False\n    if not yetki_yeterli_mi(yetki):\n        print(\"Yetkiniz yok.\")\n        return False\n    # \u0130\u015flem yap\n    print(\"Giri\u015f ba\u015far\u0131l\u0131 ve yetki yeterli.\")\n    return True\n        <\/pre>\n<p><\/code>\n    <\/li>\n<li>\n        <strong>Fonksiyonlara Ay\u0131rma:<\/strong> Karma\u015f\u0131k kontrol ak\u0131\u015f\u0131 mant\u0131\u011f\u0131n\u0131 k\u00fc\u00e7\u00fck, tek bir g\u00f6revi yapan fonksiyonlara b\u00f6lmek, kodunuzu daha mod\u00fcler, test edilebilir ve anla\u015f\u0131l\u0131r hale getirir. Her fonksiyonun a\u00e7\u0131k bir amac\u0131 olmal\u0131d\u0131r.\n    <\/li>\n<li>\n        <strong>K\u0131sa Devre De\u011ferlendirmesi (<code>and<\/code>, <code>or<\/code>):<\/strong> Python'daki mant\u0131ksal operat\u00f6rler k\u0131sa devre de\u011ferlendirmesi yapar. Bu, <code>and<\/code> operat\u00f6r\u00fcnde ilk ko\u015ful yanl\u0131\u015fsa ikinci ko\u015fulun hi\u00e7 kontrol edilmemesi, <code>or<\/code> operat\u00f6r\u00fcnde ise ilk ko\u015ful do\u011fruysa ikinci ko\u015fulun hi\u00e7 kontrol edilmemesi anlam\u0131na gelir. Bu davran\u0131\u015f\u0131 performans\u0131 art\u0131rmak veya yan etkileri olan fonksiyon \u00e7a\u011fr\u0131lar\u0131n\u0131 kontrol etmek i\u00e7in kullanabilirsiniz.\n    <\/li>\n<\/ul>\n<p>Bu ipu\u00e7lar\u0131 ve vaka analizi, Python kontrol ak\u0131\u015f\u0131n\u0131 sadece mekanik olarak kullanmak yerine, daha ak\u0131ll\u0131ca, verimli ve profesyonelce nas\u0131l uygulayabilece\u011finizi g\u00f6stermektedir. Kontrol ak\u0131\u015f\u0131, programlar\u0131n\u0131z\u0131n omurgas\u0131d\u0131r ve bu kavramlara hakim olmak, daha karma\u015f\u0131k ve sa\u011flam yaz\u0131l\u0131mlar geli\u015ftirmeniz i\u00e7in size b\u00fcy\u00fck avantaj sa\u011flayacakt\u0131r.<\/p>\n<h2>Sonu\u00e7: Python Kontrol Ak\u0131\u015f\u0131 ile Programlama Mant\u0131\u011f\u0131n\u0131z\u0131 G\u00fc\u00e7lendirin<\/h2>\n<p>Bu teknik makale boyunca, Python'daki kontrol ak\u0131\u015f\u0131n\u0131n temel ta\u015flar\u0131n\u0131, programlar\u0131n\u0131z\u0131n \u00e7al\u0131\u015fma mant\u0131\u011f\u0131n\u0131 nas\u0131l y\u00f6nlendirebilece\u011finizi ad\u0131m ad\u0131m inceledik. G\u00f6rd\u00fck ki, bir program\u0131n sadece belirli bir s\u0131rayla talimatlar\u0131 takip etmesi yetmez; ayn\u0131 zamanda ko\u015fullara g\u00f6re karar verme, belirli g\u00f6revleri tekrar etme ve ak\u0131\u015f\u0131 dinamik olarak de\u011fi\u015ftirme yetene\u011fine de sahip olmas\u0131 gerekir. \u0130\u015fte bu noktada <code>if<\/code>, <code>elif<\/code>, <code>else<\/code> gibi ko\u015fullu ifadeler, <code>for<\/code> ve <code>while<\/code> gibi d\u00f6ng\u00fcler ve <code>break<\/code>, <code>continue<\/code>, <code>pass<\/code> gibi d\u00f6ng\u00fc kontrol deyimleri devreye girerek kodumuza ger\u00e7ek bir zeka ve esneklik kat\u0131yor.<\/p>\n<p>Ba\u015flang\u0131\u00e7ta, programlar\u0131n neden karar verme yetene\u011fine ihtiya\u00e7 duydu\u011funu ve kontrol ak\u0131\u015f\u0131n\u0131n neden bu kadar kritik oldu\u011funu ele ald\u0131k. Ard\u0131ndan, <code>if<\/code>, <code>elif<\/code> ve <code>else<\/code> bloklar\u0131n\u0131 kullanarak \u00e7e\u015fitli ko\u015fullara ba\u011fl\u0131 olarak kod yollar\u0131n\u0131 nas\u0131l belirleyebilece\u011fimizi \u00f6\u011frendik. Mant\u0131ksal operat\u00f6rler <code>and<\/code>, <code>or<\/code> ve <code>not<\/code> sayesinde daha karma\u015f\u0131k karar mekanizmalar\u0131 olu\u015fturma becerimizi geli\u015ftirdik. Daha sonra, <code>for<\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn koleksiyonlar \u00fczerinde nas\u0131l gezindi\u011fini ve <code>range()<\/code> fonksiyonu ile say\u0131 dizilerini nas\u0131l i\u015fledi\u011fimizi ke\u015ffettik. <code>while<\/code> d\u00f6ng\u00fcs\u00fc ise, belirli bir ko\u015ful do\u011fru oldu\u011fu s\u00fcrece tekrarlayan i\u015flemleri y\u00f6netmek i\u00e7in ideal bir ara\u00e7 olarak kar\u015f\u0131m\u0131za \u00e7\u0131kt\u0131; \u00f6zellikle kullan\u0131c\u0131 etkile\u015fimli senaryolarda ne kadar g\u00fc\u00e7l\u00fc oldu\u011funu g\u00f6rd\u00fck.<\/p>\n<p>D\u00f6ng\u00fc ak\u0131\u015f\u0131n\u0131 daha hassas bir \u015fekilde kontrol etmek i\u00e7in <code>break<\/code> ile d\u00f6ng\u00fcden aniden \u00e7\u0131kmay\u0131, <code>continue<\/code> ile mevcut iterasyonu atlamay\u0131 ve <code>pass<\/code> ile yer tutucu bloklar olu\u015fturmay\u0131 \u00f6\u011frendik. Son olarak, t\u00fcm bu bilgileri bir araya getiren etkile\u015fimli bir konsol hesap makinesi vaka analiziyle pratik bir uygulama ger\u00e7ekle\u015ftirdik. Ayr\u0131ca, daha temiz, okunur ve verimli Python kodu yazmak i\u00e7in ternary operat\u00f6r, derin i\u00e7 i\u00e7e ge\u00e7mi\u015f yap\u0131lardan ka\u00e7\u0131nma ve fonksiyonlara ay\u0131rma gibi ileri d\u00fczey ipu\u00e7lar\u0131n\u0131 da tart\u0131\u015ft\u0131k. Bu prensipler, sadece kodunuzun i\u015flevselli\u011fini art\u0131rmakla kalmaz, ayn\u0131 zamanda gelecekteki bak\u0131m\u0131 ve i\u015fbirli\u011fini de kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>Unutmay\u0131n ki programlamada ustala\u015fman\u0131n anahtar\u0131 pratik yapmakt\u0131r. Bu makalede ele al\u0131nan her bir kavram\u0131 kendi k\u00fc\u00e7\u00fck projelerinizde veya mevcut kod taban\u0131n\u0131zda deneyerek peki\u015ftirin. Farkl\u0131 senaryolar \u00fczerinde d\u00fc\u015f\u00fcn\u00fcn ve hangi kontrol ak\u0131\u015f\u0131 yap\u0131s\u0131n\u0131n en uygun oldu\u011funu belirlemeye \u00e7al\u0131\u015f\u0131n. Python'\u0131n sundu\u011fu bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 etkin bir \u015fekilde kullanarak, kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131z her t\u00fcrl\u00fc problem i\u00e7in mant\u0131ksal ve verimli \u00e7\u00f6z\u00fcmler \u00fcretebilirsiniz. Kontrol ak\u0131\u015f\u0131na olan hakimiyetiniz, daha karma\u015f\u0131k algoritmalar tasarlaman\u0131za ve \u00e7ok daha etkileyici yaz\u0131l\u0131m projelerine imza atman\u0131za olanak tan\u0131yacakt\u0131r. \u015eimdi, bu g\u00fc\u00e7l\u00fc ara\u00e7lar\u0131 kullanarak kendi ak\u0131ll\u0131 programlar\u0131n\u0131z\u0131 in\u015fa etmeye haz\u0131rs\u0131n\u0131z!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p>Python'da kontrol ak\u0131\u015f\u0131 \u00fczerine ak\u0131llara tak\u0131labilecek baz\u0131 yayg\u0131n sorular ve cevaplar\u0131:<\/p>\n<h4><code>if-elif-else<\/code> yap\u0131s\u0131nda ko\u015fullar\u0131n s\u0131ras\u0131 neden \u00f6nemlidir?<\/h4>\n<p>Ko\u015fullar\u0131n s\u0131ras\u0131 \u00e7ok \u00f6nemlidir \u00e7\u00fcnk\u00fc Python, <code>if-elif-else<\/code> zincirindeki ko\u015fullar\u0131 yukar\u0131dan a\u015fa\u011f\u0131ya do\u011fru s\u0131rayla kontrol eder ve do\u011fru buldu\u011fu ilk ko\u015fulun kod blo\u011funu \u00e7al\u0131\u015ft\u0131r\u0131r. Di\u011fer ko\u015fullar (do\u011fru olsalar bile) art\u0131k kontrol edilmez veya y\u00fcr\u00fct\u00fclmez. \u00d6rne\u011fin, hem \"ya\u015f\u0131 18'den b\u00fcy\u00fck\" hem de \"ya\u015f\u0131 65'ten b\u00fcy\u00fck\" ko\u015fullar\u0131n\u0131z varsa ve \"ya\u015f\u0131 18'den b\u00fcy\u00fck\" olan\u0131 \u00f6nce kontrol ederseniz, 65 ya\u015f\u0131ndaki bir ki\u015fi hi\u00e7bir zaman \"ya\u015f\u0131 65'ten b\u00fcy\u00fck\" ko\u015fuluna ula\u015famayacakt\u0131r, \u00e7\u00fcnk\u00fc ilk ko\u015ful zaten do\u011fru olacakt\u0131r. Bu nedenle, daha \u00f6zel veya k\u0131s\u0131tlay\u0131c\u0131 ko\u015fullar\u0131 genellikle daha genel ko\u015fullardan \u00f6nce kontrol etmek iyi bir uygulamad\u0131r.<\/p>\n<h4><code>for<\/code> d\u00f6ng\u00fcs\u00fc ile <code>while<\/code> d\u00f6ng\u00fcs\u00fc aras\u0131ndaki temel fark nedir? Hangi durumda hangisini kullanmal\u0131y\u0131m?<\/h4>\n<p>Temel fark, ne zaman sona ereceklerini bilme derecemizdedir. <code>for<\/code> d\u00f6ng\u00fcs\u00fc, bir veri koleksiyonunun (liste, dize, demet vb.) her \u00f6\u011fesi \u00fczerinde veya belirli bir say\u0131 aral\u0131\u011f\u0131 boyunca iterasyon yapmak istedi\u011finizde kullan\u0131l\u0131r. D\u00f6ng\u00fcn\u00fcn ka\u00e7 kez \u00e7al\u0131\u015faca\u011f\u0131 genellikle \u00f6nceden bilinir veya koleksiyonun boyutuyla belirlenir. <code>while<\/code> d\u00f6ng\u00fcs\u00fc ise, belirli bir ko\u015ful do\u011fru oldu\u011fu s\u00fcrece kod blo\u011funu \u00e7al\u0131\u015ft\u0131rmak istedi\u011finizde kullan\u0131l\u0131r. D\u00f6ng\u00fcn\u00fcn ka\u00e7 kez \u00e7al\u0131\u015faca\u011f\u0131 \u00f6nceden bilinmeyebilir ve ko\u015fulun ne zaman yanl\u0131\u015f olaca\u011f\u0131 dinamik bir fakt\u00f6re (\u00f6rn. kullan\u0131c\u0131 giri\u015fi, sistem durumu) ba\u011fl\u0131d\u0131r. \u00d6zetle: belirli bir koleksiyonu i\u015flemek i\u00e7in <code>for<\/code>, bir ko\u015ful do\u011fru oldu\u011fu s\u00fcrece tekrar etmek i\u00e7in <code>while<\/code> kullan\u0131n.<\/p>\n<h4><code>break<\/code>, <code>continue<\/code> ve <code>pass<\/code> deyimlerinin kullan\u0131m ama\u00e7lar\u0131 nelerdir?<\/h4>\n<p>Bu \u00fc\u00e7 deyim, d\u00f6ng\u00fc ak\u0131\u015f\u0131n\u0131 kontrol etmek i\u00e7in farkl\u0131 ama\u00e7lara hizmet eder:<\/p>\n<ul>\n<li><strong><code>break<\/code>:<\/strong> \u0130\u00e7inde bulundu\u011fu d\u00f6ng\u00fcy\u00fc (<code>for<\/code> veya <code>while<\/code>) aniden ve tamamen sonland\u0131rmak i\u00e7in kullan\u0131l\u0131r. Bir arama i\u015flemi s\u0131ras\u0131nda aranan \u00f6\u011fe bulundu\u011funda veya kritik bir hata olu\u015ftu\u011funda d\u00f6ng\u00fcden \u00e7\u0131kmak i\u00e7in idealdir.<\/li>\n<li><strong><code>continue<\/code>:<\/strong> \u0130\u00e7inde bulundu\u011fu d\u00f6ng\u00fcn\u00fcn mevcut iterasyonunu atlay\u0131p, bir sonraki iterasyona ge\u00e7mek i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, bir listedeki belirli ko\u015fullar\u0131 sa\u011flamayan \u00f6\u011feleri i\u015flemeyi atlamak veya hatal\u0131 giri\u015fleri filtrelemek i\u00e7in faydal\u0131d\u0131r.<\/li>\n<li><strong><code>pass<\/code>:<\/strong> \"Hi\u00e7bir \u015fey yapma\" anlam\u0131na gelen bir yer tutucu deyimidir. Python'da bir kod blo\u011funun bo\u015f olmamas\u0131 gerekti\u011fi, ancak hen\u00fcz ne yaz\u0131laca\u011f\u0131na karar verilmedi\u011fi durumlarda kullan\u0131l\u0131r. S\u00f6zdizimsel bir hata vermeden kodun \u00e7al\u0131\u015fmas\u0131na izin verir ve genellikle geli\u015ftirme a\u015famas\u0131nda taslak olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<h4>Derin i\u00e7 i\u00e7e ge\u00e7mi\u015f <code>if<\/code> ifadelerinden neden ka\u00e7\u0131nmal\u0131y\u0131m? Alternatif yakla\u015f\u0131mlar nelerdir?<\/h4>\n<p>Derin i\u00e7 i\u00e7e ge\u00e7mi\u015f <code>if<\/code> ifadelerinden ka\u00e7\u0131nmal\u0131s\u0131n\u0131z \u00e7\u00fcnk\u00fc bu durum kodu okunmaz, anla\u015f\u0131lmaz ve bak\u0131m\u0131 zor hale getirir (genellikle \"arrow anti-pattern\" olarak adland\u0131r\u0131l\u0131r). Her yeni i\u00e7 i\u00e7e ge\u00e7mi\u015f d\u00fczey, kodun karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 ve hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r. Alternatif yakla\u015f\u0131mlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Erken \u00c7\u0131k\u0131\u015f (Guard Clauses):<\/strong> Olumsuz ko\u015fullar\u0131 en ba\u015fta kontrol edip, bir <code>return<\/code> veya <code>continue<\/code> deyimiyle fonksiyondan\/d\u00f6ng\u00fcden erken \u00e7\u0131kmakt\u0131r. Bu, kodun ana mant\u0131\u011f\u0131n\u0131n daha az girintiyle yaz\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Fonksiyonlara Ay\u0131rma:<\/strong> Karma\u015f\u0131k ko\u015ful bloklar\u0131n\u0131 k\u00fc\u00e7\u00fck, tek bir g\u00f6revi olan fonksiyonlara b\u00f6lmek, her bir par\u00e7ay\u0131 daha y\u00f6netilebilir hale getirir.<\/li>\n<li><strong>Mant\u0131ksal Operat\u00f6rleri Etkin Kullanma:<\/strong> Birden fazla ko\u015fulu <code>and<\/code>, <code>or<\/code> operat\u00f6rleriyle birle\u015ftirerek daha d\u00fcz bir yap\u0131 elde edebilirsiniz.<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin Python&#8217;da kontrol ak\u0131\u015f\u0131, programlar\u0131n\u0131z\u0131 dinamik ve ak\u0131ll\u0131 hale getirmenin anahtar\u0131d\u0131r. Ko\u015fullu ifadelerden&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-32360","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f<\/title>\n<meta name=\"description\" content=\"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f\" \/>\n<meta property=\"og:description\" content=\"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-20T19:03:02+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f\",\"datePublished\":\"2025-10-20T19:03:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\"},\"wordCount\":4466,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\",\"name\":\"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-20T19:03:02+00:00\",\"description\":\"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f","description":"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/","og_locale":"tr_TR","og_type":"article","og_title":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f","og_description":"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin","og_url":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-20T19:03:02+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f","datePublished":"2025-10-20T19:03:02+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/"},"wordCount":4466,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/","url":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/","name":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-20T19:03:02+00:00","description":"Python Kontrol Ak\u0131\u015f\u0131: Programlar\u0131n\u0131z\u0131n Zekas\u0131n\u0131 Y\u00f6nlendirin","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/programiniz-nasil-karar-veriyor-python-kontrol-akisina-giris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Program\u0131n\u0131z Nas\u0131l Karar Veriyor? Python Kontrol Ak\u0131\u015f\u0131na Giri\u015f"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=32360"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32360\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}