Merhaba birim değiştirici uygulaması yapmaya çalışıyordum. Her şey tıkır tıkır işliyor ancak hata ayıklamada sorun yaşıyorum. Yani kullanıcının girdiği veri int değil de str olduğunda bir hata mesajı göndermek istiyorum , def fonksiyonu içinde bunu belirttim kodun içine yazdım ancak veri değişkenini globale çekemediğim için yapamadım. Kodları yoruma paylaşacağım muhtemelen ne demek istediğimi anlayabilirsiniz.
while True:
print("Km Çevirme Uygulaması")
print("""
[1] M Çevirme
[2] Cm Çevirme
[3] Mm Çevirme
[Q] Çıkış
""")
veri = input("Yapmak İstediğiniz İşlemi Giriniz: ")
kaç_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
if veri == "1":
def m_çevirme():
mc = (kaç_km * 1000)
print(f"{kaç_km} KM = " "{:,}".format(mc) , "M'dir. ")
m_çevirme()
elif veri == "2":
def cm_çevirme():
cmc = (kaç_km * 100000)
print(f"{kaç_km} KM = " "{:,}".format(cmc) , "Cm'dir. ")
cm_çevirme()
elif veri == "3":
def mm_çevirme():
mmc = (kaç_km * 1000000)
print(f"{kaç_km} KM = " "{:,}". format(mmc) , "MM'dir") # {:,} uzun sayıları okumak için kullanılıyor.
mm_çevirme()
elif veri == "q" or veri == "Q":
print("Çıkış Yapıldı...")
quit()
else:
print("Hatalı Bir Tuşlama Yaptınız Tekrar Deneyiniz...")
def hata():
while True:
try:
veri = int(input("Sayı gir: "))
except:
hata()
return
if(veri < 0):
print("Negatif sayı girildi.")
elif veri == 0:
print("Sıfır girdin.")
else:
print("Pozitif sayı girildi.")
hata()
Buda def fonksiyonu içinde yazmak istediğim hata ayıklama. Program ile hata ayıklamayı birbirine bağlayamadım , Sayıları tek tek yazıp döngüye sokmak istemiyorum , açıkçası hata ayıklamayı nasıl kullanıldığını kafamda oturtmaya çalışıyorum.
Yanlış anlamadıysam böyle birşey istiyorsunuz.
try:
kaç_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
except ValueError:
print("Sayı Giriniz!")
continue
while True:
print("Km Çevirme Uygulaması")
print("""
[1] M Çevirme
[2] Cm Çevirme
[3] Mm Çevirme
[Q] Çıkış
""")
try:
veri = input("Yapmak İstediğiniz İşlemi Giriniz: ")
if veri == "q" or veri == "Q": # q ya başıldığında hemen çıksın istiyorsan burada belirteecksin.
print("Çıkış Yapıldı...")
break
else:
pass
kaç_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
except ValueError:
print("Lütfen sadece sayı girin!")
if veri == "1":
def m_çevirme():
mc = (kaç_km * 1000)
print(f"{kaç_km} KM = " "{:,}".format(mc) , "M'dir. ")
m_çevirme()
elif veri == "2":
def cm_çevirme():
cmc = (kaç_km * 100000)
print(f"{kaç_km} KM = " "{:,}".format(cmc) , "Cm'dir. ")
cm_çevirme()
elif veri == "3":
def mm_çevirme():
mmc = (kaç_km * 1000000)
print(f"{kaç_km} KM = " "{:,}". format(mmc) , "MM'dir") #{:,} yapısı uzun sayıları basamaklarına ayır ve yaz yani okumas kolaylaşır
mm_çevirme()
else:
print("Hatalı Bir Tuşlama Yaptınız Tekrar Deneyiniz...")
Son hali böyle oldu sağolsun forumdan arkadaş soruma derman oldu özelden yazarak. Bir çok noktayı kafamda oturtmuş oldum.
while True:
print("Km Çevirme Uygulaması")
print("""
[1] M Çevirme
[2] Cm Çevirme
[3] Mm Çevirme
[Q] Çıkış
""")
try:
veri = input("Yapmak İstediğiniz İşlemi Giriniz: ")
if veri == "q" or veri == "Q": # q ya başıldığında hemen çıksın istiyorsan burada belirteecksin.
print("Çıkış Yapıldı...")
break
elif veri == "1":
kac_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
print(f"{kac_km} KM = {kac_km*1000:,} metredir.")
elif veri == "2":
kac_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
print(f"{kac_km} KM = {kac_km*100000:,} santimetredir.")
elif veri == "3":
kac_km = int(input("Çevirmek İstediğiniz KM Miktarını Giriniz: "))
print(f"{kac_km} KM = {kac_km * 1000000:,} milimetredir.")
else:
print("Hatalı Bir Tuşlama Yaptınız Tekrar Deneyiniz...")
except ValueError as hata:
print("Lütfen sadece sayı giriniz", hata)
2 Beğeni
Teşekkür ederim bu çok daha sade ve güzel bir cevap olmuş. Sayenizde yanlışlarımı gördüm.
1 Beğeni