1️⃣ Le liste in Python

In Python una lista è una struttura dati che permette di memorizzare più valori insieme, anche di tipo diverso.

Esempio semplice:

numeri = [10, 20, 30]
nomi = ["Mario", "Luigi", "Anna"]

Ogni elemento della lista è identificato da un indice, che parte sempre da 0.


2️⃣ La lista alunno

Nel nostro esercizio, un alunno è descritto da più informazioni:

  • cognome

  • nome

  • voto

Quindi l’alunno viene rappresentato con una lista:

alunno = ["Vasco", "Antonio", 6]

Significato:

  • alunno[0] → cognome

  • alunno[1] → nome

  • alunno[2] → voto

👉 Un alunno = una lista


3️⃣ La lista classe (lista di liste)

Una classe è formata da più alunni.
In Python questo si realizza con una lista di liste.

classe = []

Ogni elemento di classe sarà una lista alunno.

Schema concettuale:

classe = [
["Vasco", "Antonio", 6],
["Rossi", "Mario", 8]
]

👉 Classe = lista di alunni
👉 Ogni alunno è una lista


4️⃣ Inserimento dei dati con il ciclo for

Per inserire più alunni, si usa un ciclo for.

⚠️ Punto fondamentale:
la lista alunno deve essere creata dentro il ciclo, altrimenti si usa sempre la stessa lista.

Codice corretto:

classe = []

n = int(input(“Quanti sono gli alunni? “))

for i in range(n):

alunno = [] # nuova lista ad ogni iterazione

alunno.append(input(“Cognome = “))
alunno.append(input(“Nome = “))
alunno.append(input(“Voto = “))

classe.append(alunno)

Cosa succede:

  • ad ogni giro del ciclo nasce un nuovo alunno

  • l’alunno viene aggiunto alla classe


5️⃣ Errore tipico (da evitare)

❌ Questo è sbagliato:

alunno = []

for i in range(n):

alunno.append(…)
classe.append(alunno)

Perché:

  • alunno è sempre la stessa lista

  • tutti i dati finiscono nello stesso contenitore

👉 Risultato: una sola lista “schiacciata”.


6️⃣ Stampa degli alunni (uno sotto l’altro)

Per stampare alunno per alunno, si scorre la lista classe:

for alunno in classe:
print(alunno)

Output:

['Vasco', 'Antonio', 6]
['Rossi', 'Mario', 8]

7️⃣ Stampa più leggibile

Per rendere l’output più chiaro:

for alunno in classe:
print("Cognome:", alunno[0],
"Nome:", alunno[1],
"Voto:", alunno[2])

Output:

Cognome: Vasco Nome: Antonio Voto: 6
Cognome: Rossi Nome: Mario Voto: 8

8️⃣ Concetto chiave da ricordare

👉 Una tabella in Python si realizza con una lista di liste

Concetto Struttura
Alunno lista
Classe lista di liste
Riga un alunno
Colonna cognome, nome, voto

Accesso ai dati:

classe[riga][colonna]

9️⃣ Confronto mentale con C (utile per capirlo)

In C:

int classe[30][3];

In Python:

classe = []

Python è più flessibile:

  • numero di alunni variabile

  • nessuna dimensione fissa

  • tipi diversi nella stessa riga