Questo articolo si propone di agevolare la comprensione delle sottostringhe in Python da parte degli studenti.
Attraverso diversi esempi pratici, ti mostrerà come generare una sottostringa, come estrarre sezioni specifiche da una stringa e come le sottostringhe operano in Python. Inoltre, analizzeremo come verificare la presenza di una sottostringa all’interno di una stringa più ampia.
Prima di iniziare, è fondamentale capire cosa si intende per stringa e sottostringa. Una stringa è una sequenza di caratteri Unicode, comprendente lettere, numeri e/o simboli speciali. Una sottostringa, invece, è definibile come una porzione di tale sequenza di caratteri contenuta all’interno di una stringa più grande.
In particolare, tratteremo i seguenti argomenti:
- Come creare una sottostringa.
- Le diverse modalità di estrazione (slicing) di una sottostringa.
- Come contare il numero di occorrenze di una sottostringa.
- Come verificare la presenza di una sottostringa in una stringa.
Iniziamo!
Creazione di una Sottostringa
La creazione di una sottostringa avviene principalmente tramite la tecnica dello “slicing”. Questa tecnica consente di estrarre una porzione di stringa specificando gli indici di inizio e fine, oltre al passo. Questi delimitatori permettono di definire con precisione quali caratteri si desidera prelevare.
La sintassi è la seguente:
string[indice_inizio: indice_fine: passo]
È importante notare che l’indice in una stringa inizia sempre da zero.
Il parametro “indice_inizio” indica la posizione del primo carattere della sottostringa. Se omesso, Python assume automaticamente che il valore dell’indice sia zero.
“Indice_fine” specifica l’ultimo indice della sottostringa. Se non indicato, lo slicing presume che il suo valore corrisponda alla lunghezza totale della stringa.
Il “passo” indica quanti caratteri saltare dopo quello attuale. Il valore predefinito è uno. Se questo parametro non viene specificato, Python lo considera automaticamente uguale a uno.
Modalità di Slicing di una Stringa
Esistono diverse modalità per estrarre una sottostringa da una stringa, tra cui:
# 1. Slicing usando l’indice di inizio e l’indice di fine.
Stringa = stringa[indice_inizio : indice_fine]
Ad esempio, per estrarre il nome da un nome completo, si può procedere come segue:
stringa = 'Mario Rossi' print(stringa[0:5])
L’output sarà:
Mario
#2. Slicing usando l’indice di inizio, senza specificare l’indice di fine.
Stringa = stringa[indice_inizio:]
In questo caso, si indica solo l’indice da cui si vuole iniziare l’estrazione, che proseguirà fino all’ultimo carattere della stringa (che ha solitamente indice -1).
Esempio:
stringa = 'Questo è un esempio di slicing di una stringa usando solo l\'indice di inizio' print(stringa[10:])
Output:
un esempio di slicing di una stringa usando solo l'indice di inizio
#3. Slicing usando l’indice di fine, senza specificare l’indice di inizio.
Stringa = stringa[:indice_fine]
Qui si definisce l’ultimo carattere che la sottostringa deve includere, omettendo l’indice di partenza. Lo slicing, quindi, mostrerà la sottostringa che inizia con il carattere di indice zero della stringa.
Esempio:
stringa = 'Questo è un esempio di slicing di una stringa usando solo l\'indice di fine' print(stringa[:7])
Output:
Questo è
#4. Slicing dell’intera stringa.
Stringa = stringa[ : ]
In questo caso, non si specifica alcun delimitatore, quindi viene restituita l’intera stringa.
Esempio
stringa = 'Questo è un esempio di slicing dell\'intera stringa' print(stringa[:])
Output:
Questo è un esempio di slicing dell'intera stringa
#5. Estrazione di un singolo carattere da una stringa.
Stringa = stringa[indice]
In questo caso, si seleziona un carattere specifico della stringa in base al suo indice.
Esempio:
stringa = 'Questo è un esempio di slicing di un singolo carattere di una stringa' print(stringa[7])
Viene stampato il carattere ‘è’, poiché il suo indice è 7.
#6. Slicing usando l’indice di inizio, l’indice di fine e il passo.
Esempio
stringa = 'Questo è un esempio di slicing della stringa usando indice_inizio, passo e indice_fine' print(stringa[13:28:1])
Quando il valore del passo è 1, lo slicing avviene in modo regolare e l’output sarà il seguente:
esempio di slic
Usando lo stesso esempio, impostiamo il passo a 2.
stringa = 'Questo è un esempio di slicing della stringa usando indice_inizio, passo e indice_fine' print(stringa[13:28:2])
L’estrazione dei caratteri avverrà saltando un carattere alla volta, con un passo di 2.
eeiofsic
Lo slicing, pertanto, estrae un carattere ogni due. Da ‘esempio di slic’ viene prodotto ‘eeiofsic’.
#7. Inversione di una stringa usando un passo negativo.
In questo caso, l’intera stringa viene visualizzata dall’ultimo carattere al primo.
stringa = 'Questo è un esempio di inversione di una stringa usando un passo negativo' print(stringa[::-1])
Output:
ovitagen ossap nu gnusou gnirts anu id enoisrevni id opmesse nu è otseuq
Il funzionamento del passo negativo è il seguente:
R | e | V | e | R | S | e |
0 | 1 | 2 | 3 | 4 | 5 | 6 |
-6 | -5 | -4 | -3 | -2 | -1 |
L’indice iniziale della stringa inversa sopra parte da 0 di default e termina con 6. Il passo negativo inverte l’indice dell’ultimo carattere e lo applica al primo, negando questo valore.
Altri esempi di slicing:
Estrazione dei primi quattro caratteri di una sottostringa.
stringa = 'caratteri' print(stringa[0:4])
L’output sarà:
catt
Verifica della Presenza di una Sottostringa
Python offre due modi per verificare se una sottostringa è contenuta all’interno di una stringa: la funzione find()
e l’operatore in
.
Esempio con l’operatore in
:
stringa = 'Questo è un esempio per dimostrare se una sottostringa è presente in una stringa' if 'trova' in stringa: print('La sottostringa è stata trovata') else: print('La sottostringa non è stata trovata')
Output:
La sottostringa non è stata trovata
L’esempio precedente verifica se la sottostringa ‘trova’ è presente nella stringa dichiarata. Dato che la sottostringa non è presente, viene visualizzato l’output “La sottostringa non è stata trovata”.
Se si sostituisce la sottostringa ‘trova’ con ‘esempio’ e si verifica nuovamente, si otterrà l’output “La sottostringa è stata trovata” perché è presente nella stringa.
Esempio con la funzione find()
:
stringa = 'Utilizzo la funzione per trovare se una sottostringa è presente in una stringa' if stringa.find('trovata') != -1: print("La sottostringa 'trovata' esiste") else: print("La sottostringa 'trovata' non esiste")
Output:
La sottostringa 'trovata' non esiste
Nell’esempio precedente, abbiamo cercato di trovare una sottostringa che non fa parte della stringa. Come si è visto, la funzione find() controlla l’intera stringa e non trovando la sottostringa “trovata”, restituisce l’output “La sottostringa ‘trovata’ non esiste”.
Conteggio delle Occorrenze di una Sottostringa
Python usa la funzione count()
per contare le occorrenze di una sottostringa, come nell’esempio seguente:
stringa = " Conteggio il numero di occorrenze della lettera 'a' in questa stringa " print("Il conteggio della sottostringa 'a' è: ",stringa.count('a'));
Output:
Il conteggio della sottostringa 'a' è: 4
Conclusione
Questo articolo dovrebbe fornirti una migliore comprensione di cosa sia una sottostringa in Python, come crearla, e ha illustrato chiaramente l’idea di slicing e come implementarlo. Utilizzando gli esempi forniti come guida, esercitati con altri esempi per comprendere a fondo il concetto.
Potresti anche imparare a creare un gioco di indovinelli numerici usando Python o come ottenere dati JSON in Python.
Buona programmazione!