Il ciclo for di Python utilizza la forma più evoluta del ciclo, quello con iteratore:
STRUTTURA_DATI = ___
for x in STRUTTURA_DATI:
istr_1
istr_2
...
Estrae un elemento dalla STRUTTURA_DATI e lo assegna alla variabile x.
Esegue il blocco di codice sottostante.
Ripete tante volte quanti sono gli elementi della STRUTTURA_DATI.
La struttura dati è un oggetto a scelta tra quelli iterabili di Python
dict() | Dizionario | STRUTTURA_DATI = {0:10, 1:20, 2:30, 3:40, 4:50} |
list() | Lista | STRUTTURA_DATI = [0, 1, 2, 3, 4] |
range() | Intervallo | STRUTTURA_DATI = range(5) |
set() | Insieme | STRUTTURA_DATI = {0, 1, 2, 3, 4} |
str() | Stringa | STRUTTURA_DATI = "01234" |
tuple() | Tupla | STRUTTURA_DATI = (0, 1, 2, 3, 4) |
In tutti i casi degli esempi precedenti, tranne per la stringa, la variabile x assumerà i valori successivi 0, 1, 2, 3, 4.
Nel caso della stringa i valori successivi di x saranno i caratteri “0“, “1“, “2“, “3“, “4“.
Qual è l’operazione più semplice sugli elementi di una stringa? La stampa!
1
NOME = "Andréa"
print(NOME)
Andréa⇓
La funzione print()
visualizza la stringa come un’unica parola.
2
for c in NOME:
print(c)
A⇓
n⇓
d⇓
r⇓
é⇓
a⇓
Un carattere per ogni riga.
3
for c in NOME:
print(c, end="")
Andréa
Un carattere alla volta, ma senza andare a capo.
4
for c in NOME:
print(c, end="")
print()
Andréa⇓
Un carattere alla volta, senza andare a capo.
A capo dopo l’ultimo carattere.
5
for c in NOME:
print(c, end="*")
print()
A*n*d*r*é*a*⇓
Il fine riga… è un asterisco.
6
for c in NOME:
print(c, end=" ")
print()
A n d r é a ⇓
Il fine riga… è uno spazio.
7
for c in NOME:
print(c, end="\t")
print()
A n d r
é a ⇓
Il fine riga… è una tabulazione orizzontale.
Qual è l’operazione più semplice sugli elementi di una sequenza di nomi? La stampa!
1
NOMI = ["Andréa", "Giulio"]
print(NOMI)
['Andréa', 'Giulio']⇓
La funzione print()
visualizza la sequenza in modo troppo tecnico.
2
for nome in NOMI:
print(nome)
Andéa⇓
Giulio⇓
Un nome per ogni riga.
3
for nome in NOMI:
print(nome, end="")
AndréaGiulio
Un nome alla volta, ma senza andare a capo.
4
for nome in NOMI:
print(nome, end="")
print()
AndréaGiulio⇓
Un nome alla volta, senza andare a capo.
A capo dopo l’ultimo nome.
5
for nome in NOMI:
print(nome, end="*")
print()
Andréa*Giulio*⇓
Il fine riga… è un asterisco.
6
for nome in NOMI:
print(nome, end=" ")
print()
Andréa Giulio ⇓
Il fine riga… è uno spazio.
7
for nome in NOMI:
print(nome, end="\t")
print()
Andréa Giulio ⇓
Il fine riga… è una tabulazione orizzontale.
Se si visualizzano più dati sulla stessa riga può essere utile la sequenza di escape “\t” (tabulazione).
Se però alcuni dati sono più lunghi di altri verrà comunque in disordine!