0 oy
Python kategorisinde (770 puan) tarafından soruldu

Arkadaşlar merhabalar. Modüller ödevi için gelişmiş bir hesap makinesi yapmaya çalıştım ve kullanıcıdan gelebilecek hatalı girdilere karşı da önlem almaya çalıştım. Bununla ilgili olarak;

1) Gelebilecek hatalı işlemlere karşı ekstra hangi önlemleri alabilirim.

2) Hesap makinesini geliştirmek istesem ne gibi düzenlemeler yapabilirim. Kodlarda sadeleştirme ya da ekstra bir şeyler eklemek gibi.

Cevaplar için şimdiden teşekkür ediyorum

import math

while True:
    try:
        islem_yapilacaklar = []
        sonuc = 1
        islem = int(input("--------------------------------------------\nLütfen yapmak istediğiniz işlemi seçiniz. \n--------------------------------------------\n\n1 - Toplama\n2 - Çıkarma\n3 - Çarpma\n4 - Bölme\n5 - Karekök Bulma\n6 - Karesi\n7 - Faktoriyel Hesaplama\n8 - Hipotenüs Bulma\n9 - Çıkış"))
        if islem == 1:
            sayilar = input("lütfen toplama işlemi yapmak istediğiniz sayıları aralarına virgül(,) koyarak giriniz. :")
            sayilarArr = sayilar.split(",")
            for i in sayilarArr:
                islem_yapilacaklar.append(int(i))
            print("Girdiğiniz sayılar :",islem_yapilacaklar)
            print(math.fsum(islem_yapilacaklar))
        elif islem == 2:
            sayilar = input("lütfen çıkarma işlemi yapmak istediğiniz sayıları aralarına virgül(,) koyarak giriniz. :")
            sayilarArr = sayilar.split(",")
            for i in sayilarArr:
                islem_yapilacaklar.append(int(i))
            if len(islem_yapilacaklar) > 2:
                print("Lütfen sadece 2 sayı giriniz.")
                continue
            print("Girdiğiniz sayılar :", islem_yapilacaklar)
            print("Girdiğiniz sayıların arasındaki fark :",math.fabs((islem_yapilacaklar[0]-islem_yapilacaklar[1])))
        elif islem == 3:
            sayilar = input("lütfen çarpma işlemi yapmak istediğiniz sayıları aralarına virgül(,) koyarak giriniz. :")
            sayilarArr = sayilar.split(",")
            for i in sayilarArr:
                sonuc *= int(i)
            print("Girdiğiniz sayılar :", sayilarArr)
            print("Girdiğiniz sayıların çarpımı :",sonuc)
        elif islem == 4:
            sayilar = input("lütfen bölme işlemi yapmak istediğiniz sayıları aralarına virgül(,) koyarak giriniz. :")
            sayilarArr = sayilar.split(",")
            for i in sayilarArr:
                islem_yapilacaklar.append(int(i))
            if len(islem_yapilacaklar) > 2:
                print("Lütfen sadece 2 sayı giriniz.")
                continue
            print("Girdiğiniz sayılar :", islem_yapilacaklar)
            print("Girdiğiniz sayıların bölümü sonucu :",(islem_yapilacaklar[0]/islem_yapilacaklar[1]))
        elif islem == 5:
            sayilar = input("lütfen karekökünü hesaplamak istediğiniz sayıları aralarına virgül(,) koyarak giriniz. :")
            print("Girdiğiniz sayı :", sayilar)
            print("Karekökü :",math.sqrt(int(sayilar)))
        elif islem == 6:
            sayilar = input("lütfen karesi hesaplanacak sayıyı giriniz. :")
            print("Girdiğiniz sayı :", sayilar)
            print("Karesi :",int(sayilar)**2)
        elif islem == 7:
            sayilar = input("lütfen faktoriyelini hesaplatmak istediğiniz sayıyı giriniz. :")
            print("Girdiğiniz sayı :", sayilar)
            print("Karekökü :",math.factorial(int(sayilar)))
        elif islem == 8:
            sayilar = input("lütfen hipotenüs hesaplamak için 2 kenar uzunluklarını aralarına virgül(,) koyarak giriniz. :")
            sayilarArr = sayilar.split(",")
            for i in sayilarArr:
                islem_yapilacaklar.append(int(i))
            if len(islem_yapilacaklar) > 2:
                print("Lütfen sadece 2 sayı giriniz.")
                continue
            print("Girdiğiniz kenar uzunlukları :", islem_yapilacaklar)
            print("Hipotenüs :",math.hypot(islem_yapilacaklar[0],islem_yapilacaklar[1]))
        elif islem == 9:
            print("Çıkış Yapılıyor....\nYine bekleriz..")
            break
        else:
            print("Lütfen doğru bir seçim yapınız...")
    except ValueError:
        print("Lütfen doğru bir seçim yapınız...")

1 cevap

0 oy
(660 puan) tarafından cevaplandı

Filtre öneririm

# -*- coding: utf-8 -*-
import math
def filtre(text):
    sp = text.split(",")
    if(len(sp)==2):
        try:
            a=float(sp[0])
            b=float(sp[1])
        except:
            return None
    return a,b
while True:
    data = raw_input("> ")
    filtered = filtre(data) # veri kullanılabiliyorsa verileri kullanılamıyorsa boş göndericek
    if(filtered): # veri var ise devam edecek
        print filtered[0]*filtered[1] # verilere çarpma işlemi uygulayacak
        

 

Yazılım Biliminin Soru Cevap Platformuna hepiniz hoşgeldiniz. Bu platformda kurallara uyarak diğer geliştiricilerle yardımlaşabilirsiniz.
...