Arkadaşlar, merhaba.
Bu işlemde int kontrolünün kullanıcı her iki sayıyı girdikten sonra değilde birinci_sayi'nında int girilmez ise print("Birinci sayı değeri yanlış girildi!") çıktısının çalışması için nasıl bir yol izlenmeli. Teşekkürler.
while True :
birinci_sayi = input("Birinci sayı > ")
ikinci_sayi = input("İkinci sayı > ")
try:
sayi1 = int(birinci_sayi)
sayi2 = int(ikinci_sayi)
print(sayi1, "+", sayi2, "=", sayi1 + sayi2)
except ValueError :
print("Birinci sayı değeri yanlış girildi!")
print("İkinci sayı değeri yanlış girildi!")
while True:
while True:
birinci_sayi = input("Birinci Sayı >> ")
try:
birinci_sayi = float(birinci_sayi)
break
except:
print("Lütfen sayısal değer giriniz")
while True:
ikinci_sayi= input("İkinci Sayı >> ")
try:
ikinci_sayi = float(ikinci_sayi)
break
except:
print("Lütfen sayısal değer giriniz")
toplam = birinci_sayi + ikinci_sayi
print("\n{} + {} = {}\n".format(birinci_sayi,ikinci_sayi,toplam))
aynı yöntem ya da farklı bir yöntem ile kurulan farklı bir algoritma sayesinde yazılan kod sayısı azaltılabilir. Fakat bu şeklinde de istediğiniz işlevi yerine getiriyor.
hata almıyorum.Fakat aşağıdaki gibi sonda olunca ikinci sayıyı girerken ValueError satırı çalışıyor, ikinci sayıya 0 değerini girince ZeroDivisionError satırı çalışmıyor. Bunun sebebi ne olabilir. Şimdiden teşekkür ederim.
#encoding:cp1254
while True :
while True:
ilk_sayi = input("İlk Sayı :")
try :
ilk_sayi = float(ilk_sayi)
break
except ValueError:
print("Lütfen sadece sayı değeri giriniz.")
except :
print("Girdiğiniz değeri lütfen kontrol ediniz.")
while True :
ikinci_sayi = input("İkinci Sayı :")
try:
ikinci_sayi = float(ikinci_sayi)
break
except ValueError:
print("Lütfen Sadece Sayı değeri giriniz!")
except ZeroDivisionError:
print("Sayılar Sıfıra bölünemez.")
print(ilk_sayi, '/', ikinci_sayi, '=', int(ilk_sayi) / int(ikinci_sayi))
çünkü siz print fonksiyonu içerisinde sayılara bölme işlemi yaptırıyorsunuz. ve try bloğu içerisinden dışarıya taşıdığınızda ZeroDivisionError verebilmesi icin tekrar bi tryexcept bloğu yazmanız gerekir