Itera su tutti i caratteri
Poiché è possibile accedere a un carattere tramite l'indice, è possibile utilizzare un ciclo variabile per eseguire iterazioni su tutti i caratteri, che assumeranno possibili valori di indice. Ad esempio, un programma che visualizza tutti i codici dei caratteri della stringa
s
avrà questo aspetto
for i in range(len(s)):
print(s[i], ord(s[i]))
Spiegazioni per il programma:
1) La funzione
len(s)
trova la lunghezza di una stringa. L'indice del primo carattere è 0 e l'indice dell'ultimo è len(s)-1. La variabile di ciclo
i
prenderà semplicemente i valori in sequenza da
0
a
len(s)-1
.
2) In ogni riga verrà visualizzato prima il simbolo stesso e poi il suo codice, che viene restituito dalla funzione built-in
ord().
La stessa enumerazione può essere scritta più breve:
per c in s:
print(c, ord(c))
In questo frammento, l'intestazione del ciclo scorre tutti i caratteri s, inserendoli a turno nella variabile
c
.
Come già accennato, la particolarità di Python quando si lavora con le stringhe è che le stringhe sono oggetti immutabili. In altre parole, non possiamo modificare i singoli caratteri di una stringa.
Ad esempio, la seguente istruzione non funzionerà
s[5]='a'
Ma puoi comporre una nuova riga dai caratteri con le modifiche richieste.
Attività
Nella stringa di input, sostituisci tutti i caratteri 'a' ai caratteri 'b'.
s = ingresso()
sNuovo = ""
per c in s:
se c == 'a': c = 'b'
sNuovo += c
print(sNuovo)
In questo programma, il ciclo passa attraverso tutti i caratteri della stringa s. Nel corpo del ciclo, controlliamo il valore della variabile
с
: se il simbolo corrisponde al simbolo '
a
', allora lo sostituiamo con '
b
' e aggiungilo alla fine della nuova riga
sNew
utilizzando l'operatore di addizione.
Questa opzione è piuttosto lenta.
In futuro, daremo un'occhiata alle funzioni di manipolazione delle stringhe integrate e impareremo come farlo più velocemente.