ValueError hatayı yakalamıyor

import time

print("\nYapmak istediğiniz işlemleri\naşağıdaki işaretleri kullanarak yapınız\n")

print("Toplama: + \n"+"Çıkarma: -\n"+"Çarpma: *\n"+"Bölme: /")

while True:
    try:
        işlem=input("\nİşleminizi giriniz: ")
        Hesap=eval(işlem)
        time.sleep(0.3)
        print(Hesap)
        print("-"*30)
        time.sleep(0.5)
    except ValueError:
        print("\nSayı giriniz!")
        print("-"*30)
    except ZeroDivisionError:
        print("\nBir sayı 0'a bölünmez!")
        print("-"*30)

Merhaba bu kodu çalıştırdığımda ZeroDivisionError kısmında hata almazken Value Error kısmında hata alıyorum ve uygulama kapanıyor. Sebebi ne acaba?

Aldiginiz hata nedir?

Traceback (most recent call last): File "<stdin>", line 4, in <module> File "<string>", line 1, in <module> NameError: name 'aa' is not defined

"aa " değerini girmeye çalıştım

Value Error yerine Name Error yazdığımda sorun düzeliyor ama neden hata Name Error onu çözemedim.

String olduğu için olabilir mi?

ValueError u degil NameError’u catch edin

Eval ile python kodu calistiriyorsun. 1 tanimli ama aa degil.

2 Beğeni

Teşekkürler…

:heart: koymak kesinlikle daha iyi ve kolay bir yöntem :+1:

Seviyorsun galiba böyle anlamlı sözleri

Sadece daha iyi (bence).Herhangi bir anlam vermek istemedim,kusuruma bakma.Hem beğenip,hem teşekkür edince garip geldi :sweat_smile:

1 Beğeni

Ben bu konuyu tam anlamadım ama çözülmüş olarak yorumlanmış. Hiç bir yerde sayı girişi yok ki bir sayının 0 a bölünmesini kontrol eden kod yok. Value error hatasını vermesi için hesap kısmına işlemden eval ile ±/* değeri geliyor sayı girilecek yer hangi satırdan kontrol ediliyor ben de yeni başladım da bir açıklarsanız iyi olur.