- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
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!
# 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()
Bu hesap makinesi, kullanıcı etkileşimi, mantıksal akış ve hata güvenliği konularında size önemli pratikler kazandırır.
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).
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.
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.
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
Yorum Gönder