Indicizzazione e Slicing
Le stringhe sono sequenze: ogni carattere ha una posizione (un indice). Python utilizza l'indicizzazione a partire da zero, quindi il primo carattere si trova all'indice 0. È possibile ottenere singoli caratteri tramite indicizzazione e intervalli di caratteri tramite slicing.
Indicizzazione
Utilizzare le parentesi quadre con una singola posizione.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Gli indici negativi contano a partire dalla fine.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
L'indicizzazione deve corrispondere a una posizione esistente, altrimenti si ottiene IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Inoltre, le stringhe sono immutabili, quindi è possibile leggere s[i] ma non assegnarvi un valore.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Slicing
Una slice utilizza start:stop:step e restituisce una nuova stringa. stop è esclusivo (non è incluso).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Le slice sono tolleranti: andare oltre i limiti estremi semplicemente adatta ai limiti validi (nessun errore).
12s = "python" print(s[0:100]) # 'python'
Indici negativi e inversione
È possibile combinare indici negativi nelle slice e un step negativo consente di scorrere all'indietro.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step non può essere 0. Omettere step implica 1. Omettere start o stop significa "dall'inizio" / "alla fine".
1. Quale valore restituirà questo codice?
2. Quale valore restituirà questo codice?
3. Quale istruzione genera un errore per u = "hello"?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain more about how slicing works with different step values?
What happens if I use both negative start and stop indices in a slice?
Can you show more examples of string indexing and slicing?
Awesome!
Completion rate improved to 5.26
Indicizzazione e Slicing
Scorri per mostrare il menu
Le stringhe sono sequenze: ogni carattere ha una posizione (un indice). Python utilizza l'indicizzazione a partire da zero, quindi il primo carattere si trova all'indice 0. È possibile ottenere singoli caratteri tramite indicizzazione e intervalli di caratteri tramite slicing.
Indicizzazione
Utilizzare le parentesi quadre con una singola posizione.
123s = "python" print(s[0]) # 'p' (first character) print(s[5]) # 'n' (sixth character)
Gli indici negativi contano a partire dalla fine.
123s = "python" print(s[-1]) # 'n' (last character) print(s[-2]) # 'o' (second from the end)
L'indicizzazione deve corrispondere a una posizione esistente, altrimenti si ottiene IndexError.
12s = "python" print(s[10]) # IndexError: string index out of range
Inoltre, le stringhe sono immutabili, quindi è possibile leggere s[i] ma non assegnarvi un valore.
12s = "python" s[0] = 'P' # TypeError: 'str' object does not support item assignment
Slicing
Una slice utilizza start:stop:step e restituisce una nuova stringa. stop è esclusivo (non è incluso).
12345s = "python" print(s[1:4]) # 'yth' (indices 1,2,3) print(s[:4]) # 'pyth' (start defaults to 0) print(s[3:]) # 'hon' (stop defaults to len(s)) print(s[::2]) # 'pto' (every 2nd character)
Le slice sono tolleranti: andare oltre i limiti estremi semplicemente adatta ai limiti validi (nessun errore).
12s = "python" print(s[0:100]) # 'python'
Indici negativi e inversione
È possibile combinare indici negativi nelle slice e un step negativo consente di scorrere all'indietro.
123s = "python" print(s[-3:]) # 'hon' (last three) print(s[::-1]) # 'nohtyp' (reverse)
step non può essere 0. Omettere step implica 1. Omettere start o stop significa "dall'inizio" / "alla fine".
1. Quale valore restituirà questo codice?
2. Quale valore restituirà questo codice?
3. Quale istruzione genera un errore per u = "hello"?
Grazie per i tuoi commenti!