Ce este Sinele în Python: Exemple din lumea reală
Ce este Sinele în Python: Exemple din lumea reală
În calitate de programator, este posibil să întâmpinați situații în care codul dvs. s-ar putea întâlni cu erori sau excepții, deci este esențial să înțelegeți cum să gestionați diferitele tipuri de erori din cod. Gestionarea erorilor este o parte crucială a ciclului de codificare. O modalitate obișnuită de a gestiona erorile în Python este utilizarea tehnicii try-except.
Tehnica Python try-except constă dintr - un bloc try și un bloc except. Blocul try conține codul care ar putea genera o eroare sau o excepție, iar blocul except deține codul pentru a gestiona acele erori sau excepții.
Când codul rulează fără nicio problemă în blocul try, blocul except este ocolit. Cu toate acestea, dacă apare o eroare sau o excepție în blocul try, codul pe care l-ați scris în blocul except se va executa pentru a rezolva problema.
În acest articol, vom discuta blocul try-expect al lui Python , diferitele tipuri de erori și excepții pe care le puteți întâlni când scrieți cod și cum le puteți gestiona cu instrucțiunile try-except.
Să intrăm în ea!
Cuprins
Care sunt tipurile de erori în Python?
În Python, erorile pot fi clasificate aproximativ în două tipuri principale:
1. Erori de sintaxă : Acestea sunt cunoscute și ca erori de analiză cauzate de gramatica incorectă din cod. Erorile de sintaxă sunt detectate de interpretul Python și opresc execuția programului dumneavoastră.
Următorul este un exemplu de eroare de sintaxă în Python:
print("Hello, world!"
În acest exemplu, paranteza de închidere lipsește, așa că Python nu înțelege această instrucțiune și, prin urmare, este o eroare de sintaxă.
Excepții : Excepțiile apar atunci când ceva nu merge bine în timpul execuției unui program, chiar dacă codul este corect din punct de vedere sintactic. Acestea pot include erori logice sau erori de rulare, cum ar fi intrări nevalide sau împărțirea la zero.
Următoarea funcție este un exemplu de excepție în Python:
print(5 / 0)
Această linie de cod va provoca o excepție ZeroDivisionError, care se întâmplă atunci când încercați să împărțiți un număr la zero.
În imaginea de mai sus, puteți vedea că a apărut o excepție când am împărțit 5 la 0.
Acum că înțelegeți ce excepții există în Python, vom vedea cum putem gestiona excepțiile cu o instrucțiune Try-Except în Python. Să aruncăm o privire la sintaxa blocurilor Try and Except din Python în secțiunea următoare.
Care este sintaxa blocului Try and Except?
Sintaxa unei funcții definește modul în care ar trebui să utilizați acea funcție în codul dvs., inclusiv ce argumente ia și ce returnează.
Am enumerat sintaxa clauzei try și a blocurilor except, împreună cu clauza else și, în final , blocurile de mai jos.
1. Sintaxa instrucțiunii Try
Declarația try vă permite să testați un bloc de cod pentru erori. Când scrieți cod în blocul try , Python îl va executa ca o parte normală a programului dumneavoastră.
Pentru a utiliza o instrucțiune try , pur și simplu includeți codul în blocul try :
try: # Your code here
2. Sintaxa clauzei cu excepția
Clauza except tratează erorile care pot apărea în timpul execuției blocului try . Puteți specifica tipul de excepție pe care doriți să o capturați sau puteți utiliza o instrucțiune general except pentru a gestiona toate excepțiile.
Următoarea sintaxă arată un anumit tip de excepție:
try: # Your code here except ValueError: # Handle ValueError exception
Pentru a gestiona clasele de excepții în general sau excepțiile multiple, puteți utiliza sintaxa de mai jos:
try: # Your code here except Exception: # Handle any exception
3. Sintaxa clauzei/blocului Else
Clauza else vă permite să executați blocul de cod atunci când nu există erori în blocul try .
Pentru a utiliza o clauză else , o puteți plasa după blocul except , așa cum se arată mai jos:
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors
4. Sintaxa lui Finally Block
Blocul final vă permite să executați cod, indiferent de rezultatul blocurilor try și except . Acest lucru poate fi util pentru acțiunile pe care doriți să le efectuați, indiferent dacă a fost ridicată sau nu o excepție.
Pentru a utiliza blocul final , îl puteți plasa după blocul else :
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks
Pentru a vedea sintaxa de mai sus în acțiune, ne vom uita la un exemplu de gestionare a excepțiilor cu blocul try-except în Python.
Gestionarea excepțiilor cu Try-Except în Python
Când apare o eroare, Python se va opri în mod normal și va genera un mesaj de eroare. Puteți gestiona mai multe excepții folosind un bloc try and except .
În exemplul de mai jos, gestionăm eroarea de împărțire la zero generată anterior când am împărțit 5 la 0.
try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")
În acest cod, apare o excepție, dar programul va continua să ruleze și va tipări „Nu poți împărți la zero!” în loc să se oprească cu o eroare.
Folosirea blocurilor try and except vă permite să controlați fluxul programului dvs. Gestionând anumite excepții , puteți oferi feedback util utilizatorului și puteți menține programul să ruleze atunci când apare o eroare.
În exemplul de mai sus, puteți vedea că am folosit excepția încorporată ZeroDivisionError pentru a gestiona cazul. Similar cu aceasta, există și alte tipuri de excepții încorporate.
Familiarizarea cu aceste tipuri de excepții vă va ajuta să decideți ce așteptare să utilizați atunci când întâmpinați o eroare în codul dvs. Python, așa că să aruncăm o privire la unele excepții în secțiunea următoare.
Care sunt tipurile de excepții încorporate?
În Python, excepțiile sunt instanțe ale unei clase derivate din clasa BaseException. Când sunt detectate erori, Python ridică o excepție. Există mai multe excepții încorporate pe care probabil să le întâlniți în timp ce scrieți programe în Python.
Să aruncăm o privire la unele dintre cele mai comune:
ZeroDivisionError: Aceasta apare atunci când încercați să împărțiți un număr la zero.
NameError: Aceasta apare atunci când încercați să utilizați o variabilă sau o funcție care nu a fost definită.
ValueError : Se întâmplă când treceți un argument de tipul corect, dar cu o valoare nevalidă.
TypeError : Aceasta apare atunci când treceți un argument de tipul de date greșit.
FileNotFoundError : Se întâmplă când încercați să deschideți sau să accesați un fișier care nu există.
ImportError : Apare când încercați să importați un modul sau un pachet care nu există sau nu poate fi găsit.
Alte excepții relevante includ:
OverflowError: Această eroare apare atunci când rezultatul unui calcul este prea mare pentru a fi reprezentat.
FloatingPointError: Aceasta este ridicată atunci când o operație în virgulă mobilă eșuează.
IndexError: Se întâmplă când încercați să accesați un index care se află în afara intervalului unei secvențe (de exemplu, listă sau tuplu).
KeyError: Apare atunci când încercați să accesați o cheie care nu există într-un dicționar.
EOFError: Aparită atunci când Python întâlnește End Of File (EOF) în timp ce citește intrarea, de obicei dintr-un apel read().
ArithmeticError: o superclasă pentru excepții aritmetice, cum ar fi ZeroDivisionError, OverflowError și FloatingPointError.
Uneori, poate fi necesar să folosiți excepții definite de utilizator, cum ar fi declarația de trecere , într-un bloc în care este așteptată o excepție. Acest lucru ar trebui să fie făcut cu prudență, deoarece ar putea suprima alte excepții.
V-am furnizat lista de mai sus cu erori comune de excepții, astfel încât să o puteți folosi ca ghid pentru gestionarea posibilelor excepții atunci când scrieți programele dvs. Python.
Vă rugăm să rețineți că majoritatea excepțiilor pot fi capturate și gestionate, dar trebuie avut grijă să gestionați cel mai recent apel pentru a evita gestionarea imbricată a altor cazuri de excepție.
În secțiunea următoare, vom analiza câteva cazuri de utilizare ale blocului try-except în Python. Să intrăm în ea!
5 cazuri de utilizare a blocului Try-Except
Blocul Try Except este una dintre tehnicile utilizate pe scară largă pentru gestionarea erorilor. Următoarele sunt câteva dintre cazurile de utilizare ale blocului Try Except din Python:
1. Gestionarea fișierelor cu Try Except
Când lucrați cu fișiere, există întotdeauna șansa ca fișierul să nu existe sau să nu se afle în locația din care încearcă să îl acceseze scriptul.
Următorul cod va genera o excepție atunci când încercăm să deschidem un fișier care nu este prezent.
try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')
În acest cod, încercăm să deschidem și să citim un fișier numit „fișier.txt”. Dacă „fișier.txt” nu există, apare o excepție, dar în loc de o eroare la oprirea programului, se va afișa „Ne pare rău, acest fișier nu există”.
2. Gestionarea intrărilor utilizatorului cu Try Except
Intrarea utilizatorului este un alt domeniu în care apar adesea excepții. Utilizatorii pot furniza date într-un format neașteptat sau pot oferi o intrare care se află în afara intervalului acceptabil.
Următorul exemplu arată cum să gestionați intrarea utilizatorului cu un bloc try-except:
try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")
În acest cod, îi cerem utilizatorului să-și introducă vârsta. Dacă introduc ceva care nu poate fi convertit într-un număr întreg (cum ar fi un cuvânt sau o literă), apare o excepție, dar în loc să se blocheze programul, va afișa „Aceasta nu este o vârstă validă. Vă rugăm să introduceți un număr.'
3. Accesarea cheilor de dicționar inexistente
În Python, un dicționar este o colecție mutabilă, neordonată de perechi cheie-valoare , în care fiecare cheie trebuie să fie unică.
Când încercați să accesați o cheie care nu există într-un dicționar, Python generează o cheie KeyError. Puteți folosi try and except pentru a gestiona această excepție, așa cum se arată în exemplul de mai jos:
dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")
În acest cod, încercați să imprimați valoarea pentru „key3” dintr-un dicționar. Dacă „key3” nu există în dicționar, apare o excepție, dar în loc ca programul să se oprească cu o eroare, va afișa „Cheia nu există în dicționar”.
4. Convertirea unui șir într-un număr întreg
Pot exista momente când doriți să convertiți un șir într-un număr întreg. Dar dacă șirul nu reprezintă un număr întreg valid, Python va genera o valoare ValueError.
Puteți folosi try and except pentru a gestiona acest caz:
try: num = int("hello") except ValueError: print("That string can't be converted to integer.")
În acest caz, „hello” nu poate fi convertit într-un număr întreg, așa că Python generează o valoare ValueError și afișează „Acest șir nu poate fi convertit în număr întreg”.
5. Importarea unui modul
Când importați un modul în Python , este posibil ca modulul să nu existe sau să nu fie instalat. Python va genera o importanță Eroare în astfel de cazuri.
Pentru a gestiona acest caz, puteți utiliza următorul cod:
try: import some_module except ImportError: print("The module 'some_module' is not installed.")
În exemplul de mai sus, dacă „some_module” nu este instalat sau nu există, Python va genera ImportError și va afișa „Modulul „some_module” nu este instalat.
Pentru a afla mai multe despre scrierea codului în Python și gestionarea așteptărilor, consultați următorul videoclip:
În continuare, ne vom uita la unele dintre cele mai bune practici pentru gestionarea excepțiilor. Să ne aruncăm în ea!
Cele mai bune practici de gestionare a excepțiilor
În această secțiune, am enumerat câteva dintre cele mai bune practici pentru gestionarea excepțiilor cu blocul Try Except. Câteva bune practici pentru gestionarea excepțiilor sunt:
1. Fii specific cu excepții
Când vă scrieți codul, identificarea excepțiilor cât mai precis posibil este crucială. Aceasta înseamnă că, în loc să prindeți doar un nume general de excepție, ar trebui să prindeți tipul real de excepție la care vă așteptați.
În acest fel, veți ști exact ce fel de eroare a apărut și o veți putea gestiona în mod corespunzător.
2. Nu suprimați excepțiile
Când ai de-a face cu excepții, s-ar putea să fii tentat să o prinzi doar cu un handler de excepții și să nu faci nimic cu el. Aceasta este în general o idee proastă.
Dacă apare o eroare, de obicei este pentru că există ceva care trebuie remediat. Dacă suprimați clasa de excepție, eroarea poate trece neobservată și poate cauza probleme mai târziu.
3. Utilizați Finally pentru codul de curățare
Uneori, aveți un cod pe care trebuie să îl rulați, indiferent dacă s-a întâmplat sau nu o eroare. Acest lucru ar putea fi ceva de genul închiderea unui fișier sau eliberarea unor resurse.
În aceste cazuri, puteți utiliza un bloc final . Codul din blocul finally va rula indiferent de ce, așa că este un loc grozav pentru a pune codul de curățare.
try: # Some code here finally: # This code will run no matter what
4. Ridicați excepții atunci când este necesar
Pot exista situații în care trebuie să anunțați utilizatorul codului dvs. că ceva a mers prost.
În aceste cazuri, puteți ridica o excepție. Acest lucru va opri imediat execuția codului dvs. și va informa utilizatorul că a apărut o eroare.
if not valid_input: raise ValueError("Your input was not valid!")
Înțelegerea și implementarea acestor bune practici va face codul dvs. mai robust, mai ușor de depanat și va preveni blocările neașteptate.
Gânduri finale
Pentru a finaliza, a ști cum să folosești try and except în Python te ajută cu adevărat atunci când scrii codul și întâlnești excepții în el.
Îți lasă programul să rezolve erorile fără probleme, în loc să se oprească brusc. Este o modalitate de a vă asigura că codul dumneavoastră poate face față surprizelor și poate continua.
În plus, când folosești try and except, arată că te gândești cu adevărat la ce ar putea merge prost și te pregătești pentru asta. Așa că fă-ți timp să înveți aceste instrumente - sunt super utile atunci când scrii cod în Python!
Ce este Sinele în Python: Exemple din lumea reală
Veți învăța cum să salvați și să încărcați obiecte dintr-un fișier .rds în R. Acest blog va trata, de asemenea, cum să importați obiecte din R în LuckyTemplates.
În acest tutorial despre limbajul de codare DAX, aflați cum să utilizați funcția GENERATE și cum să schimbați în mod dinamic titlul unei măsuri.
Acest tutorial va acoperi cum să utilizați tehnica Multi Threaded Dynamic Visuals pentru a crea informații din vizualizările dinamice de date din rapoartele dvs.
În acest articol, voi trece prin contextul filtrului. Contextul de filtrare este unul dintre subiectele majore despre care orice utilizator LuckyTemplates ar trebui să învețe inițial.
Vreau să arăt cum serviciul online LuckyTemplates Apps poate ajuta la gestionarea diferitelor rapoarte și informații generate din diverse surse.
Aflați cum să vă calculați modificările marjei de profit folosind tehnici precum măsurarea ramificării și combinarea formulelor DAX în LuckyTemplates.
Acest tutorial va discuta despre ideile de materializare a cache-urilor de date și despre modul în care acestea afectează performanța DAX-ului în furnizarea de rezultate.
Dacă încă utilizați Excel până acum, atunci acesta este cel mai bun moment pentru a începe să utilizați LuckyTemplates pentru nevoile dvs. de raportare a afacerii.
Ce este LuckyTemplates Gateway? Tot ce trebuie să știți