Lezioni del modulo (2/4)
Slicing e indicizzazione
In Python le stringhe sono sequenze di caratteri: puoi accedere ai
singoli caratteri per indice e ritagliare sottostringhe con la sintassi slice
[start:stop:step] — esattamente come con le liste.
Indici positivi e negativi
s = "Python"
# 0123456
# -6-5-4-3-2-1
s[0] # 'P'
s[5] # 'n'
s[-1] # 'n' (ultimo)
s[-2] # 'o' (penultimo)L'accesso fuori range solleva IndexError.
Slicing [start:stop:step]
s = "Python"
s[0:3] # 'Pyt' indici 0,1,2 (stop ESCLUSO)
s[2:] # 'thon' dal 2 alla fine
s[:3] # 'Pyt' dall'inizio fino al 3 (escluso)
s[:] # 'Python' copia completa
s[-3:] # 'hon' ultimi 3
s[:-2] # 'Pyth' tutto tranne gli ultimi 2A differenza dell'indicizzazione, lo slicing NON solleva errori se gli indici sono fuori range: ritaglia quello che può.
Il terzo argomento: step
s = "Python"
s[::2] # 'Pto' salta uno sì uno no
s[1::2] # 'yhn' dispari
s[::-1] # 'nohtyP' INVERSIONE (idiom famoso)s[::-1] è il modo idiomatico per invertire una stringa.
Lunghezza e contenimento
len("Python") # 6
"th" in "Python" # True
"java" in "Python" # FalseIndici negativi e step nello slicing
La sintassi completa dello slicing è s[start:stop:step]. Se ometti start e stop, ma imposti uno step negativo pari a -1 (s[::-1]), ottieni la stringa invertita al contrario. L'indice negativo -1 rappresenta sempre l'ultimo carattere della stringa, -2 il penultimo, ecc.
Prova tu
Data `word = 'PROGRAMMAZIONE'`, ottieni la sua inversione in `reversed_word`. Valuta `reversed_word`.
Mostra suggerimento
word[::-1]
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Data `email = 'ada@example.com'`, estrai il dominio (tutto dopo la '@') in `domain` usando lo slicing dopo aver trovato l'indice con .find. Valuta `domain`.
Mostra suggerimento
email[email.find('@') + 1:]
Soluzione disponibile dopo 3 tentativi
Sfida aggiuntiva
Data la stringa `word = "pythonista"`, usa lo slicing per estrarre i primi 3 caratteri e gli ultimi 3 caratteri, e uniscili insieme in una nuova stringa `short_word`. Valuta infine `short_word` (dovrebbe risultare `'pytsta'`).
Mostra suggerimento
I primi 3 caratteri sono word[:3], gli ultimi 3 sono word[-3:]. Somma le due fette.
Soluzione disponibile dopo 3 tentativi