Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Come programmatore, potresti incontrare situazioni in cui il tuo codice potrebbe incorrere in errori o eccezioni, quindi è fondamentale capire come gestire diversi tipi di errori nel tuo codice. La gestione degli errori è una parte cruciale del ciclo di codifica. Un modo comune per gestire gli errori in Python è usare la tecnica try-except.
La tecnica Python try-except consiste in un blocco try e un bloccoexcept. Il blocco try contiene il codice che potrebbe generare un errore o un'eccezione e il bloccoexcept contiene il codice per gestire tali errori o eccezioni.
Quando il codice viene eseguito senza problemi all'interno del blocco try, il bloccoexcept viene ignorato. Tuttavia, se si verifica un errore o un'eccezione all'interno del blocco try, il codice che hai scritto nel bloccoexcept verrà eseguito per risolvere il problema.
In questo articolo discuteremo del blocco try-expect di Python , dei diversi tipi di errori ed eccezioni che potresti incontrare durante la scrittura del codice e di come puoi gestirli con le istruzioni try-except.
Entriamo in esso!
Sommario
Quali sono i tipi di errori in Python?
In Python, gli errori possono essere approssimativamente classificati in due tipi principali:
1. Errori di sintassi : sono anche noti come errori di analisi causati da una grammatica errata nel codice. Gli errori di sintassi vengono rilevati dall'interprete Python e interrompono l'esecuzione del programma.
Di seguito è riportato un esempio di errore di sintassi in Python:
print("Hello, world!"
In questo esempio manca la parentesi di chiusura, quindi Python non comprende questa istruzione e quindi si tratta di un errore di sintassi.
Eccezioni : le eccezioni si verificano quando qualcosa va storto durante l'esecuzione di un programma, anche se il codice è sintatticamente corretto. Questi possono includere errori logici o errori di runtime come input non validi o divisione per zero.
La seguente funzione è un esempio di eccezione in Python:
print(5 / 0)
Questa riga di codice causerà un'eccezione ZeroDivisionError, che si verifica quando si tenta di dividere un numero per zero.
Nell'immagine sopra, puoi vedere che si è verificata un'eccezione quando abbiamo diviso 5 per 0.
Ora che hai una comprensione di quali eccezioni esistono in Python, vedremo come possiamo gestire le eccezioni con un'istruzione Try-Except in Python. Diamo un'occhiata alla sintassi dei blocchi Try ed Except in Python nella prossima sezione.
Qual è la sintassi di Try e Except Block?
La sintassi di una funzione definisce come dovresti usare quella funzione nel tuo codice, inclusi quali argomenti accetta e cosa restituisce.
Abbiamo elencato la sintassi della clausola try e dei blocchiexcept, insieme alla clausola else e infine ai blocchi di seguito.
1. Sintassi dell'istruzione Try
L' istruzione try consente di verificare la presenza di errori in un blocco di codice. Quando scrivi codice all'interno del blocco try , Python lo eseguirà come parte normale del tuo programma.
Per utilizzare un'istruzione try , racchiudi semplicemente il tuo codice all'interno del blocco try :
try: # Your code here
2. Sintassi della clausola Except
La clausolaexcept gestisce gli errori che potrebbero verificarsi durante l'esecuzione del blocco try . È possibile specificare il tipo di eccezione che si desidera rilevare o utilizzare un'istruzione di eccezione generale per gestire tutte le eccezioni.
La seguente sintassi mostra un tipo specifico di eccezione:
try: # Your code here except ValueError: # Handle ValueError exception
Per gestire le classi di eccezione in generale o più eccezioni, è possibile utilizzare la sintassi indicata di seguito:
try: # Your code here except Exception: # Handle any exception
3. Sintassi della Clausola Else/Blocco
La clausola else consente di eseguire il blocco di codice quando non ci sono errori nel blocco try .
Per utilizzare una clausola else , puoi posizionarla dopo il bloccoexcept come mostrato di seguito:
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors
4. Sintassi di Finalmente Blocco
Il blocco finally consente di eseguire il codice, indipendentemente dal risultato dei blocchi try eexcept . Questo può essere utile per le azioni che si desidera eseguire indipendentemente dal fatto che sia stata sollevata o meno un'eccezione.
Per utilizzare il blocco finally , puoi posizionarlo dopo il blocco 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
Per vedere la sintassi di cui sopra in azione, esamineremo un esempio di gestione delle eccezioni con il blocco try-except in Python.
Gestione delle eccezioni con Try-Except in Python
Quando si verifica un errore, Python normalmente si ferma e genera un messaggio di errore. È possibile gestire più eccezioni utilizzando un blocco try eexcept .
Nell'esempio seguente, gestiamo l'errore di divisione per zero generato in precedenza quando abbiamo diviso 5 per 0.
try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")
In questo codice si verifica un'eccezione ma il programma continuerà a funzionare e stamperà "Non puoi dividere per zero!" invece di fermarsi con un errore.
L'uso dei blocchi try eexcept consente di controllare il flusso del programma. Gestendo eccezioni specifiche , puoi fornire un feedback utile all'utente e mantenere il tuo programma in esecuzione quando viene visualizzato un errore.
Nell'esempio sopra, puoi vedere che abbiamo usato l'eccezione incorporata ZeroDivisionError per gestire il caso. Analogamente a questo, esistono anche altri tipi di eccezioni integrate.
La familiarità con questi tipi di eccezione ti aiuterà a decidere quale aspettativa utilizzare quando incontri un errore nel tuo codice Python, quindi diamo un'occhiata ad alcune eccezioni nella prossima sezione.
Quali sono i tipi di eccezioni predefinite?
In Python, le eccezioni sono istanze di una classe derivata dalla classe BaseException. Quando vengono rilevati errori, Python solleva un'eccezione. Ci sono diverse eccezioni integrate che potresti incontrare mentre scrivi programmi in Python.
Diamo un'occhiata ad alcuni dei più comuni:
ZeroDivisionError: si verifica quando si tenta di dividere un numero per zero.
NameError: viene generato quando si tenta di utilizzare una variabile o una funzione che non è stata definita.
ValueError : si verifica quando si passa un argomento del tipo corretto ma con un valore non valido.
TypeError : questo si verifica quando si passa un argomento del tipo di dati errato.
FileNotFoundError : si verifica quando si tenta di aprire o accedere a un file che non esiste.
ImportError : generato quando si tenta di importare un modulo o un pacchetto che non esiste o non può essere trovato.
Altre eccezioni rilevanti includono:
OverflowError: questo errore viene generato quando un risultato di calcolo è troppo grande per essere rappresentato.
FloatingPointError: questo viene generato quando un'operazione in virgola mobile fallisce.
IndexError: si verifica quando si tenta di accedere a un indice che è fuori dall'intervallo di una sequenza (ad esempio, elenco o tupla).
KeyError: si verifica quando si tenta di accedere a una chiave che non esiste in un dizionario.
EOFError: generato quando Python incontra la fine del file (EOF) durante la lettura dell'input, solitamente da una chiamata read().
ArithmeticError: una superclasse per le eccezioni aritmetiche, come ZeroDivisionError, OverflowError e FloatingPointError.
A volte, potrebbe essere necessario utilizzare eccezioni definite dall'utente come l'istruzione pass in un blocco in cui è prevista un'eccezione. Questo dovrebbe essere fatto con giudizio in quanto potrebbe sopprimere altre eccezioni.
Ti abbiamo fornito l'elenco precedente di errori di eccezioni comuni in modo che tu possa usarlo come guida per la gestione di possibili eccezioni durante la scrittura dei tuoi programmi Python .
Si noti che la maggior parte delle eccezioni può essere rilevata e gestita, ma è necessario prestare attenzione a gestire la chiamata più recente per evitare la gestione nidificata di altri casi di eccezione.
Nella prossima sezione, esamineremo alcuni casi d'uso del blocco try-except in Python. Entriamo in esso!
5 casi d'uso del blocco Try-Except
Il blocco Try Except è una delle tecniche ampiamente utilizzate per la gestione degli errori. Di seguito sono riportati alcuni dei casi d'uso del blocco Try Except in Python:
1. Gestione dei file con Try Except
Quando si lavora con i file, c'è sempre la possibilità che il file non esista o non si trovi nella posizione da cui lo script sta tentando di accedervi.
Il codice seguente solleverà un'eccezione quando proviamo ad aprire un file che non è presente.
try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')
In questo codice, stiamo cercando di aprire e leggere un file chiamato 'file.txt'. Se 'file.txt' non esiste, si verifica un'eccezione ma invece di un errore che interrompe il programma, verrà stampato 'Spiacente, questo file non esiste.'
2. Gestione dell'input dell'utente con Try Except
L'input dell'utente è un'altra area in cui spesso si verificano eccezioni. Gli utenti possono fornire dati in un formato imprevisto o fornire un input che non rientra nell'intervallo accettabile.
L'esempio seguente mostra come gestire l'input dell'utente con un blocco try-except:
try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")
In questo codice chiediamo all'utente di inserire la propria età. Se immettono qualcosa che non può essere convertito in un numero intero (come una parola o una lettera), si verifica un'eccezione ma invece del crash del programma, verrà stampato "Non è un'età valida". Per favore inserisci un numero.'
3. Accesso a chiavi di dizionario inesistenti
In Python, un dizionario è una raccolta mutabile e non ordinata di coppie chiave-valore , in cui ogni chiave deve essere univoca.
Quando provi ad accedere a una chiave che non esiste in un dizionario, Python solleva un KeyError. È possibile utilizzare try eexcept per gestire questa eccezione, come mostrato nell'esempio seguente:
dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")
In questo codice, stai provando a stampare il valore di 'key3' da un dizionario. Se 'key3' non esiste nel dizionario, si verifica un'eccezione ma invece di interrompere il programma con un errore, stamperà 'La chiave non esiste nel dizionario.'
4. Conversione di una stringa in un numero intero
Potrebbero esserci momenti in cui si desidera convertire una stringa in un numero intero. Ma se la stringa non rappresenta un numero intero valido, Python solleverà un ValueError.
Puoi usare try eexcept per gestire questo caso:
try: num = int("hello") except ValueError: print("That string can't be converted to integer.")
In questo caso, 'hello' non può essere convertito in un intero, quindi Python solleva un ValueError e stampa 'Quella stringa non può essere convertita in un intero.'
5. Importazione di un modulo
Quando si importa un modulo in Python , è possibile che il modulo non esista o non sia installato. Python solleverà un ImportError in questi casi.
Per gestire questo caso, puoi utilizzare il seguente codice:
try: import some_module except ImportError: print("The module 'some_module' is not installed.")
Nell'esempio sopra, se 'some_module' non è installato o non esiste, Python solleverà un ImportError e stamperà 'Il modulo 'some_module' non è installato.'
Per ulteriori informazioni sulla scrittura di codice in Python e sulla gestione delle aspettative, guarda il seguente video:
Successivamente, esamineremo alcune delle migliori pratiche per la gestione delle eccezioni. Immergiamoci dentro!
Best practice per la gestione delle eccezioni
In questa sezione, abbiamo elencato alcune delle migliori pratiche per la gestione delle eccezioni con il blocco Try Except. Alcune best practice per la gestione delle eccezioni sono:
1. Sii specifico con eccezioni
Quando si scrive il codice, è fondamentale individuare le eccezioni nel modo più specifico possibile. Ciò significa che invece di catturare solo un nome di eccezione generale, dovresti catturare il tipo effettivo di eccezione che ti aspetti.
In questo modo, saprai esattamente che tipo di errore si è verificato e sarai in grado di gestirlo in modo appropriato.
2. Non sopprimere le eccezioni
Quando hai a che fare con le eccezioni, potresti essere tentato di catturarlo semplicemente con un gestore di eccezioni e non farci nulla. Questa è generalmente una cattiva idea.
Se si verifica un errore, di solito è perché c'è qualcosa che deve essere corretto. Se si sopprime la classe di eccezione, l'errore potrebbe passare inosservato e causare problemi in seguito.
3. Utilizzare Finalmente per il codice di pulizia
A volte, hai del codice che devi eseguire indipendentemente dal fatto che si sia verificato o meno un errore. Questo potrebbe essere qualcosa come chiudere un file o rilasciare alcune risorse.
In questi casi, puoi usare un blocco finally . Il codice all'interno del blocco finally verrà eseguito a prescindere da cosa, quindi è un ottimo posto per inserire il codice di pulizia.
try: # Some code here finally: # This code will run no matter what
4. Sollevare eccezioni quando necessario
Potrebbero esserci situazioni in cui è necessario far sapere all'utente del codice che qualcosa è andato storto.
In questi casi, puoi sollevare un'eccezione. Ciò interromperà immediatamente l'esecuzione del codice e informerà l'utente che si è verificato un errore.
if not valid_input: raise ValueError("Your input was not valid!")
La comprensione e l'implementazione di queste best practice renderà il tuo codice più robusto, più facile da eseguire il debug e preverrà arresti anomali imprevisti.
Pensieri finali
Per concludere, sapere come usare try eexcept in Python aiuta davvero quando scrivi il tuo codice e incontri eccezioni al suo interno.
Consentono al tuo programma di gestire gli errori senza intoppi, invece di interrompersi improvvisamente. È un modo per assicurarti che il tuo codice possa gestire le sorprese e andare avanti.
Inoltre, quando usi try eexcept, mostra che stai davvero pensando a cosa potrebbe andare storto e ti stai preparando. Quindi prenditi il tempo per imparare questi strumenti: sono super utili quando scrivi codice in Python!
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.
Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere