Strutture Fondamentali di Python
Approfondimenti dettagliati con esempi pratici per scrivere codice efficiente e strutturato
📚 Qui troverai approfondimenti dettagliati sulle strutture fondamentali del linguaggio, con esempi pratici e spiegazioni approfondite. Questa sezione è pensata per aiutarti a migliorare la tua comprensione di Python e scrivere codice più efficiente e strutturato.
Cicli in Python
I cicli sono strumenti essenziali per eseguire operazioni ripetitive in modo automatico ed efficiente. Python offre due tipi principali di cicli:
🔄 Ciclo for
Utilizzato per iterare su sequenze come liste, tuple, stringhe, intervalli numerici e persino dizionari.
📝 Esempio Base
for i in range(5):
print("Iterazione numero:", i)
💡 Utilizzo avanzato: enumerate(), zip() e list comprehensions
⚡ Ciclo while
Continua a eseguire un blocco di codice finché una condizione specifica rimane vera.
📝 Esempio Base
x = 0
while x < 5:
print("Valore di x:", x)
x += 1
⚠️ Precauzioni: Attenzione ai loop infiniti
🎛️ Controllo del Flusso nei Cicli
⏹️ break
Interrompe un ciclo prematuramente quando viene incontrato
⏭️ continue
Salta un'iterazione specifica e passa alla successiva
🔚 else
Blocco eseguito quando il ciclo termina normalmente (senza break)
Liste in Python
Le liste sono una delle strutture dati più potenti e versatili di Python. Sono ordinate, mutabili e possono contenere elementi di diversi tipi.
📋 Creazione e Manipolazione
- Inizializzazione con valori predefiniti o con
list() - Accesso agli elementi tramite indici positivi e negativi
- Slicing per estrarre sotto-liste
🔧 Operazioni Comuni
- Aggiunta:
append(),insert(),extend() - Rimozione:
remove(),pop(),del - Ordinamento:
sort(),sorted()
🚀 Comprensioni di Lista
Sintassi compatta per generare liste in modo efficiente e leggibile.
📝 Esempio Pratico
quadrati = [x**2 for x in range(10) if x % 2 == 0]
print(quadrati) # [0, 4, 16, 36, 64]
💡 Vantaggio: Più conciso e spesso più veloce dei cicli tradizionali
Tuple in Python
Le tuple sono simili alle liste, ma hanno una caratteristica fondamentale: sono immutabili, cioè non possono essere modificate dopo la creazione.
📦 Creazione e Utilizzo
- Dichiarazione con parentesi tonde
() - Unpacking per assegnare più valori contemporaneamente
- Uso nelle funzioni per return multipli
📝 Esempio Unpacking
coordinate = (10, 20)
x, y = coordinate
print(f"X: {x}, Y: {y}") # X: 10, Y: 20
⚖️ Differenze Liste vs Tuple
- Le tuple occupano meno memoria e sono più veloci
- Utilizzo come chiavi nei dizionari
- Ideali per dati che non devono cambiare
📝 Esempio Chiave Dizionario
coordinate_dict = {(1, 2): "Punto A", (3, 4): "Punto B"}
print(coordinate_dict[(1, 2)]) # Punto A
Dizionari in Python
I dizionari sono collezioni di dati che memorizzano coppie chiave-valore, rendendo facile l'accesso ai dati tramite una chiave anziché un indice numerico.
📖 Creazione e Manipolazione
🎯 Esempio Base
studenti = {"Alice": 25, "Bob": 22, "Charlie": 23}
print(studenti["Alice"]) # Output: 25
🔧 Operazioni
- Dichiarazione con
{}odict() - Accesso ai valori tramite chiavi
- Modifica, aggiunta e rimozione elementi
🛠️ Metodi Utili nei Dizionari
🔄 Iterazione
dati = {"nome": "Mario", "età": 25, "città": "Roma"}
# Iterare sulle chiavi
for chiave in dati.keys():
print(chiave)
# Iterare sui valori
for valore in dati.values():
print(valore)
# Iterare sulle coppie
for chiave, valore in dati.items():
print(f"{chiave}: {valore}")
🛡️ Metodo get()
dati = {"nome": "Mario", "età": 25}
print(dati.get("nome")) # Mario
print(dati.get("città", "Chiave non trovata"))
# Chiave non trovata
💡 Vantaggio: Evita errori con chiavi inesistenti
Scope e Variabili Globali/Locali
Python distingue tra variabili locali e globali in base all'ambito (scope) in cui vengono dichiarate.
🏠 Variabili Locali
Dichiarate all'interno di una funzione, sono accessibili solo all'interno di quella funzione.
🔒 Accesso: Limitato alla funzione di dichiarazione
🌍 Variabili Globali
Dichiarate al di fuori di qualsiasi funzione, sono accessibili da tutto il programma.
🌐 Accesso: Da qualsiasi parte del programma
📝 Esempio Pratico
x = 10 # Variabile globale
def mia_funzione():
y = 5 # Variabile locale
print(y)
print(x) # Accesso alla variabile globale
mia_funzione()
print(x) # Funziona
# print(y) # Errore: y non è definita fuori dalla funzione
🔑 Uso della Parola Chiave global
Se si vuole modificare una variabile globale all'interno di una funzione, è necessario usare la parola chiave global.
z = 100
def modifica_globale():
global z
z += 10 # Modifica la variabile globale
print("Dentro la funzione:", z)
modifica_globale()
print("Fuori dalla funzione:", z) # La modifica persiste
⚠️ Nota: Usa global solo quando necessario per evitare effetti collaterali
Funzioni in Python
Le funzioni permettono di suddividere il codice in blocchi, migliorando leggibilità, riutilizzabilità e manutenibilità del codice.
🎯 Caratteristiche delle Funzioni
Definizione
Con def per creare funzioni personalizzate
Parametri
Argomenti, valori predefiniti e return multipli
Argomenti Variabili
*args e **kwargs per flessibilità
📚 Esempio Completo
def saluta(nome, messaggio="Ciao"):
return f"{messaggio}, {nome}!"
print(saluta("Alice")) # Ciao, Alice!
print(saluta("Bob", "Buongiorno")) # Buongiorno, Bob!
💡 Vantaggio: Codice modulare, riutilizzabile e più facile da testare
🎯 Strutture Python in Sintesi
Le strutture fondamentali di Python sono progettate per essere intuitive e potenti, permettendo di scrivere codice chiaro, efficiente e manutenibile.
Cicli per automazione e ripetizione
Liste per collezioni ordinate e mutabili
Tuple per dati immutabili e sicuri
Dizionari per accesso rapido tramite chiavi
Funzioni per modularità e riutilizzo
Scope per controllo degli accessi alle variabili
Padroneggiare queste strutture fondamentali è il primo passo per diventare un programmatore Python efficace e professionale.