Merhaba, python a yeni başladım, ilk denememi yapmak itedim fakat takıldım, yapmak istediğim şifre girilmesi fakat bu şifrenin sadece int içermesi, yanlılıkla str girerse hata verip tekrardan int girmeye yönlendirmesi.
Rica ederim,
insan bazen konuları okuyunca anlatılanı tam olarak anlayamıyor / kavrayamıyor.
Konu hakkında kodları incelediğinde ya da kendisi kod yazmaya çalıştığında daha anlaşılır oluyor.
try, except bloğunu/yapısını ilk okuduğumda anladım sanmıştım ama kod yazmaya çalıştığımda anlamadığım ortaya çıkmıştı.
O nedenle bol bol pratik lazım.
Kesinlikle haklısınız hocam, insan okuyup düz aynısını yazınca akılda kalmıyor, fakat bir şey yapmaya çalışıp, uğraşıp, sonuçlarını alınca, yapılan hata ders oluyor, bunu aslında kullanacağım bir yer yok, aklıma geldi, şimdiye kadar okuduğum ile böyle bir şey yapsam diye denemek istedim, derken saplanıp kaldım, inat ettim,
dünden beri bir sürü kombinasyon denemiştim, kopya da çekmek istemedim ezbere iş yapmış olmayayım kendim çözeyim diye, fakat en son çıkmaza düşünce fazlalıkları silip sormak ve çözüme gitmeyi tercih ettim, şimdi aklımda daha kalıcı oldu, elinize sağlık, teşekkür ederim.
try ile except’in arasini mumkun oldugunca kisa tutmak lazim oldugu icin bunu yukaridakine tercih ederim ama ikisi de hangi exception’larin yakalanacagini belirlememis, alakasiz istisnai durumlari da “rakam girmedi” olarak gorebiliyor. Ciplak except: hemen her zaman hatali bir kod.
Hocam öncelikle bilgilendirme için teşekkür ederim, size göre dizilim nasıl olmalı ?, ben acemiyim daha yeni öğreniyorum, bir şeyler öğrenene kadar bir çok hatam olacaktır daha, try except ise yazbelde baktığım derste ne nedir ve ne yapıyor diye hızlıca bakınca bunu kullanabilirim diye denediğim bir dizilimdi, kullanmayı düşündüm beceremedim, @m.halil hocam ise çözüme onunla gitti.
try:
hata verebileceğini bildiğimiz kodlar
except HataAdı:
hata durumunda yapılacak işlem
Ayrıca, YazBel belgelerinde ;
Biliyoruz ki, bir veriyi sayıya dönüştürmek istediğimizde eğer kullanıcı sayı değerli bir veri yerine harf değerli bir veri girerse programımız çöker.
… veri dönüştürme işlemi sırasında kullanıcının uygun olmayan bir veri girmesi halinde üretilecek hata bir ValueError’dır. Dolayısıyla except bloğu içine yazacağımız hata türünün adı da ValueError olacaktır. O yüzden ValueError adlı hatayı yakalayabilmek için şu satırları yazdık:
ifadeleri bulunmaktadır.
Veri dönüştürme işleminde kullanıcının uygun olmayan bir veri girmesi halinde üretilecek hata için ValueError,
ifadesini eklemek gerekiyor.
while True:
try:
dene = int(input("Lütfen şifrenizi giriniz : "))
if type(dene) == int:
print("Girdiğiniz Şifre: ", dene)
if dene == 8:
print("Şifre Doğru.")
break
else:
print("yanlış tekrar dene")
except ValueError:
print("Sadece Rakam Girmelisiniz.")