Resim

Basit Konsol Hesap Makinesi

Basit Konsol Hesap Makinesi

Temel Python bilgilerimizi pekiştirmeye devam ediyoruz. Bu seferki projemiz, günlük hayatta sıkça kullanılan bir araç: Basit Hesap Makinesi.

Bu projeyi tamamladığınızda, Python'da;

  • Tekrarlanan görevler için fonksiyonları nasıl tanımlayacağınızı,

  • Karar verme mekanizmalarını (if/elif/else) nasıl kuracağınızı,

  • Kullanıcı yanlış girdiğinde programın çökmesini önleyen hata yakalamayı (try/except)

öğrenmiş olacaksınız. Hemen kodlamaya geçelim!

💻 Python Kodu: Basit Konsol Hesap Makinesi

# 1. Fonksiyonlar: Her işlem için bir fonksiyon tanımla
def toplama(a, b):
    """İki sayıyı toplar."""
    return a + b
def cikarma(a, b):
    """İki sayıyı birbirinden çıkarır."""
    return a - b
def carpma(a, b):
    """İki sayıyı çarpar."""
    return a * b
def bolme(a, b):
    """İki sayıyı böler. Sıfıra bölme hatasını kontrol eder."""
    if b == 0:
        return "Hata: Sıfıra bölme yapılamaz!"
    return a / b
# 2. Ana Program Döngüsü ve Menü
def hesap_makinesi_baslat():
    print("-" * 50)
    print("Python Konsol Hesap Makinesine Hoş Geldiniz")
    print("İşlemler: +, -, *, /, Çıkış")
    print("-" * 50)
    while True:
        # Kullanıcıdan işlemi al
        islem = input("Yapmak istediğiniz işlemi girin (+, -, *, /, Çıkış): ").lower()
        # Çıkış kontrolü
        if islem == "çıkış":
            print("Hesap makinesi kapatılıyor. Güle güle!")
            break
        # İşlem geçerli mi kontrol et
        if islem not in ['+', '-', '*', '/']:
            print("Geçersiz işlem! Lütfen geçerli bir işlem seçin.")
            continue
        # Sayıları al ve hata yakalama (try/except) uygula
        try:
            sayi1 = float(input("Birinci sayıyı girin: "))
            sayi2 = float(input("İkinci sayıyı girin: "))
        except ValueError:
            print("Hata: Lütfen geçerli sayısal değerler girin.")
            continue # Döngünün başına dön
        # 3. İşlemi Uygula (Koşullu Kontrol)
        if islem == '+':
            sonuc = toplama(sayi1, sayi2)
        elif islem == '-':
            sonuc = cikarma(sayi1, sayi2)
        elif islem == '*':
            sonuc = carpma(sayi1, sayi2)
        elif islem == '/':
            sonuc = bolme(sayi1, sayi2)
        else:
            # Bu durum teorik olarak yukarıdaki kontrolden dolayı oluşmamalı, ama güvenlik için burada kalsın.
            continue      
        # Sonucu Ekrana Yazdır
        print("=" * 30)
        # float() kullandığımız için tam sayılar bile ondalıklı gösterilecektir.
        print(f"Sonuç: {sonuc}")
        print("=" * 30)

# Programı başlat
if __name__ == "__main__":
    hesap_makinesi_baslat()

📝 Kodun Adım Adım Açıklaması

Bu hesap makinesi, kullanıcı etkileşimi, mantıksal akış ve hata güvenliği konularında size önemli pratikler kazandırır.

Adım 1: Fonksiyonlarla Modülerlik

def toplama(a, b):
    return a + b
# ... diğer işlemler ...
  • Neden Fonksiyon? Her bir matematiksel işlemi (toplama, çıkarma, vb.) ayrı bir def fonksiyonu içine almak, kodumuzu modüler ve okunabilir hale getirir. Bu, ileride daha karmaşık projelerde kodunuzu yönetmenizi kolaylaştırır.

  • Basit Mantık: Fonksiyonlar yalnızca girdi olarak aldığı iki sayıyı işleme koyar ve sonucu döndürür (return).

Adım 2: Sonsuz Döngü ve Menü

while True:
    islem = input("Yapmak istediğiniz işlemi girin...").lower()
    if islem == "çıkış":
        break
  • while True: Tıpkı Sayı Tahmin Oyunu'nda olduğu gibi, kullanıcı "Çıkış" yazana kadar programın çalışmaya devam etmesini sağlayan ana yapıdır. Bu, kullanıcının tek bir seferde birden fazla işlem yapmasına olanak tanır.

  • Menü: Her döngü başında kullanıcıdan ne yapacağını sorarak program akışını kontrol ederiz.

Adım 3: Kritik Kavram: Hata Yakalama (try-except)

try:
    sayi1 = float(input("Birinci sayıyı girin: "))
    sayi2 = float(input("İkinci sayıyı girin: "))
except ValueError:
    print("Hata: Lütfen geçerli sayısal değerler girin.")
    continue
  • Güvenlik: Kullanıcı sayı girmesi gerekirken yanlışlıkla "merhaba" yazarsa, programımız ValueError hatası verir ve çöker.

  • Çözüm: try bloğu, hata verebilecek kodu barındırır. Eğer bir hata oluşursa, program çökmez; onun yerine kontrolü hemen except ValueError bloğuna devreder ve kullanıcıya hata mesajı gösterilir.

  • float(): Sayıların ondalıklı (virgüllü) olmasına izin vermek için int() yerine float() kullandık.

Adım 4: Karar Verme (if/elif/else) ve Fonksiyon Çağrısı

if islem == '+':
    sonuc = toplama(sayi1, sayi2)
elif islem == '-':
    sonuc = cikarma(sayi1, sayi2)
# ...
  • Kullanıcının girdiği işlem sembolüne göre (+, -, *, /), program doğru fonksiyonu çağırır ve işlemi gerçekleştirir.

  • Örneğin, kullanıcı + girdiğinde, toplama(sayi1, sayi2) fonksiyonu çalışır ve sonucu sonuc değişkenine atar.

Bu projeyle, Python'da kullanıcı etkileşimi ve mantıksal akışı yönetme konusunda sağlam bir temel attınız! Başarılar dileriz!

Yorumlar

Bu blogdaki popüler yayınlar

Python random Modülü

Python print()

Yazılım Nedir?