{"id":34824,"date":"2025-11-22T13:30:55","date_gmt":"2025-11-22T10:30:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/"},"modified":"2025-11-22T13:30:55","modified_gmt":"2025-11-22T10:30:55","slug":"giris-neden-basit-bir-hesap-makinesi-yapmaliyiz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/","title":{"rendered":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?"},"content":{"rendered":"<p>Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.<\/p>\n<p>Bug\u00fcnk\u00fc amac\u0131m\u0131z, kullan\u0131c\u0131dan iki say\u0131 ve bir i\u015flem al\u0131p sonucu ekrana yazd\u0131ran sa\u011flam bir hesap makinesi olu\u015fturmakt\u0131r. Bu rehberde ad\u0131m ad\u0131m ilerleyecek, her a\u015famada kod \u00f6rnekleri ve a\u00e7\u0131klamalarla konuyu derinlemesine ele alaca\u011f\u0131z. Haz\u0131rsan\u0131z, kodlama maceram\u0131za ba\u015flayal\u0131m!<\/p>\n<p>Herhangi bir programlama dilinde yeniyseniz veya temel bilgilerinizi peki\u015ftirmek istiyorsan\u0131z, basit bir hesap makinesi projesi m\u00fckemmel bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Peki, neden mi? \u00c7\u00fcnk\u00fc bu proje, programlaman\u0131n en temel yap\u0131 ta\u015flar\u0131n\u0131 pratik bir senaryo \u00fczerinde birle\u015ftirmenize olanak tan\u0131r. Bir hesap makinesi geli\u015ftirmek, yaln\u0131zca teorik bilgiyi uygulamaya d\u00f6kmekle kalmaz, ayn\u0131 zamanda bir kullan\u0131c\u0131n\u0131n bak\u0131\u015f a\u00e7\u0131s\u0131yla program\u0131n\u0131z\u0131n nas\u0131l etkile\u015fim kuraca\u011f\u0131n\u0131 d\u00fc\u015f\u00fcnmenizi de sa\u011flar. Kullan\u0131c\u0131dan giri\u015f almak, bu giri\u015fi i\u015flemek, olas\u0131 hatalar\u0131 \u00f6ng\u00f6rmek ve d\u00fczg\u00fcn bir \u00e7\u0131kt\u0131 sunmak gibi temel s\u00fcre\u00e7leri deneyimlersiniz. Bu beceriler, gelecekteki \u00e7ok daha karma\u015f\u0131k projelerinizin temelini olu\u015fturacakt\u0131r.<\/p>\n<p>Ayr\u0131ca, bu proje sayesinde &#8220;problem \u00e7\u00f6zme&#8221; yetene\u011finiz geli\u015fir. Hesap makinesi yap\u0131m\u0131, size bir problemi (\u00f6rne\u011fin, iki say\u0131y\u0131 toplama) farkl\u0131 a\u015famalara b\u00f6lme ve her bir a\u015famay\u0131 kodla \u00e7\u00f6zme f\u0131rsat\u0131 verir. \u00d6rne\u011fin, say\u0131lar nas\u0131l al\u0131n\u0131r, hangi i\u015flemi uygulayaca\u011f\u0131z, hatal\u0131 giri\u015fler nas\u0131l engellenir gibi sorulara yan\u0131t ararken, algoritmik d\u00fc\u015f\u00fcnme becerilerinizi keskinle\u015ftirirsiniz. Bu, sadece Python i\u00e7in de\u011fil, genel olarak yaz\u0131l\u0131m geli\u015ftirme kariyeriniz i\u00e7in hayati \u00f6neme sahip bir beceridir. \u00d6zetle, basit bir hesap makinesi, temel programlama mant\u0131\u011f\u0131n\u0131 kavrayan ve ger\u00e7ek d\u00fcnya uygulamalar\u0131na ge\u00e7i\u015f yapmak isteyen herkes i\u00e7in olmazsa olmaz bir ad\u0131md\u0131r. Dolay\u0131s\u0131yla, bu &#8220;30 G\u00fcn Python Challenge&#8221; kapsam\u0131nda bu projenin neden bu kadar \u00f6nemli oldu\u011funu anlamak, \u00f6\u011frenme motivasyonunuzu art\u0131racakt\u0131r. Ek olarak, bu pratik uygulama sayesinde de\u011fi\u015fken tan\u0131mlama, veri t\u00fcr\u00fc d\u00f6n\u00fc\u015ft\u00fcrme ve ko\u015fullu mant\u0131k gibi konular\u0131n somut \u00e7\u0131kt\u0131lar\u0131n\u0131 an\u0131nda g\u00f6rebilirsiniz, bu da \u00f6\u011frenme s\u00fcrecini \u00e7ok daha keyifli ve ak\u0131lda kal\u0131c\u0131 hale getirir. Bu y\u00fczden, \u015fimdiye kadar \u00f6\u011frendiklerimizi bir araya getirme ve sa\u011flam bir temel in\u015fa etme zaman\u0131.<\/p>\n<h2>Temel Kavramlar Nelerdir ve Nas\u0131l Uygulan\u0131r?<\/h2>\n<p>Basit bir hesap makinesi olu\u015fturmak i\u00e7in birka\u00e7 temel Python kavram\u0131na ihtiyac\u0131m\u0131z var. Bu kavramlar\u0131 do\u011fru bir \u015fekilde anlamak ve uygulamak, projemizin sa\u011flam temeller \u00fczerinde y\u00fckselmesini sa\u011flayacakt\u0131r. \u00d6ncelikle, kullan\u0131c\u0131dan giri\u015f almam\u0131z gerekiyor. Python&#8217;da bunu <\/p>\n<pre><code>input()<\/pre>\n<p><\/code> fonksiyonu ile yapar\u0131z. Ancak <\/p>\n<pre><code>input()<\/pre>\n<p><\/code> fonksiyonu her zaman bir metin (string) d\u00f6nd\u00fcrd\u00fc\u011f\u00fc i\u00e7in, say\u0131sal i\u015flemler yapmadan \u00f6nce bu metni say\u0131ya (integer veya float) d\u00f6n\u00fc\u015ft\u00fcrmemiz gerekir. Bu d\u00f6n\u00fc\u015f\u00fcm i\u00e7in <\/p>\n<pre><code>int()<\/pre>\n<p><\/code> veya <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> fonksiyonlar\u0131n\u0131 kullan\u0131r\u0131z. Genellikle, ondal\u0131kl\u0131 say\u0131lar\u0131 da desteklemek i\u00e7in <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> tercih edilir.<\/p>\n<p>\u0130kinci olarak, program\u0131m\u0131z\u0131n farkl\u0131 matematiksel i\u015flemleri ger\u00e7ekle\u015ftirmesi i\u00e7in matematiksel operat\u00f6rlere ihtiyac\u0131m\u0131z var. Toplama i\u00e7in <\/p>\n<pre><code>+<\/pre>\n<p><\/code>, \u00e7\u0131karma i\u00e7in <\/p>\n<pre><code>-<\/pre>\n<p><\/code>, \u00e7arpma i\u00e7in <\/p>\n<pre><code>*<\/pre>\n<p><\/code> ve b\u00f6lme i\u00e7in <\/p>\n<pre><code>\/<\/pre>\n<p><\/code> operat\u00f6rlerini kullanaca\u011f\u0131z. Bu operat\u00f6rler, say\u0131sal de\u011ferler \u00fczerinde do\u011frudan \u00e7al\u0131\u015f\u0131r ve bize bir sonu\u00e7 d\u00f6nd\u00fcr\u00fcr. \u00d6rne\u011fin, <\/p>\n<pre><code>sayi1 + sayi2<\/pre>\n<p><\/code> ifadesi, iki say\u0131n\u0131n toplam\u0131n\u0131 verir. Dahas\u0131, kullan\u0131c\u0131 hangi i\u015flemi se\u00e7tiyse, o i\u015fleme g\u00f6re farkl\u0131 kod bloklar\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131 gerekecektir. \u0130\u015fte tam bu noktada ko\u015fullu ifadeler, yani <\/p>\n<pre><code>if<\/pre>\n<p><\/code>, <\/p>\n<pre><code>elif<\/pre>\n<p><\/code> ve <\/p>\n<pre><code>else<\/pre>\n<p><\/code> devreye girer. Bu yap\u0131lar sayesinde, kullan\u0131c\u0131n\u0131n se\u00e7imine g\u00f6re program ak\u0131\u015f\u0131n\u0131 kontrol edebiliriz. \u00d6rne\u011fin, kullan\u0131c\u0131 \"+\" operat\u00f6r\u00fcn\u00fc se\u00e7tiyse toplama i\u015flemini, \"-\" se\u00e7tiyse \u00e7\u0131karma i\u015flemini ger\u00e7ekle\u015ftiren kodu \u00e7al\u0131\u015ft\u0131rabiliriz.<\/p>\n<p>\u00dc\u00e7\u00fcnc\u00fc olarak, kod tekrar\u0131n\u0131 \u00f6nlemek ve program\u0131m\u0131z\u0131 daha mod\u00fcler hale getirmek i\u00e7in fonksiyonlar\u0131 kullanaca\u011f\u0131z. Her bir matematiksel i\u015flemi (toplama, \u00e7\u0131karma vb.) ayr\u0131 bir fonksiyon i\u00e7inde tan\u0131mlamak, kodumuzu daha okunakl\u0131 ve y\u00f6netilebilir k\u0131lar. Ayr\u0131ca, bu fonksiyonlar daha sonra program\u0131m\u0131z\u0131n ba\u015fka yerlerinde veya farkl\u0131 projelerde kolayca tekrar kullan\u0131labilir. Bir fonksiyon tan\u0131mlamak i\u00e7in <\/p>\n<pre><code>def<\/pre>\n<p><\/code> anahtar kelimesini kullan\u0131r\u0131z. \u00d6rne\u011fin, iki say\u0131y\u0131 toplayan bir fonksiyon <\/p>\n<pre><code>def topla(a, b): return a + b<\/pre>\n<p><\/code> \u015feklinde tan\u0131mlanabilir. Son olarak, kullan\u0131c\u0131ya i\u015flemlerin sonucunu g\u00f6stermek i\u00e7in <\/p>\n<pre><code>print()<\/pre>\n<p><\/code> fonksiyonunu kullanaca\u011f\u0131z. T\u00fcm bu temel kavramlar bir araya geldi\u011finde, basit ama i\u015flevsel bir hesap makinesi olu\u015fturmak i\u00e7in gerekli altyap\u0131y\u0131 sa\u011flam\u0131\u015f olaca\u011f\u0131z. Bu kavramlar\u0131 ad\u0131m ad\u0131m uygulayarak, ilk Python projemizi ba\u015far\u0131yla tamamlayaca\u011f\u0131z.<\/p>\n<h3>Python'da Temel \u0130\u015flemleri Nas\u0131l Ger\u00e7ekle\u015ftiririz?<\/h3>\n<p>Hesap makinemizin kalbini olu\u015fturan temel i\u015flemleri Python'da ad\u0131m ad\u0131m nas\u0131l ger\u00e7ekle\u015ftirece\u011fimize odaklanal\u0131m. \u0130lk ad\u0131m, kullan\u0131c\u0131dan gerekli bilgileri almakt\u0131r: iki say\u0131 ve hangi matematiksel i\u015flemi yapmak istedi\u011fi. Bu bilgileri al\u0131rken, kullan\u0131c\u0131dan gelen girdinin do\u011fru formatta oldu\u011fundan emin olmak da \u00f6nemlidir. Aksi takdirde, program\u0131m\u0131z hata verebilir.<\/p>\n<p>\u00d6ncelikle, kullan\u0131c\u0131dan ilk say\u0131y\u0131 alal\u0131m. Bunu <\/p>\n<pre><code>input()<\/pre>\n<p><\/code> fonksiyonu ile yapar\u0131z ve ard\u0131ndan <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> kullanarak say\u0131ya d\u00f6n\u00fc\u015ft\u00fcr\u00fcr\u00fcz:<\/p>\n<pre><code>\nsayi1 = float(input(\"\u0130lk say\u0131y\u0131 girin: \"))\n<\/pre>\n<p><\/code><\/p>\n<p>Ard\u0131ndan, ikinci say\u0131y\u0131 ayn\u0131 \u015fekilde al\u0131r\u0131z:<\/p>\n<pre><code>\nsayi2 = float(input(\"\u0130kinci say\u0131y\u0131 girin: \"))\n<\/pre>\n<p><\/code><\/p>\n<p>\u015eimdi s\u0131ra, hangi i\u015flemi yapaca\u011f\u0131m\u0131z\u0131 sormaya geldi. Kullan\u0131c\u0131n\u0131n +, -, *, veya \/ gibi ge\u00e7erli bir operat\u00f6r girmesini bekliyoruz:<\/p>\n<pre><code>\nislem = input(\"Yapmak istedi\u011finiz i\u015flemi se\u00e7in (+, -, *, \/): \")\n<\/pre>\n<p><\/code><\/p>\n<p>T\u00fcm girdileri ald\u0131ktan sonra, <\/p>\n<pre><code>if-elif-else<\/pre>\n<p><\/code> ko\u015fullu ifadeler kullanarak kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi i\u015fleme g\u00f6re matematiksel i\u015flemi ger\u00e7ekle\u015ftirece\u011fiz. Her bir olas\u0131 i\u015flem i\u00e7in ayr\u0131 bir ko\u015ful kontrol\u00fc yapar\u0131z:<\/p>\n<pre><code>\nif islem == '+':\n    sonuc = sayi1 + sayi2\nelif islem == '-':\n    sonuc = sayi1 - sayi2\nelif islem == '*':\n    sonuc = sayi1 * sayi2\nelif islem == '\/':\n    sonuc = sayi1 \/ sayi2\nelse:\n    print(\"Ge\u00e7ersiz i\u015flem! L\u00fctfen +, -, *, veya \/ se\u00e7in.\")\n    sonuc = None # Ge\u00e7ersiz i\u015flemde sonu\u00e7 olmas\u0131n\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki kod blo\u011fu, kullan\u0131c\u0131n\u0131n girdi\u011fi i\u015fleme g\u00f6re uygun matematiksel operat\u00f6r\u00fc kullanarak sonucu hesaplar. E\u011fer kullan\u0131c\u0131 ge\u00e7ersiz bir i\u015flem girerse, ekrana bir hata mesaj\u0131 yazd\u0131r\u0131l\u0131r. Son olarak, e\u011fer bir sonu\u00e7 hesaplanabildiyse, bu sonucu kullan\u0131c\u0131ya g\u00f6stermemiz gerekir:<\/p>\n<pre><code>\nif sonuc is not None:\n    print(\"Sonu\u00e7:\", sonuc)\n<\/pre>\n<p><\/code><\/p>\n<p>Bu temel yap\u0131, hesap makinemizin en basit halini olu\u015fturur. Ancak, bu kod par\u00e7as\u0131 hen\u00fcz hata y\u00f6netimi gibi \u00f6nemli bir \u00f6zelli\u011fi i\u00e7ermemektedir. \u00d6rne\u011fin, kullan\u0131c\u0131 say\u0131 yerine metin girerse veya b\u00f6lme i\u015fleminde ikinci say\u0131y\u0131 s\u0131f\u0131r girerse program\u0131m\u0131z \u00e7\u00f6kecektir. Bu durumlar\u0131 bir sonraki b\u00f6l\u00fcmde ele alaca\u011f\u0131z. Bu ilk ad\u0131m, program\u0131n ana mant\u0131\u011f\u0131n\u0131 anlamak i\u00e7in kritik \u00f6neme sahiptir. Kullan\u0131c\u0131dan veri almak, bu veriye g\u00f6re karar vermek ve bir \u00e7\u0131kt\u0131 sunmak, hemen hemen her program\u0131n temel d\u00f6ng\u00fcs\u00fcd\u00fcr. Bu yap\u0131y\u0131 kurmak, sonraki a\u015famalara ge\u00e7i\u015f i\u00e7in sa\u011flam bir temel olu\u015fturur. Ayr\u0131ca, bu basit kod blo\u011funu defalarca test ederek farkl\u0131 girdi kombinasyonlar\u0131n\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6zlemlemek, programlama bilginizi peki\u015ftirecektir. Bu sayede, daha karma\u015f\u0131k yap\u0131lar\u0131 in\u015fa etmeden \u00f6nce temel ak\u0131\u015f\u0131 tam olarak kavrayabilirsiniz.<\/p>\n<h2>Geli\u015fmi\u015f Bir Hesap Makinesi \u0130\u00e7in Fonksiyonel Yap\u0131lar Nas\u0131l Kurulur?<\/h2>\n<p>Basit bir hesap makinesi olu\u015fturduk, ancak kodumuz hen\u00fcz \u00e7ok mod\u00fcler veya kullan\u0131c\u0131 dostu de\u011fil. Her i\u015flemi ayr\u0131 bir fonksiyon i\u00e7inde tan\u0131mlayarak ve ana program ak\u0131\u015f\u0131n\u0131 bir d\u00f6ng\u00fc i\u00e7ine alarak hesap makinemizi daha geli\u015fmi\u015f ve kullan\u0131\u015fl\u0131 hale getirebiliriz. Fonksiyonel yap\u0131, kodun tekrar kullan\u0131labilirli\u011fini art\u0131r\u0131r, bak\u0131m\u0131 kolayla\u015ft\u0131r\u0131r ve olas\u0131 hatalar\u0131n izole edilmesine yard\u0131mc\u0131 olur.<\/p>\n<p>\u00d6ncelikle, her bir matematiksel i\u015flem i\u00e7in ayr\u0131 bir fonksiyon tan\u0131mlayal\u0131m. Bu fonksiyonlar, iki say\u0131y\u0131 arg\u00fcman olarak alacak ve ilgili i\u015flemin sonucunu d\u00f6nd\u00fcrecek:<\/p>\n<pre><code>\ndef topla(x, y):\n    return x + y\n\ndef cikar(x, y):\n    return x - y\n\ndef carp(x, y):\n    return x * y\n\ndef bol(x, y):\n    if y == 0:\n        return \"S\u0131f\u0131ra b\u00f6lme hatas\u0131!\"\n    return x \/ y\n<\/pre>\n<p><\/code><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, <\/p>\n<pre><code>bol()<\/pre>\n<p><\/code> fonksiyonunda s\u0131f\u0131ra b\u00f6lme hatas\u0131n\u0131 ele almak i\u00e7in basit bir kontrol ekledik. Bu, hata y\u00f6netiminin ilk ad\u0131m\u0131d\u0131r ve program\u0131m\u0131z\u0131n daha kararl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. \u015eimdi, bu fonksiyonlar\u0131 kullanarak ve kullan\u0131c\u0131ya s\u00fcrekli i\u015flem yapma imkan\u0131 sunan bir ana d\u00f6ng\u00fc olu\u015ftural\u0131m. Bu d\u00f6ng\u00fc, kullan\u0131c\u0131 \"\u00e7\u0131k\u0131\u015f\" gibi bir komut verene kadar \u00e7al\u0131\u015fmaya devam edecek.<\/p>\n<pre><code>\nwhile True:\n    print(\"\\nL\u00fctfen bir i\u015flem se\u00e7in:\")\n    print(\"1. Toplama (+)\")\n    print(\"2. \u00c7\u0131karma (-)\")\n    print(\"3. \u00c7arpma (*)\")\n    print(\"4. B\u00f6lme (\/)\")\n    print(\"5. \u00c7\u0131k\u0131\u015f\")\n\n    secim = input(\"Se\u00e7iminiz (1\/2\/3\/4\/5): \")\n\n    if secim in ('1', '2', '3', '4'):\n        try:\n            sayi1 = float(input(\"\u0130lk say\u0131y\u0131 girin: \"))\n            sayi2 = float(input(\"\u0130kinci say\u0131y\u0131 girin: \"))\n        except ValueError:\n            print(\"Ge\u00e7ersiz giri\u015f! L\u00fctfen say\u0131sal bir de\u011fer girin.\")\n            continue # D\u00f6ng\u00fcn\u00fcn ba\u015f\u0131na d\u00f6n\n\n        if secim == '1':\n            print(f\"{sayi1} + {sayi2} = {topla(sayi1, sayi2)}\")\n        elif secim == '2':\n            print(f\"{sayi1} - {sayi2} = {cikar(sayi1, sayi2)}\")\n        elif secim == '3':\n            print(f\"{sayi1} * {sayi2} = {carp(sayi1, sayi2)}\")\n        elif secim == '4':\n            sonuc_bolme = bol(sayi1, sayi2)\n            if isinstance(sonuc_bolme, str): # Hata mesaj\u0131 ise\n                print(sonuc_bolme)\n            else:\n                print(f\"{sayi1} \/ {sayi2} = {sonuc_bolme}\")\n    elif secim == '5':\n        print(\"Hesap makinesinden \u00e7\u0131k\u0131l\u0131yor...\")\n        break # D\u00f6ng\u00fcy\u00fc sonland\u0131r\n    else:\n        print(\"Ge\u00e7ersiz se\u00e7im. L\u00fctfen 1, 2, 3, 4 veya 5 girin.\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yap\u0131, hesap makinemize sadece temel i\u015flevsellik kazand\u0131rmakla kalmaz, ayn\u0131 zamanda kullan\u0131c\u0131 dostu bir men\u00fc sunar ve s\u00fcrekli hesap yapma imkan\u0131 verir. <\/p>\n<pre><code>while True<\/pre>\n<p><\/code> d\u00f6ng\u00fcs\u00fc sayesinde, kullan\u0131c\u0131 \"5\" tu\u015flay\u0131p \u00e7\u0131kana kadar program\u0131m\u0131z \u00e7al\u0131\u015fmaya devam eder. Her d\u00f6ng\u00fcde kullan\u0131c\u0131ya se\u00e7enekler sunulur ve se\u00e7imine g\u00f6re ilgili fonksiyon \u00e7a\u011fr\u0131l\u0131r. Ayr\u0131ca, <\/p>\n<pre><code>try-except<\/pre>\n<p><\/code> blo\u011funu kullanarak say\u0131 giri\u015fi s\u0131ras\u0131nda olu\u015fabilecek <\/p>\n<pre><code>ValueError<\/pre>\n<p><\/code> hatalar\u0131n\u0131 da yakal\u0131yoruz. Bu sayede, kullan\u0131c\u0131 yanl\u0131\u015fl\u0131kla metin girdi\u011finde program \u00e7\u00f6kmez, bunun yerine bir hata mesaj\u0131 g\u00f6sterir ve d\u00f6ng\u00fcn\u00fcn ba\u015f\u0131na geri d\u00f6ner. Bu yakla\u015f\u0131m, program\u0131m\u0131z\u0131n genel kararl\u0131l\u0131\u011f\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir. Ayr\u0131ca, her bir i\u015flemin ayr\u0131 bir fonksiyon i\u00e7inde olmas\u0131, gelecekte yeni i\u015flemler (\u00f6rne\u011fin, \u00fcs alma, karek\u00f6k) eklemek istedi\u011fimizde kodun ana yap\u0131s\u0131n\u0131 bozmadan kolayca entegre etmemizi sa\u011flar. Fonksiyonel programlama prensiplerini uygulamak, karma\u015f\u0131k sistemler geli\u015ftirirken size b\u00fcy\u00fck avantajlar sa\u011flayacakt\u0131r. Kodunuzu daha d\u00fczenli, test edilebilir ve s\u00fcrd\u00fcr\u00fclebilir hale getirir.<\/p>\n<h3>Hata Y\u00f6netimi ve Kullan\u0131c\u0131 Deneyimi Nas\u0131l \u0130yile\u015ftirilir?<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131mda hata y\u00f6netimi, uygulaman\u0131n sa\u011flaml\u0131\u011f\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini do\u011frudan etkileyen kritik bir unsurdur. Hesap makinemiz i\u00e7in de bu durum ge\u00e7erlidir. Kullan\u0131c\u0131lar her zaman bekledi\u011fimiz gibi girdi sa\u011flamayabilirler. \u00d6rne\u011fin, say\u0131 yerine metin girebilir veya b\u00f6lme i\u015fleminde ikinci say\u0131y\u0131 s\u0131f\u0131r olarak belirtebilirler. Bu senaryolar\u0131 do\u011fru bir \u015fekilde ele almazsak, program\u0131m\u0131z beklenmedik bir \u015fekilde \u00e7\u00f6kecek ve kullan\u0131c\u0131 i\u00e7in olumsuz bir deneyim yaratacakt\u0131r. Python'da hata y\u00f6netimi i\u00e7in <\/p>\n<pre><code>try-except<\/pre>\n<p><\/code> bloklar\u0131n\u0131 kullan\u0131r\u0131z.<\/p>\n<p>Yukar\u0131daki geli\u015fmi\u015f hesap makinesi \u00f6rne\u011finde, <\/p>\n<pre><code>try-except ValueError<\/pre>\n<p><\/code> blo\u011funu zaten say\u0131lar i\u00e7in kullanm\u0131\u015ft\u0131k. Bu blok, kullan\u0131c\u0131n\u0131n <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> fonksiyonuna d\u00f6n\u00fc\u015ft\u00fcr\u00fclemeyen bir metin girmesi durumunda olu\u015facak <\/p>\n<pre><code>ValueError<\/pre>\n<p><\/code> hatas\u0131n\u0131 yakalar. \u00d6rne\u011fin, kullan\u0131c\u0131 \"on\" veya \"abc\" gibi bir metin girdi\u011finde, <\/p>\n<pre><code>ValueError<\/pre>\n<p><\/code> tetiklenir ve <\/p>\n<pre><code>except<\/pre>\n<p><\/code> blo\u011fundaki kod \u00e7al\u0131\u015f\u0131r. Bu sayede, program\u0131m\u0131z \u00e7\u00f6kmez, bunun yerine kullan\u0131c\u0131ya \"Ge\u00e7ersiz giri\u015f! L\u00fctfen say\u0131sal bir de\u011fer girin.\" gibi a\u00e7\u0131klay\u0131c\u0131 bir mesaj g\u00f6sterir ve <\/p>\n<pre><code>continue<\/pre>\n<p><\/code> anahtar kelimesi ile d\u00f6ng\u00fcn\u00fcn bir sonraki iterasyonuna ge\u00e7er, b\u00f6ylece kullan\u0131c\u0131 tekrar deneme \u015fans\u0131 bulur.<\/p>\n<pre><code>\ntry:\n    sayi1 = float(input(\"\u0130lk say\u0131y\u0131 girin: \"))\n    sayi2 = float(input(\"\u0130kinci say\u0131y\u0131 girin: \"))\nexcept ValueError:\n    print(\"Ge\u00e7ersiz giri\u015f! L\u00fctfen say\u0131sal bir de\u011fer girin.\")\n    continue # Say\u0131sal olmayan giri\u015flerde d\u00f6ng\u00fcn\u00fcn ba\u015f\u0131na d\u00f6n\n<\/pre>\n<p><\/code><\/p>\n<p>Bir di\u011fer \u00f6nemli hata durumu ise s\u0131f\u0131ra b\u00f6lmedir. Matematikte bir say\u0131y\u0131 s\u0131f\u0131ra b\u00f6lmek tan\u0131ms\u0131zd\u0131r ve Python'da bu durum <\/p>\n<pre><code>ZeroDivisionError<\/pre>\n<p><\/code> olarak adland\u0131r\u0131l\u0131r. <\/p>\n<pre><code>bol()<\/pre>\n<p><\/code> fonksiyonumuzda bu durumu basit bir <\/p>\n<pre><code>if<\/pre>\n<p><\/code> kontrol\u00fc ile zaten ele alm\u0131\u015ft\u0131k:<\/p>\n<pre><code>\ndef bol(x, y):\n    if y == 0:\n        return \"S\u0131f\u0131ra b\u00f6lme hatas\u0131!\"\n    return x \/ y\n<\/pre>\n<p><\/code><\/p>\n<p>Bu yakla\u015f\u0131m, hatay\u0131 bir metin mesaj\u0131 olarak d\u00f6nd\u00fcrerek program\u0131n \u00e7\u00f6kmesini engeller. Ana d\u00f6ng\u00fcde bu geri d\u00f6nen de\u011ferin tipini kontrol ederek kullan\u0131c\u0131ya do\u011fru mesaj\u0131 g\u00f6sterebiliriz. Hata y\u00f6netimi sadece program\u0131n \u00e7\u00f6kmesini engellemekle kalmaz, ayn\u0131 zamanda kullan\u0131c\u0131ya sorunun ne oldu\u011funu a\u00e7\u0131klayarak daha iyi bir deneyim sunar. A\u00e7\u0131klay\u0131c\u0131 hata mesajlar\u0131, kullan\u0131c\u0131lar\u0131n hatalar\u0131n\u0131 anlamalar\u0131na ve d\u00fczeltmelerine yard\u0131mc\u0131 olur. Sonu\u00e7 olarak, <\/p>\n<pre><code>try-except<\/pre>\n<p><\/code> bloklar\u0131n\u0131 kullanarak beklenmedik durumlar\u0131 ele almak, s\u0131f\u0131ra b\u00f6lme gibi matematiksel anormallikleri kontrol etmek ve kullan\u0131c\u0131lara net geri bildirimler sa\u011flamak, basit bir hesap makinesini bile \u00e7ok daha profesyonel ve kullan\u0131\u015fl\u0131 hale getirir. Bu, geli\u015ftirme s\u00fcrecinin ayr\u0131lmaz bir par\u00e7as\u0131 olmal\u0131d\u0131r.<\/p>\n<p class=\"expert-tip\">Uzman \u0130pucu: Hata mesajlar\u0131n\u0131z\u0131 kullan\u0131c\u0131 dostu hale getirin. Teknik terimler yerine, kullan\u0131c\u0131n\u0131n anlayabilece\u011fi basit ve a\u00e7\u0131klay\u0131c\u0131 ifadeler kullanmak, uygulaman\u0131z\u0131n kullan\u0131m kolayl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131: Hesap Makinesi Mant\u0131\u011f\u0131 Nerelerde Kullan\u0131l\u0131r?<\/h2>\n<p>Basit bir hesap makinesi geli\u015ftirmek, yaln\u0131zca Python \u00f6\u011frenme yolculu\u011funuzda \u00f6nemli bir ad\u0131md\u0131r, ayn\u0131 zamanda bu projenin temel mant\u0131\u011f\u0131, ger\u00e7ek d\u00fcnyadaki say\u0131s\u0131z uygulamada kar\u015f\u0131m\u0131za \u00e7\u0131kar. Sanmay\u0131n ki, sadece toplama-\u00e7\u0131karma yapan bir araca ihtiya\u00e7 duyulur. Asl\u0131nda, temel aritmetik i\u015flemlerin ve ko\u015fullu mant\u0131\u011f\u0131n birle\u015fimi, pek \u00e7ok karma\u015f\u0131k sistemin temelini olu\u015fturur. \u00d6rne\u011fin, finans sekt\u00f6r\u00fcnde bir banka uygulamas\u0131 d\u00fc\u015f\u00fcn\u00fcn. M\u00fc\u015fterilerin kredi hesaplamalar\u0131, faiz oranlar\u0131n\u0131n uygulanmas\u0131, \u00f6deme planlar\u0131n\u0131n olu\u015fturulmas\u0131 veya birikim hedeflerinin belirlenmesi gibi i\u015flemler, temel olarak toplama, \u00e7\u0131karma, \u00e7arpma ve b\u00f6lme i\u015flemlerinin bir kombinasyonudur. Burada kullan\u0131c\u0131dan al\u0131nan veriler (kredi miktar\u0131, faiz oran\u0131, vade) i\u015flenir ve belirli ko\u015fullara (\u00f6deme gecikti mi, ek \u00fccret var m\u0131) g\u00f6re farkl\u0131 sonu\u00e7lar \u00fcretilir. Bu, do\u011frudan bir hesap makinesi mant\u0131\u011f\u0131d\u0131r.<\/p>\n<p>Bir ba\u015fka \u00f6rnek, e-ticaret siteleridir. Bir online al\u0131\u015fveri\u015f sitesinde sepetinize \u00fcr\u00fcn ekledi\u011finizde, toplam fiyat, kargo \u00fccreti, indirimler ve vergiler otomatik olarak hesaplan\u0131r. Her bir \u00fcr\u00fcn\u00fcn fiyat\u0131 toplan\u0131r, belirli bir kampanya kodu girildiyse indirim uygulan\u0131r, b\u00f6lgesel vergi oranlar\u0131 \u00e7arp\u0131l\u0131r ve son bir toplam elde edilir. \"E\u011fer sepet 100 TL'nin \u00fczerindeyse kargo \u00fccretsiz\", \"E\u011fer indirim kodu ge\u00e7erliyse %10 indirim uygula\" gibi ko\u015fullu ifadeler de bu s\u00fcre\u00e7te aktif rol oynar. Bu tamamen bir hesap makinesinin geni\u015fletilmi\u015f halidir.<\/p>\n<p>End\u00fcstriyel otomasyon ve m\u00fchendislik alanlar\u0131nda da benzer senaryolarla kar\u015f\u0131la\u015f\u0131r\u0131z. Bir \u00fcretim hatt\u0131ndaki robotun hareketlerini veya bir sens\u00f6rden gelen verileri i\u015fleyen bir sistem, s\u00fcrekli olarak matematiksel hesaplamalar yapar. \u00d6rne\u011fin, s\u0131cakl\u0131k sens\u00f6r\u00fcnden gelen de\u011fer belirli bir e\u015fi\u011fi a\u015ft\u0131\u011f\u0131nda (ko\u015fullu ifade), so\u011futma sistemini devreye sokmak (bir fonksiyonu \u00e7a\u011f\u0131rmak) veya \u00fcretim h\u0131z\u0131n\u0131 ayarlamak (bir de\u011feri \u00e7arpmak\/b\u00f6lmek) gibi kararlar al\u0131n\u0131r. T\u00fcm bunlar, en temel seviyede, bir hesap makinesinin i\u015fleyi\u015fine benzer bir mant\u0131kla \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>Vaka Analizi: K\u00fc\u00e7\u00fck Bir \u0130\u015fletmede Stok Takibi ve Fiyatland\u0131rma<\/h3>\n<p>Diyelim ki, k\u00fc\u00e7\u00fck bir el sanatlar\u0131 d\u00fckkan\u0131 sahibisiniz. \u00dcr\u00fcnlerinizin maliyetini, sat\u0131\u015f fiyat\u0131n\u0131, kar marj\u0131n\u0131 ve stok durumunu takip etmek istiyorsunuz. Manuel olarak yapmak yerine, Python ile basit bir otomasyon arac\u0131 geli\u015ftirebilirsiniz. Bu ara\u00e7, temelde bir hesap makinesi mant\u0131\u011f\u0131na dayan\u0131r:<\/p>\n<ul>\n<li><strong>Maliyet Hesaplama:<\/strong> Her bir \u00fcr\u00fcn\u00fcn ham madde maliyeti, i\u015f\u00e7ilik maliyeti ve genel giderler toplan\u0131r.<\/li>\n<li><strong>Fiyatland\u0131rma:<\/strong> Maliyet \u00fczerine belirli bir kar marj\u0131 (%X) eklenerek sat\u0131\u015f fiyat\u0131 belirlenir.\n<pre><code>satis_fiyati = maliyet * (1 + kar_marji_yuzdesi \/ 100)<\/pre>\n<p><\/code><\/li>\n<li><strong>\u0130ndirim Uygulama:<\/strong> Belirli d\u00f6nemlerde veya toplu al\u0131mlarda indirimler uygulan\u0131r.\n<pre><code>indirimli_fiyat = satis_fiyati * (1 - indirim_yuzdesi \/ 100)<\/pre>\n<p><\/code><\/li>\n<li><strong>Stok G\u00fcncelleme:<\/strong> Bir \u00fcr\u00fcn sat\u0131ld\u0131\u011f\u0131nda stoktan d\u00fc\u015f\u00fcl\u00fcr, yeni \u00fcr\u00fcn eklendi\u011finde stoka eklenir.\n<pre><code>yeni_stok = mevcut_stok - satilan_miktar<\/pre>\n<p><\/code><\/li>\n<li><strong>Sipari\u015f Kontrol\u00fc:<\/strong> Stok belirli bir seviyenin alt\u0131na d\u00fc\u015ft\u00fc\u011f\u00fcnde (\u00f6rne\u011fin 5 adetten az kald\u0131\u011f\u0131nda) otomatik olarak uyar\u0131 verir veya yeni sipari\u015f \u00f6nerir.\n<pre><code>if mevcut_stok < 5: print(\"Stok azald\u0131, sipari\u015f ver!\")<\/pre>\n<p><\/code><\/li>\n<\/ul>\n<p>Bu senaryoda, program\u0131m\u0131z kullan\u0131c\u0131dan \u00fcr\u00fcn bilgileri, maliyetler, kar marjlar\u0131 gibi verileri al\u0131r, bu veriler \u00fczerinde temel aritmetik i\u015flemler yapar ve belirli ko\u015fullara g\u00f6re (stok seviyesi, indirim ge\u00e7erlili\u011fi) farkl\u0131 \u00e7\u0131kt\u0131lar veya uyar\u0131lar \u00fcretir. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, bir hesap makinesinin temel operasyonlar\u0131 ve ko\u015fullu mant\u0131\u011f\u0131, i\u015f d\u00fcnyas\u0131nda somut ve de\u011ferli \u00e7\u00f6z\u00fcmler \u00fcretmek i\u00e7in nas\u0131l kullan\u0131labilece\u011fini g\u00f6sterir. Bu \u00f6rnekler, basit bir hesap makinesi projesinin sadece bir al\u0131\u015ft\u0131rma olmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda \u00e7ok daha b\u00fcy\u00fck ve karma\u015f\u0131k sistemlerin yap\u0131 ta\u015flar\u0131n\u0131 olu\u015fturdu\u011funu a\u00e7\u0131k\u00e7a ortaya koymaktad\u0131r.<\/p>\n<h2>Hesap Makinesini Daha \u0130leriye Ta\u015f\u0131mak: GUI ve Ek \u00d6zellikler Nelerdir?<\/h2>\n<p>\u015eu ana kadar geli\u015ftirdi\u011fimiz hesap makinesi konsol tabanl\u0131 bir uygulamad\u0131r, yani t\u00fcm etkile\u015fimler metin tabanl\u0131 komut sat\u0131r\u0131 \u00fczerinden ger\u00e7ekle\u015fir. Ancak modern uygulamalar genellikle daha sezgisel ve g\u00f6rsel bir kullan\u0131c\u0131 aray\u00fcz\u00fc (GUI - Graphical User Interface) sunar. Python, Tkinter, PyQt veya Kivy gibi k\u00fct\u00fcphaneler arac\u0131l\u0131\u011f\u0131yla GUI uygulamalar\u0131 geli\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. Bir GUI, kullan\u0131c\u0131lar\u0131n butonlara t\u0131klayarak, metin kutular\u0131na veri girerek veya men\u00fclerden se\u00e7im yaparak programla etkile\u015fim kurmas\u0131n\u0131 sa\u011flar. Bu, \u00f6zellikle son kullan\u0131c\u0131lar i\u00e7in \u00e7ok daha dostane bir deneyim sunar.<\/p>\n<p>\u00d6rne\u011fin, Tkinter ile basit bir hesap makinesi aray\u00fcz\u00fc olu\u015fturmak, say\u0131lar\u0131 ve i\u015flemleri girmek i\u00e7in butonlar ve sonucu g\u00f6stermek i\u00e7in bir metin alan\u0131 kullanmay\u0131 gerektirir. Her bir buton (0-9 ve +, -, *, \/) bir olay\u0131 tetikler ve bu olaylar, konsol tabanl\u0131 versiyonda yazd\u0131\u011f\u0131m\u0131z matematiksel fonksiyonlar\u0131 \u00e7a\u011f\u0131r\u0131r. Bu, kullan\u0131c\u0131n\u0131n klavye ile say\u0131lar\u0131 yazmak yerine fareyle t\u0131klamas\u0131n\u0131 sa\u011flar, bu da hata yapma olas\u0131l\u0131\u011f\u0131n\u0131 azalt\u0131r ve genel kullan\u0131m kolayl\u0131\u011f\u0131n\u0131 art\u0131r\u0131r. GUI geli\u015ftirme, <\/p>\n<pre><code>event-driven programming<\/pre>\n<p><\/code> (olay tabanl\u0131 programlama) kavram\u0131n\u0131 da beraberinde getirir. Yani, program\u0131n\u0131z belirli bir olay\u0131n (buton t\u0131klamas\u0131, metin kutusu de\u011fi\u015fimi) ger\u00e7ekle\u015fmesini bekler ve bu olay oldu\u011funda \u00f6nceden tan\u0131mlanm\u0131\u015f bir fonksiyonu \u00e7al\u0131\u015ft\u0131r\u0131r. Bu, mant\u0131ksal olarak konsol uygulamam\u0131zdaki <\/p>\n<pre><code>if-elif<\/pre>\n<p><\/code> yap\u0131s\u0131n\u0131n g\u00f6rsel bir kar\u015f\u0131l\u0131\u011f\u0131d\u0131r.<\/p>\n<p>Ek \u00f6zellikler a\u00e7\u0131s\u0131ndan ise, hesap makinemize bir\u00e7ok yeni i\u015flev ekleyebiliriz. \u00d6rne\u011fin:<\/p>\n<ul>\n<li><strong>Geli\u015fmi\u015f Matematiksel Fonksiyonlar:<\/strong> Karek\u00f6k alma, \u00fcs alma, trigonometrik fonksiyonlar (sin, cos, tan), logaritma, mod alma gibi i\u015flemler eklenebilir. Python'\u0131n\n<pre><code>math<\/pre>\n<p><\/code> mod\u00fcl\u00fc bu t\u00fcr fonksiyonlar\u0131 haz\u0131r olarak sunar.<\/li>\n<li><strong>Haf\u0131za Fonksiyonlar\u0131:<\/strong> Kullan\u0131c\u0131n\u0131n daha \u00f6nceki sonu\u00e7lar\u0131 saklamas\u0131na ve gerekti\u011finde kullanmas\u0131na olanak tan\u0131yan \"MR\" (Memory Recall), \"M+\" (Memory Add) gibi haf\u0131za fonksiyonlar\u0131 eklenebilir.<\/li>\n<li><strong>Parantez Deste\u011fi:<\/strong> Daha karma\u015f\u0131k matematiksel ifadeleri\n<pre><code>(2 + 3) * 4<\/pre>\n<p><\/code> gibi i\u015fleyebilme yetene\u011fi, hesap makinesinin g\u00fcc\u00fcn\u00fc art\u0131r\u0131r. Bu, genellikle <\/p>\n<pre><code>parsing<\/pre>\n<p><\/code> (ayr\u0131\u015ft\u0131rma) algoritmalar\u0131 gerektiren daha ileri bir konudur.<\/li>\n<li><strong>Ge\u00e7mi\u015f Kayd\u0131:<\/strong> Yap\u0131lan i\u015flemleri ve sonu\u00e7lar\u0131 bir listede g\u00f6stermek, kullan\u0131c\u0131lar\u0131n \u00f6nceki hesaplamalar\u0131na kolayca bakmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><strong>Bilimsel Mod:<\/strong> \u00d6zel semboller ve daha fazla matematiksel i\u015flem i\u00e7eren ayr\u0131 bir \"bilimsel mod\" sunulabilir.<\/li>\n<\/ul>\n<p>Mobil uyumluluk konusuna gelince, e\u011fer hesap makineniz bir web uygulamas\u0131 olarak tasarlanacaksa (\u00f6rne\u011fin Flask veya Django ile), o zaman kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fcn farkl\u0131 ekran boyutlar\u0131na uyum sa\u011flamas\u0131 i\u00e7in <\/p>\n<pre><code>CSS Media Query<\/pre>\n<p><\/code>'ler kullanman\u0131z gerekecektir. Bu, uygulaman\u0131z\u0131n cep telefonundan tablete, oradan da masa\u00fcst\u00fc bilgisayara kadar her cihazda d\u00fczg\u00fcn g\u00f6r\u00fcnmesini sa\u011flar. \u00d6rne\u011fin, buton boyutlar\u0131n\u0131 veya d\u00fczenini ekran geni\u015fli\u011fine g\u00f6re ayarlayabilirsiniz:<\/p>\n<pre><code>\n\/* styles.css *\/\n@media (max-width: 600px) {\n    .calculator-container {\n        width: 90%;\n        margin: 10px auto;\n    }\n    .calculator-button {\n        padding: 15px;\n        font-size: 1.2em;\n    }\n}\n\n@media (min-width: 601px) {\n    .calculator-container {\n        width: 400px;\n        margin: 50px auto;\n    }\n    .calculator-button {\n        padding: 20px;\n        font-size: 1.5em;\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>E\u011fer bir mobil uygulama olarak geli\u015ftiriliyorsa (\u00f6rne\u011fin Kivy ile), bu k\u00fct\u00fcphaneler genellikle farkl\u0131 ekran boyutlar\u0131na otomatik olarak uyum sa\u011flama mekanizmalar\u0131na sahiptir. G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi, basit bir hesap makinesi fikri bile, g\u00f6rsel aray\u00fczler, geli\u015fmi\u015f fonksiyonlar ve farkl\u0131 cihazlara uyumluluk gibi bir\u00e7ok ileri d\u00fczey konuya kap\u0131 aralamaktad\u0131r. Bu, programlama yolculu\u011funuzda ke\u015ffedebilece\u011finiz sonsuz imkanlar\u0131n sadece bir ba\u015flang\u0131c\u0131d\u0131r.<\/p>\n<h2>Sonu\u00e7: 30 G\u00fcnl\u00fck Python Maceram\u0131z\u0131n Hesap Makinesi Dura\u011f\u0131 Neler \u00d6\u011fretti?<\/h2>\n<p>Python'daki 30 g\u00fcnl\u00fck meydan okumam\u0131z\u0131n \"Basit Hesap Makinesi\" dura\u011f\u0131na ba\u015far\u0131yla ula\u015ft\u0131k. Bu proje, sadece temel matematiksel i\u015flemleri ger\u00e7ekle\u015ftiren bir ara\u00e7tan \u00e7ok daha fazlas\u0131n\u0131 temsil ediyor. Bu s\u00fcre\u00e7te, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz bir\u00e7ok temel programlama kavram\u0131n\u0131 somut bir uygulama \u00fczerinde bir araya getirme ve peki\u015ftirme f\u0131rsat\u0131 bulduk. Kullan\u0131c\u0131dan veri almak i\u00e7in <\/p>\n<pre><code>input()<\/pre>\n<p><\/code> fonksiyonunu, bu verileri i\u015flemek i\u00e7in <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> ile t\u00fcr d\u00f6n\u00fc\u015ft\u00fcrmeyi \u00f6\u011frendik. Program ak\u0131\u015f\u0131n\u0131 kontrol etmek amac\u0131yla <\/p>\n<pre><code>if-elif-else<\/pre>\n<p><\/code> ko\u015fullu ifadelerin ne kadar g\u00fc\u00e7l\u00fc oldu\u011funu g\u00f6rd\u00fck. Ayr\u0131ca, kod tekrar\u0131n\u0131 \u00f6nlemek, program\u0131m\u0131z\u0131 daha okunabilir ve y\u00f6netilebilir k\u0131lmak i\u00e7in fonksiyonlar\u0131 nas\u0131l tan\u0131mlayaca\u011f\u0131m\u0131z\u0131 ve kullanaca\u011f\u0131m\u0131z\u0131 \u00f6\u011frendik.<\/p>\n<p>En \u00f6nemlisi, program\u0131m\u0131z\u0131n beklenmedik durumlarla (ge\u00e7ersiz giri\u015fler, s\u0131f\u0131ra b\u00f6lme) nas\u0131l ba\u015fa \u00e7\u0131kaca\u011f\u0131n\u0131 g\u00f6steren <\/p>\n<pre><code>try-except<\/pre>\n<p><\/code> bloklar\u0131yla hata y\u00f6netiminin temellerini att\u0131k. Bu, sadece bir hesap makinesi projesi i\u00e7in de\u011fil, geli\u015ftirece\u011finiz herhangi bir sa\u011flam uygulama i\u00e7in vazge\u00e7ilmez bir beceridir. Ger\u00e7ek d\u00fcnya senaryolar\u0131yla, bu temel hesaplama mant\u0131\u011f\u0131n\u0131n finansal uygulamalardan e-ticarete, hatta end\u00fcstriyel otomasyona kadar ne kadar geni\u015f bir alanda kullan\u0131labilece\u011fini de kavrad\u0131k. Bu proje, \"problemi par\u00e7alara ay\u0131rma\", \"algoritmik d\u00fc\u015f\u00fcnme\" ve \"kodla \u00e7\u00f6z\u00fcm \u00fcretme\" becerilerinizi \u00f6nemli \u00f6l\u00e7\u00fcde geli\u015ftirdi. Dahas\u0131, konsol tabanl\u0131 bir uygulamadan g\u00f6rsel bir aray\u00fcze (GUI) ge\u00e7i\u015fin ve mobil uyumlulu\u011fun temel konseptlerini de inceleyerek, gelecekteki projeleriniz i\u00e7in ufuk a\u00e7\u0131c\u0131 bilgiler edindik.<\/p>\n<p>Bu hesap makinesi, Python'daki ilk \u00f6nemli ad\u0131mlar\u0131n\u0131zdan biriydi. Buradan \u00f6\u011frendikleriniz, daha karma\u015f\u0131k veri yap\u0131lar\u0131, dosya i\u015flemleri, veritaban\u0131 etkile\u015fimleri ve web geli\u015ftirme gibi ileri d\u00fczey konulara ge\u00e7erken size sa\u011flam bir temel olu\u015fturacakt\u0131r. Unutmay\u0131n, her b\u00fcy\u00fck yaz\u0131l\u0131m projesi, bu t\u00fcr k\u00fc\u00e7\u00fck, iyi tan\u0131mlanm\u0131\u015f ad\u0131mlarla ba\u015flar. Kendinize g\u00fcvenin, pratik yapmaya devam edin ve kodlama maceran\u0131z\u0131n tad\u0131n\u0131 \u00e7\u0131kar\u0131n!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<p><strong>1. Hesap makinesini \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131mda \"ValueError\" al\u0131yorum, neden?<\/strong><\/p>\n<p>Cevap: Bu genellikle, say\u0131 girmesi beklenen yere say\u0131sal olmayan bir de\u011fer (\u00f6rne\u011fin bir metin veya sembol) girdi\u011finizde meydana gelir. <\/p>\n<pre><code>float()<\/pre>\n<p><\/code> fonksiyonu, d\u00f6n\u00fc\u015ft\u00fcremedi\u011fi bir metinle kar\u015f\u0131la\u015ft\u0131\u011f\u0131nda bu hatay\u0131 f\u0131rlat\u0131r. Kodunuzdaki <\/p>\n<pre><code>try-except ValueError<\/pre>\n<p><\/code> blo\u011fu bu durumu yakalar ve size uyar\u0131 verir. Tekrar say\u0131sal bir de\u011fer girmeyi deneyin.<\/p>\n<p><strong>2. Hesap makinesine yeni i\u015flemler (\u00f6rne\u011fin \u00fcs alma) nas\u0131l ekleyebilirim?<\/strong><\/p>\n<p>Cevap: Yeni bir i\u015flem eklemek i\u00e7in \u00f6ncelikle o i\u015flem i\u00e7in yeni bir fonksiyon tan\u0131mlaman\u0131z gerekir. \u00d6rne\u011fin, <\/p>\n<pre><code>def us_alma(x, y): return x ** y<\/pre>\n<p><\/code>. Ard\u0131ndan, ana d\u00f6ng\u00fcdeki i\u015flem se\u00e7im men\u00fcs\u00fcne yeni bir se\u00e7enek ekleyin (\u00f6rne\u011fin \"5. \u00dcs Alma\") ve <\/p>\n<pre><code>if-elif<\/pre>\n<p><\/code> blo\u011funa bu se\u00e7ene\u011fi kar\u015f\u0131layacak yeni bir ko\u015ful ekleyerek yeni fonksiyonunuzu \u00e7a\u011f\u0131r\u0131n. Bu, kodunuzun mod\u00fcler yap\u0131s\u0131n\u0131n esnekli\u011fini g\u00f6sterir.<\/p>\n<p><strong>3. Hesap makinesinin sonucunu ondal\u0131k basamaklarla s\u0131n\u0131rlayabilir miyim?<\/strong><\/p>\n<p>Cevap: Evet, sonucu <\/p>\n<pre><code>round()<\/pre>\n<p><\/code> fonksiyonu veya f-string formatlama ile s\u0131n\u0131rlayabilirsiniz. \u00d6rne\u011fin, sonucu iki ondal\u0131k basama\u011fa yuvarlamak i\u00e7in <\/p>\n<pre><code>print(f\"Sonu\u00e7: {sonuc:.2f}\")<\/pre>\n<p><\/code> kullanabilirsiniz. Bu, \u00f6zellikle b\u00f6lme i\u015flemleri gibi durumlarda uzun ondal\u0131kl\u0131 say\u0131lar\u0131n okunabilirli\u011fini art\u0131r\u0131r.<\/p>\n<p><strong>4. Programdan \u00e7\u0131kmak i\u00e7in neden \"break\" kullan\u0131yoruz?<\/strong><\/p>\n<p>Cevap: <\/p>\n<pre><code>break<\/pre>\n<p><\/code> ifadesi, bulundu\u011fu d\u00f6ng\u00fcy\u00fc hemen sonland\u0131rmak i\u00e7in kullan\u0131l\u0131r. Hesap makinemizde, kullan\u0131c\u0131 \"5. \u00c7\u0131k\u0131\u015f\" se\u00e7ene\u011fini se\u00e7ti\u011finde, <\/p>\n<pre><code>while True<\/pre>\n<p><\/code> d\u00f6ng\u00fcs\u00fcn\u00fcn sonsuz \u00e7al\u0131\u015fmas\u0131n\u0131 engellemek ve program\u0131 d\u00fczg\u00fcn bir \u015fekilde kapatmak i\u00e7in <\/p>\n<pre><code>break<\/pre>\n<p><\/code> kullan\u0131r\u0131z. Bu, kullan\u0131c\u0131ya program \u00fczerinde kontrol sa\u011flar.<\/p>\n","protected":false},"excerpt":{"rendered":"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131&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":[1],"tags":[],"class_list":{"0":"post-34824","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?<\/title>\n<meta name=\"description\" content=\"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.\" \/>\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\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?\" \/>\n<meta property=\"og:description\" content=\"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-22T10:30:55+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=\"22 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?\",\"datePublished\":\"2025-11-22T10:30:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\"},\"wordCount\":3955,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\",\"name\":\"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-22T10:30:55+00:00\",\"description\":\"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?\"}]},{\"@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":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?","description":"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.","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\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?","og_description":"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-22T10:30:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"22 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?","datePublished":"2025-11-22T10:30:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/"},"wordCount":3955,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/","name":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-22T10:30:55+00:00","description":"Python \u00f6\u011frenme yolculu\u011funuzun 7. g\u00fcn\u00fcne ho\u015f geldiniz! Bu heyecan verici a\u015famada, \u015fimdiye kadar \u00f6\u011frendi\u011fimiz t\u00fcm temel Python kavramlar\u0131n\u0131 bir araya getirerek basit ama i\u015flevsel bir hesap makinesi uygulamas\u0131 geli\u015ftirece\u011fiz. Bu proje, de\u011fi\u015fkenlerden ko\u015fullu ifadelere, d\u00f6ng\u00fclerden hata y\u00f6netimine kadar bir\u00e7ok konuyu pratik bir \u015fekilde peki\u015ftirmenizi sa\u011flayacak.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-neden-basit-bir-hesap-makinesi-yapmaliyiz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f: Neden Basit Bir Hesap Makinesi Yapmal\u0131y\u0131z?"}]},{"@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\/34824","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=34824"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34824\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}