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.

1

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)

2

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

3

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

4

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 {} o dict()
  • 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

5

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

6

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.

Torna in alto