Python string index: come individuare la posizione di una sottostringa in Python
Il metodo index() di Python può essere utilizzato per cercare in una stringa e recuperare l’indice di una sottostringa Python. Puoi effettuare la ricerca sull’intera stringa Python oppure solo su una parte di essa.
Python string index: sintassi e funzionamento
La sintassi del metodo index è molto semplice da spiegare. Il metodo può essere richiamato con uno, due o tre parametri, dove gli ultimi due sono facoltativi. Il primo parametro è sempre la sottostringa in base alla quale si vuole analizzare la stringa. I due parametri facoltativi sono gli indici in cui la ricerca deve iniziare o fermarsi. Puoi utilizzarli se vuoi cercare la sottostringa solo in una determinata area della stringa. Il seguente frammento di codice mostra la sintassi di questo metodo:
string.index(substring)
string.index(substring, start, end)PythonIn questo esempio, “string” è una stringa qualsiasi e “substring” è la sottostringa da cercare. “start” e “end” indicano rispettivamente gli indici di inizio e fine della ricerca. Se non viene specificato alcun indice finale (se hai solo due parametri in totale), la ricerca termina alla fine della stringa. Il metodo restituisce l’indice della prima occorrenza della sottostringa come valore di ritorno. Pertanto, se una sottostringa appare più di una volta, tutte le occorrenze successive alla prima vengono ignorate da index(). Ecco un esempio di come funziona il metodo:
string = "I am in a string"
print(string.index("string"))
# output: 10
print(string.index("in"))
# output: 5 (the "in" in "I am in...")
print(string.index("in", 7, len(string) - 1))
# output: 13 (the "in" in "string")
print(string.index("in", 7))
# output: 13 (the "in" in "string")
print(string.index("Python"))
# Exception-error message: ValueErrorPythonCome puoi vedere nell’esempio precedente, la seconda chiamata a index() restituisce l’indice 5, la prima occorrenza di “in” nella stringa. Le chiamate successive con i parametri start e end restituiscono la seconda occorrenza di “in” in “string”, all’indice 13. Nell’ultima chiamata a index(), puoi vedere che il metodo restituisce un’eccezione ValueError se la sottostringa non è presente. Questa eccezione viene generata anche se l’indice iniziale è maggiore dell’indice finale.
La gestione delle stringhe è un’operazione molto comune nella programmazione Python. Per questo motivo è importante che le stringhe vengano salvate e visualizzate in un formato appropriato. Nel nostro articolo sul formato delle stringhe in Python approfondiamo come puoi adattare il formato delle stringhe alle tue esigenze.
Alternativa: il metodo find
A seconda dell’uso che fai del metodo index, il metodo find potrebbe essere un’alternativa migliore. È quasi identico al metodo index, con una differenza importante: se la sottostringa non viene trovata, non viene generata alcuna eccezione. Al suo posto, il metodo restituisce semplicemente il valore “-1”. Poiché un’eccezione non gestita potrebbe causare il blocco del programma, questo può essere molto utile se non puoi o non vuoi gestire una possibile eccezione. L’elaborazione dell’eccezione può essere simulata anche con una condizione if, come mostrato qui:
string = "Python"
if(string.find("Py") != -1):
print("Substring included! Index: ", string.find("Py"))
else:
print("Substring not included!")PythonIn questo esempio, se la sottostringa non viene trovata si verifica una biforcazione, esattamente come nella gestione di un’eccezione. La differenza principale è che in questo esempio find() deve essere eseguito più volte quando la sottostringa viene trovata.
Python è uno dei linguaggi di programmazione più flessibili che esistano. Questo ti offre molte possibilità su ciò che puoi fare con le stringhe. Scopri di più nel nostro articolo sui diversi modi di confrontare le stringhe in Python.
Esempi di Python string index
Vediamo ora due esempi di come index() può essere utilizzato in un programma. Prima di tutto vedremo un esempio semplice e poi uno un po’ più complesso.
string = "Peter Piper picked a peck of pickled peppers."
print("The string to check is ", string)
while(True):
sub = input("substring input: ")
try:
print("the index is: ", string.index(sub))
except ValueError:
print("The substring is not included :/")PythonQuesto esempio cerca una sottostringa all’interno di una stringa. Successivamente mostra se la sottostringa è contenuta nella stringa e, in caso affermativo, a quale indice si trova. In questo caso, la stringa da analizzare è predefinita, mentre la sottostringa viene inserita dall’utente ogni volta.
def try_except(start):
try:
return string.index(sub, start)
except ValueError:
return -1
string = input("string input: ")
sub = input("substring input: ")
occur = 0
start = 0
while(try_except(start) != -1):
start = try_except(start) + len(sub)
occur = occur + 1
print("Occur: ", occur)PythonIn questo esempio si verifica se una stringa inserita dall’utente contiene una sottostringa. Se viene trovata un’occorrenza della sottostringa nella stringa, il numero di occorrenze viene incrementato e la ricerca ricomincia da quel punto. Quando si raggiunge la fine della stringa, viene visualizzato il numero totale di ripetizioni e il programma termina.
Stai cercando un modo per pubblicare la tua applicazione web in modo rapido e semplice? Deploy Now di IONOS è la piattaforma perfetta per te.

