Python istisnası

Python işlevleri ve meth

İstisnalar Python yorumlayıcısı tarafından ve manuel olarak oluşturulabilir. Yerleşik istisnalar, bir programdaki yaygın hataları yakalamaya yardımcı olur.

Bu kılavuzda, istisnanın ne olduğunu ve nasıl kullanıldığını tartışacağız. Kodunuzda bunlarla çalışabilmeniz için bir istisnanın nasıl oluşturulacağına dair bir örnek üzerinden yürüyeceğiz.




İstisna Nedir?

Mantıksal hata olarak da adlandırılan bir istisna , program çalışma zamanı sırasında oluşan bir hatadır.

Python'da iki tür hata vardır: sözdizimi hataları ve çalışma zamanı hataları. Bir program çalıştırılmadan önce sözdizimi hataları ortaya çıkar. Programınız bir sözdizimi hatasıyla karşılaşırsa, programınız çalışamaz. Bunun nedeni Python'un sözdizimi hataları içeren kodu yorumlayamamasıdır.

Python bir programı çalıştırırken istisna olarak da adlandırılan çalışma zamanı hatalarıyla karşılaşılır. Bir programın 30. satırında bir istisna oluşturulabilir. 30. satırda bir istisna ortaya çıkarsa, 30 satırlık kod çalışır ve program durur.

İşte bir istisna örneği:

İzleme (en son çağrı son): Dosya "main.py", satır 6,  s_names.append(n) AttributeError: 'str' nesnesinin 'append' özniteliği yok

Bu istisna bize Python'un kodumuzun geri kalanını çalıştıramayacağını söylüyor. Bir istisna ile karşılaşırsanız, mesajı dikkatlice okumalısınız. Hata mesajı, bir hatayı çözmek için bilmeniz gerekenlerin tümünü olmasa da çoğunu size söyleyecektir.

Hata mesajımızdaki son cümleyi inceleyelim:
< /p>

Katılımcıların %81'i, bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleşin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan az zaman harcadı.

AttributeError: ‘str’ nesnenin ‘append’

Bu durumda, hatamızın bir AttributeError olduğunu biliyoruz. Bu, var olmayan bir özniteliğe başvurmaya çalıştığımız anlamına gelir. Hata mesajımız, izin verilmeyen bir dize nesnesi üzerinde append() kullanmaya çalıştığımızı söylüyor.

Çünkü dize nesneleri append()'u desteklemiyor. yönteminde, sonraki iyi bir adım, dizeler için append() eşdeğerini aramaktır. Bu birleştirme. Artık programlama sorunumuz için uygulayabileceğimiz potansiyel bir çözüme sahibiz.





Nerede Bir İstisnayla Karşılaşabilirim?

Programcıların kodlarındaki hataları yakalamalarına yardımcı olmak için Python'da bir dizi yerleşik istisna vardır. Bu istisnalar tanımlamanıza yardımcı olabilir Onları düzeltebilmeniz için kodunuzdaki bir sorunun nedeni. Aşağıda, karşılaşabileceğiniz en yaygın istisnalardan bazıları verilmiştir:

  • TypeError: türü bu işlevi desteklemeyen bir nesneye işlev. (örneğin TypeError: yalnızca yinelenebilir bir öğeye katılabilir) li>
  • SyntaxError: Sözdiziminizde bir sorun olduğunu size bildirmek için bir program yürütülmeden önce ortaya çıkar (örn. mevcut değil. (örn. KeyError: “usb_ports”)
  • İçe Aktar Hata: Var olmayan bir paketi veya var olmayan bir paketten bir işlevi içe aktarmaya çalıştığınızda oluşur.

Biz, sizin belirttiğiniz birçok istisnadan yalnızca birkaçını listeledik. Python dilinde karşılaşılabilir.




Bir İstisna Nasıl Artırılır

Kodunuzda kendi özel istisnalarınızı tanımlayabilirsiniz. Python tarafından sağlanan yerleşik istisnalar programınızın ihtiyaçlarını karşılamıyorsa bu yardımcı olabilir.

Bir oyun için parolayı doğrulayan bir program yazacağız. Başlamak için, kullanıcıdan bir parola girmesini isteyelim:

Kullanıcının parolasının geçerli olması için, 12 karakterden uzun olması gerekir. Kullanıcının parolası 12 karakter veya daha azsa, bir istisna oluşturmak isteriz.

Bunu yapmak için bir if ifadesi. Aşağıdaki if ifadesi, bir kullanıcının seçtiği parolanın 12 karakterden az olup olmadığını kontrol eder:

 if len(parola) > 12: print("Şifreniz geçerlidir.") else: upgrade Exception("Şifreniz doğru uzunlukta değil.")

len() yöntemi. Bir kullanıcı geçersiz bir şifre girerse, programımız “Şifreniz doğru uzunlukta değil.”


Çalışıp çalışmadığını görmek için kodumuzu deneyelim:

Bir parola girin: Bacon120 Geri İzleme (en son çağrı): Dosya "main.py", satır 6,  yükseltme İstisna("Parolanız doğru uzunlukta değil.") İstisna: Parolanız doğru uzunluk.

Girdiğimiz şifre 12 karakterin altındaydı. Geçersiz bir şifre girdiğimiz için kodumuz duruyor. Programımızı geçerli bir şifre ile çalıştırmayı deneyelim:

Bir parola girin: Bacon120Bacon120 Parolanız geçerli.

Programımız başarıyla yürütülüyor.




Bir İstisna Nasıl İşlenir?

Varsayılan olarak, istisnalar bir programın yürütülmesini durdurur.Bu yararlıdır, çünkü sizi çözümü bulmaya zorlar. o bir hata, bir istisna oluştuğunda programınızın çalışmasını durdurmak istemeyebileceğiniz bazı durumlar olabilir.

Örneğin, bir listedeki veri noktalarının geçerli olup olmadığını kontrol ediyorsanız, Her geçersiz veri noktası keşfedildiğinde bir istisna oluşturulmasını istemeyebilirsiniz.

Bir istisnayı işlemek için bir “try…except” kullanabilirsiniz. engellemek. Sözlükte bir öğe bulan bir program yazalım. Bu sözlük, bir sınıftaki öğrencilerin adlarının ve en son testlerindeki karşılık gelen notlarının listesini içerir.

Başlamak için, öğrenci ve not bilgilerini içeren bir sözlük tanımlayalım:

data = { "Lucy": 73, "Carlton": 59, "Adam": 73 }

Sonra, kullanıcıdan notunu almak istediği bir isim girmesini isteyelim. Bunu bir “deneme” blok, böylece kodumuzda daha sonra bir istisnayı halledebiliriz:

"Python.Engineering, hayatıma en çok ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. Mezun olduktan iki ay sonra, buldum hayattaki değerlerim ve hedeflerim ile uyumlu hayalimdeki iş!"

Venus, Rockbot'ta Yazılım Mühendisi

Bu kod yazdırılacak Adı, bir kullanıcının programa girdiği ile eşleşen öğrencinin notu. Ancak, bir kullanıcı geçersiz bir ad girerse, KeyError ile karşılaşılır.


Kodumuza bir istisna bloğu ekleyerek bunu halledeceğiz:

try: öğrenci = input("Notunu almak istediğiniz öğrencinin adını girin: ") print(data[öğrenci]) hariç: print("Bu öğrenci listede yok notları.")

Bir öğrenci bulunamazsa, hariç yan tümcesi yürütülür. Programımızı çalıştıralım:

Notunu almak istediğiniz öğrencinin adını girin: Lucy 73

Geçerli bir öğrenci adı girdiğimizde , programımız çalışıyor. Geçersiz bir öğrenci adı girersek programımızı deneyelim:

 Notunu tekrar almak istediğiniz öğrencinin adını giriniz ve: Kaitlin Bu öğrenci not listesinde yok.

Bir istisna oluştu ama programımız durmuyor. Bunun yerine, “hariç” blok yürütülür.

try…except bloğu hakkında daha fazla bilgi edinmek için Python try…except ile ilgili kılavuzumuzu okuyun .




Sonuç

İstisnalar, kodunuzda mantıksal bir hata olduğunu size bildirir. Bir istisna oluşturulduğunda, istisnanın ortaya çıktığı istisnanın türünü ve ayrıca bir hata mesajı görmelisiniz. İstisnanın nedenini bulmak için bu bilgiyi kullanabilirsiniz.

raise deyimini kullanarak kendi istisnalarınızı oluşturabilirsiniz. İstisnaları try…except kod bloğunu kullanarak halledebilirsiniz.

Artık bir Python istisnasını bir profesyonel gibi çözmek için ihtiyacınız olan araçlara sahipsiniz!





Python istisnası: StackOverflow Questions

Tutorials