Python ile Basit Hesap Makinesi Yapımı | Kod Örneği ve Gelişmiş Rehber

Python ile terminal veya GUI destekli hesap makinesi nasıl yapılır? Bu rehberde, adım adım açıklamalarla kod örnekleri, hata yönetimi.

 

🧮 Python ile Basit Hesap Makinesi Yapımı (Kod Örneği ve Detaylı Anlatım)

🔰 Giriş

Python, sade sözdizimi ve güçlü yetenekleri sayesinde hem başlangıç hem de ileri seviye programcılar için oldukça popüler bir programlama dilidir. Bu yazıda, Python ile nasıl basit bir hesap makinesi yapılacağını, adım adım açıklamalarla, kod örnekleri, fonksiyonlar, ve kullanıcı etkileşimi ile birlikte detaylı bir şekilde öğreneceğiz.


🧑‍💻 Hesap Makinesi Projesinin Amacı

Bu projenin temel amacı:

  • Python ile kullanıcıdan giriş alma,

  • Dört temel matematiksel işlemi (toplama, çıkarma, çarpma, bölme) yapabilmek,

  • Fonksiyon kullanımını öğrenmek,

  • Koşullu ifadeleri (if-else) pekiştirmek,

  • Hatalı girişleri yönetmek (exception handling),

  • Kullanıcı dostu bir arayüzle terminalde etkileşim sağlamak.


🔍 Python Hesap Makinesi Yapısı Nasıl Olmalı?

Projemiz aşağıdaki yapıya sahip olacak:

  1. Kullanıcıdan iki sayı alınacak.

  2. Kullanıcıdan hangi işlemi yapmak istediği sorulacak.

  3. Seçime göre işlem yapılacak.

  4. Sonuç ekrana yazdırılacak.

  5. Kullanıcı çıkmak isteyene kadar işlem tekrarlanabilecek.


📘 Temel Python Bilgileri (Hızlı Hatırlatma)

Bu projeyi yapmadan önce bilmemiz gereken bazı temel Python konuları şunlardır:

  • input() fonksiyonu ile kullanıcıdan veri alma

  • int() ve float() veri dönüşümleri

  • if, elif, else koşulları

  • while döngüsü

  • Fonksiyon tanımlama: def

  • Hata yönetimi: try-except


✍️ Python ile Basit Hesap Makinesi Kod Örneği

Aşağıda en sade haliyle bir hesap makinesi örneği veriyoruz:

python

def toplama(x, y): return x + y def cikarma(x, y): return x - y def carpma(x, y): return x * y def bolme(x, y): try: return x / y except ZeroDivisionError: return "Hata: Sıfıra bölme yapılamaz." print("Basit Python Hesap Makinesi") print("İşlem Seçin:") print("1. Toplama") print("2. Çıkarma") print("3. Çarpma") print("4. Bölme") while True: secim = input("Seçiminizi yapın (1/2/3/4): ") if secim in ('1', '2', '3', '4'): try: sayi1 = float(input("Birinci sayıyı girin: ")) sayi2 = float(input("İkinci sayıyı girin: ")) except ValueError: print("Lütfen sadece sayı girin!") continue if secim == '1': print("Sonuç:", toplama(sayi1, sayi2)) elif secim == '2': print("Sonuç:", cikarma(sayi1, sayi2)) elif secim == '3': print("Sonuç:", carpma(sayi1, sayi2)) elif secim == '4': print("Sonuç:", bolme(sayi1, sayi2)) else: print("Geçersiz giriş yaptınız.") devam = input("Başka işlem yapmak ister misiniz? (evet/hayır): ") if devam.lower() != 'evet': print("Çıkılıyor...") break

📌 Kodun Satır Satır Açıklaması

Fonksiyonlar

Her işlem için ayrı bir fonksiyon tanımladık. Bu, kodu daha okunabilir ve modüler hale getirir.

python

def toplama(x, y): return x + y

Benzer şekilde çıkarma, çarpma ve bölme işlemleri de aynı şekilde çalışır.

Kullanıcı Girişi

Kullanıcıdan işlem seçmesini istiyoruz ve sayıları alıyoruz:

python

secim = input("Seçiminizi yapın (1/2/3/4): ") sayi1 = float(input("Birinci sayıyı girin: "))

Hata Yönetimi

Eğer kullanıcı sayı yerine harf girerse, ValueError meydana gelir. Bu durumda hata mesajı veririz.

python

try: sayi1 = float(input("Birinci sayıyı girin: ")) except ValueError: print("Lütfen sadece sayı girin!")

Sonsuz Döngü ve Çıkış

Kod, kullanıcı "hayır" yazana kadar çalışmaya devam eder.


🛠️ Gelişmiş İşlemler Ekleyelim (Mod Alma, Üs Alma, Karekök)

Python ile dört temel işlem dışında bazı gelişmiş matematiksel işlemleri de hesap makinesine ekleyebiliriz:

🔢 Ekstra İşlemler:

  • Mod alma (%)

  • Üs alma (x ** y)

  • Karekök alma (math.sqrt(x))

Bunun için math modülünü dahil etmemiz gerekiyor:

python

import math def mod_alma(x, y): return x % y def us_alma(x, y): return x ** y def karekok_alma(x): return math.sqrt(x)

📜 Menüye Yeni Seçenekler Ekleyelim

python

print("5. Mod Alma") print("6. Üs Alma") print("7. Karekök Alma")

✅ Yeni İşlemleri Uygulama

python

elif secim == '5': print("Sonuç:", mod_alma(sayi1, sayi2)) elif secim == '6': print("Sonuç:", us_alma(sayi1, sayi2)) elif secim == '7': print("Sonuç:", karekok_alma(sayi1))

Not: Karekök almak için tek bir sayı yeterlidir. Giriş yaparken bu farkı kullanıcıya belirtmek gerekir.


🎨 Kullanıcı Deneyimini Artırmak İçin Menü Fonksiyonu

Kodu sadeleştirmek için menüyü fonksiyon haline getirebiliriz:

python

def menu_yazdir(): print("\nİşlem Seçin:") print("1. Toplama") print("2. Çıkarma") print("3. Çarpma") print("4. Bölme") print("5. Mod Alma") print("6. Üs Alma") print("7. Karekök Alma")

Ana döngüde bu fonksiyonu çağırabiliriz:

python

while True: menu_yazdir() secim = input("Seçiminizi yapın (1-7): ") ...

🧠 Exception Handling (Hata Yakalama) Geliştirmesi

Programın kullanıcı dostu olması için try-except blokları her giriş noktasında uygulanmalı:

python

try: sayi1 = float(input("Birinci sayıyı girin: ")) if secim != '7': sayi2 = float(input("İkinci sayıyı girin: ")) except ValueError: print("Lütfen geçerli bir sayı girin!") continue

💾 İşlem Günlüğü (Loglama)

Kullanıcının yaptığı işlemleri .txt dosyasına kaydederek, basit bir log sistemi kurabiliriz:

python

def log_yaz(islem, sonuc): with open("islem_logu.txt", "a") as dosya: dosya.write(f"{islem} = {sonuc}\n")

Kullandığımız her işlem fonksiyonu sonrasında bunu çağırabiliriz:

python

sonuc = toplama(sayi1, sayi2) print("Sonuç:", sonuc) log_yaz(f"{sayi1} + {sayi2}", sonuc)

🖼️ Tkinter ile Grafiksel Hesap Makinesi (GUI)

İsterseniz terminal dışında grafiksel arayüz (GUI) ile çalışan bir hesap makinesi de yapılabilir. Python’un yerleşik GUI kütüphanesi olan Tkinter ile bu mümkündür.

🧱 Örnek GUI Tasarımı:

python

from tkinter import * def hesapla(): try: sonuc = eval(giris.get()) etiket_sonuc.config(text=f"Sonuç: {sonuc}") except: etiket_sonuc.config(text="Hatalı Giriş!") pencere = Tk() pencere.title("Python Hesap Makinesi") giris = Entry(pencere, width=30) giris.pack() buton = Button(pencere, text="Hesapla", command=hesapla) buton.pack() etiket_sonuc = Label(pencere, text="Sonuç:") etiket_sonuc.pack() pencere.mainloop()

Bu, Python ile basit bir grafiksel hesap makinesi örneğidir. eval() fonksiyonu kullanıcıdan gelen işlemi değerlendirerek sonucu gösterir.


 


Yorumlar