CORSO INTRODUTTIVO PYTHON – 06

  • Pubblicato
  • Aggiornato
  • 5 minuti di lettura

Introduzione al Progetto

In questa lezione approfondiremo due aspetti fondamentali della programmazione in Python:

  • La gestione delle eccezioni, necessaria per gestire errori in modo controllato e prevenire arresti improvvisi del programma.
  • L’I/O su file, che permette di leggere e scrivere dati da e verso file, una funzionalità essenziale per lavorare con dati esterni.

Sommario

Soluzioni esercizi lezione 05

				
					#esercizio 1
def saluta(nome):
    print(f"Ciao, {nome}!")
saluta("Alice")  # Output: Ciao, Alice!

				
			
				
					#esercizio 2
def area_rettangolo(base, altezza):
    return base * altezza

print(area_rettangolo(5, 10))  # Output: 50

				
			
				
					#esercizio 3
def massimo(a, b, c):
    return max(a, b, c)

print(massimo(10, 20, 15))  # Output: 20

				
			
				
					#esercizio 4
cubo = lambda x: x ** 3
print(cubo(3))  # Output: 27

				
			

Obiettivi della lezione 06

  • Comprendere cos’è un’eccezione e come gestirla con i costrutti try, except, else e finally.
  • Apprendere come leggere, scrivere e manipolare file in Python.
  • Applicare i concetti a scenari pratici.

La Gestione delle Eccezioni

Quando un programma incontra un errore (ad esempio, una divisione per zero o un file non trovato), Python genera un’eccezione. Se non gestita, l’eccezione causa l’arresto del programma. Grazie alla gestione delle eccezioni, possiamo catturare e gestire gli errori senza interrompere l’esecuzione.

Sintassi di base

				
					try:
    # Blocco di codice che potrebbe generare un'eccezione
    operazione = 10 / 0
except ZeroDivisionError:
    # Blocco eseguito se si verifica l'eccezione specificata
    print("Errore: divisione per zero!")

				
			

Gestione di eccezioni multiple

				
					try:
    numero = int(input("Inserisci un numero: "))
    risultato = 10 / numero
except ZeroDivisionError:
    print("Errore: Non puoi dividere per zero!")
except ValueError:
    print("Errore: Devi inserire un numero valido!")

				
			

Uso di else

				
					#Se non ci sono eccezioni
try:
    numero = int(input("Inserisci un numero: "))
    risultato = 10 / numero
except ZeroDivisionError:
    print("Errore: Non puoi dividere per zero!")
except ValueError:
    print("Errore: Devi inserire un numero valido!")
else:
    print("Il risultato è:", risultato)

				
			

Uso di finally

Il blocco finally viene eseguito in ogni caso, indipendentemente dal fatto che si verifichi un’eccezione o meno. È utile per liberare risorse

				
					try:
    file = open("testo.txt", "r")
    contenuto = file.read()
except FileNotFoundError:
    print("Errore: Il file non esiste!")
finally:
    file.close()  # Il file viene chiuso indipendentemente dall'esito
				
			

Creazione di eccezioni personalizzate

				
					def verifica_eta(eta):
    if eta < 18:
        raise ValueError("Devi avere almeno 18 anni!")
    else:
        print("Accesso consentito.")

try:
    verifica_eta(16)
except ValueError as e:
    print(e)  # Output: Devi avere almeno 18 anni!

				
			

Input e Output su File

Python fornisce strumenti potenti per leggere e scrivere file. Vediamo i concetti principali.

Apertura di un file

Per lavorare con un file, utilizza la funzione open(), che accetta due argomenti principali:

  • Il nome del file.
  • La modalità di apertura:
    • "r": Lettura (default).
    • "w": Scrittura (sovrascrive il file esistente o ne crea uno nuovo).
    • "a": Aggiunta (scrive alla fine del file).
    • "b": Modalità binaria (es. per immagini).
				
					file = open("testo.txt", "r")
contenuto = file.read()
print(contenuto)
file.close()
				
			

Lettura di un file

Ci sono diversi metodi per leggere il contenuto di un file:

  • Leggere tutto il contenuto:
				
					with open("testo.txt", "r") as file:
    contenuto = file.read()
    print(contenuto)
				
			
  • Leggere una riga alla volta:
				
					with open("testo.txt", "r") as file:
    for riga in file:
        print(riga.strip())  # Rimuove eventuali spazi vuoti o newline

				
			
  • Leggere un numero specifico di caratteri:
				
					with open("testo.txt", "r") as file:
    contenuto = file.read(10)  # Legge i primi 10 caratteri
    print(contenuto)

				
			

Scrittura su un file

Utilizza la modalità "w" o "a" per scrivere in un file:

				
					#Scrittura (Write)
with open("testo.txt", "w") as file:
    file.write("Ciao, mondo!\n")

#Aggiungere (Append)
with open("testo.txt", "a") as file:
    file.write("Aggiunta di una nuova riga.\n")

				
			

Gestione dei file con with

Il blocco with è il modo consigliato per gestire i file, perché chiude automaticamente il file dopo l’uso, anche in caso di eccezioni.

				
					with open("testo.txt", "r") as file:
    contenuto = file.read()
    print(contenuto)

				
			

Esercizi pratici

  • Esercizio 1: Gestione delle eccezioni

    Scrivi un programma che chieda all’utente di inserire due numeri e li divida, gestendo eventuali errori.

  • Esercizio 2: Scrittura e lettura di un file
    Crea un file, scrivi una lista di nomi e poi leggi il contenuto stampandolo a schermo.

  • Esercizio 3: Contare parole in un file
    Scrivi un programma che legga un file e conti quante parole contiene.

  • Esercizio 4: Creare un file di log
    Scrivi un programma che registri eventuali errori in un file di log.

Conclusioni e anticipazioni

In questa lezione abbiamo:

  • Appreso come gestire le eccezioni per prevenire errori nei programmi.
  • Imparato a leggere e scrivere file utilizzando i metodi principali.
  • Applicato questi concetti a scenari pratici.

Nella prossima lezione esploreremo la Programmazione Orientata agli Oggetti (OOP), un paradigma essenziale per scrivere codice scalabile e organizzato.

Homepage del Corso Introduttivo

Sei curioso di scoprire il mondo della programmazione?
Con il mio corso gratuito di Python potrai infatti scoprire gli aspetti del linguaggio.
Ogni lezione è spiegata in modo chiaro e pratico.
Inoltre, grazie a esercizi e materiali di supporto, potrai quindi mettere subito in pratica ciò che impari.

Il mio Portfolio