Ripetizioni con for “intelligente”

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()DizionarioSTRUTTURA_DATI = {0:10, 1:20, 2:30, 3:40, 4:50}
list()ListaSTRUTTURA_DATI = [0, 1, 2, 3, 4]
range()IntervalloSTRUTTURA_DATI = range(5)
set()InsiemeSTRUTTURA_DATI = {0, 1, 2, 3, 4}
str()StringaSTRUTTURA_DATI = "01234"
tuple()TuplaSTRUTTURA_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!