Esercizi Eccezioni Python
Esercizi per praticare la gestione delle eccezioni con try
, except
e finally
in Python, ideali per capire come gestire gli errori in vari scenari di programmazione.
Esercizio 1
Scrivere un programma che tenta di dividere 10 per un numero inserito dall'utente, gestendo l'errore se l'utente inserisce 0.
try: numero = int(input("Inserisci un numero: ")) risultato = 10 / numero print("Il risultato è:", risultato)except ZeroDivisionError: print("Errore: Non è possibile dividere per zero.")
Esercizio 2
Scrivere un programma che converte una stringa in un numero intero e gestisce l'eccezione se la stringa non è un numero valido.
try: numero = int(input("Inserisci un numero: ")) print("Il numero inserito è:", numero)except ValueError: print("Errore: Inserito un valore non numerico.")
Esercizio 3
Scrivere un programma che accede a un indice di una lista e gestisce l'eccezione se l'indice è fuori dai limiti della lista.
lista = [1, 2, 3]try: indice = int(input("Inserisci l'indice: ")) print(lista[indice])except IndexError: print("Errore: Indice fuori dai limiti.")
Esercizio 4
Scrivere un programma che apre un file per la lettura e gestisce l'eccezione se il file non esiste.
try: with open("file_non_esistente.txt", "r") as file: print(file.read())except FileNotFoundError: print("Errore: File non trovato.")
Esercizio 5
Scrivere un programma che tenta di eseguire un'operazione non supportata, come la divisione di due stringhe, e gestisce l'eccezione risultante.
try: '10' / '2'except TypeError: print("Errore: Operazione non supportata tra stringhe.")
Esercizio 6
Scrivere un programma che tenta di convertire una stringa in un tipo di dato non appropriato, gestendo l'eccezione.
try: float("testo_non_numerico")except ValueError: print("Errore: Conversione non valida.")
Esercizio 7
Scrivere un programma che chiede all'utente di inserire un valore e tenta di usarlo come indice per una lista vuota, gestendo l'errore.
try: lista_vuota = [] indice = int(input("Inserisci un indice: ")) print(lista_vuota[indice])except IndexError: print("Errore: Indice non valido per una lista vuota.")
Esercizio 8
Scrivere un programma che tenta di chiamare un metodo inesistente su un oggetto, gestendo l'eccezione risultante.
try: oggetto = {} oggetto.metodo_inesistente()except AttributeError: print("Errore: Metodo non esistente.")
Esercizio 9
Scrivere un programma che prova a leggere un file e chiude il file indipendentemente dal risultato dell'operazione, usando `finally`.
try: file = open("esempio.txt", "r") contenuto = file.read() print(contenuto)except FileNotFoundError: print("Errore: File non trovato.")finally: file.close() print("File chiuso.")
Esercizio 10
Scrivere un programma che chiede all'utente di inserire un numero e divide 100 per quel numero, stampando un messaggio in un blocco `finally`.
try: numero = int(input("Inserisci un numero: ")) risultato = 100 / numero print("Il risultato della divisione è:", risultato)except ZeroDivisionError: print("Errore: Divisione per zero.")finally: print("Operazione di divisione tentata.")
Esercizio 11
Scrivere un programma che gestisce più tipi di eccezioni in un solo blocco `except` e utilizza un blocco `finally` per mostrare un messaggio di fine operazione.
try: valore = int(input("Inserisci un valore: ")) print(10 / valore)except (ValueError, ZeroDivisionError) as e: print("Errore:", e)finally: print("Tentativo di calcolo completato.")
Esercizio 12
Scrivere un programma che prova ad aggiungere un elemento a un tuple, mostrando un messaggio nel blocco `finally`.
try: tupla = (1, 2, 3) tupla[0] = 4except TypeError: print("Errore: Impossibile modificare una tupla.")finally: print("Modifica di tupla tentata.")
Esercizio 13
Scrivere un programma che chiede all'utente di inserire un numero, convertendolo in intero, e usa `finally` per confermare l'input ricevuto.
try: numero = int(input("Inserisci un numero: ")) print("Numero inserito:", numero)except ValueError: print("Errore: Devi inserire un valore numerico.")finally: print("Controllo dell'input completato.")
Esercizio 14
Scrivere un programma che prova a calcolare l'inverso di un numero dato dall'utente e stampa un messaggio in `finally`.
try: numero = float(input("Inserisci un numero: ")) inverso = 1 / numero print("L'inverso del numero è:", inverso)except ZeroDivisionError: print("Errore: Non è possibile calcolare l'inverso di zero.")finally: print("Tentativo di calcolo dell'inverso effettuato.")
Esercizio 15
Scrivere un programma che tenta di aprire
un file e leggere il suo contenuto, con un messaggio finale che indica se il file era aperto o meno.
try: file = open("file_testo.txt", "r") print(file.read())except FileNotFoundError: print("Errore: File non trovato.")finally: if not file.closed: file.close() print("File chiuso correttamente.") else: print("File già chiuso.")