
Il metodo endswith di Python()
Il metodo endswith() del linguaggio Python verifica se una stringa termina con una specifica sottostringa oppure no.
stringa.endswith(sottostringa,start,end)
Per utilizzarlo devi scrivere il nome della stringa seguito dal metodo ".endswith()". All'interno delle parentesi puoi indicare:
- la sottostringa che vuoi cercare
- start indica la posizione nella stringa dove avviare la ricerca
- end indica la posizione nella stringa in cui terminare la ricerca
Il metodo restituisce il valore booleano True se la stringa termina con la sottostringa che hai indicato. In caso contrario restituisce False.
Nota. Il primo parametro è obbligatorio. I parametri start ed end, invece, sono facoltativi. Se non li indichi, il metodo verifica il contenuto della stringa per intero.
Ti faccio un esempio pratico
Assegna una stringa a una variabile.
>>> stringa = "www.stemkb.com"
Poi utilizza il metodo endswith() per verificare se la stringa termina con ".com"
Digita l'istruzione stringa.endswith(".com")
>>> stringa.endswith(".com")
Il metodo restituisce True perché la stringa termina con la sottostringa ".com"
True
Ora digita stringa.endswith(".it")
>>> stringa.endswith(".it")
In questo caso il metodo restituisce False perché la stringa non termina con ".it"
False
Ti faccio un altro esempio.
Crea una lista di valori nella variabile emails
emails = ["nigiara@gmail.com", "topolino@nigiara.com", "paperino@nigiara.com"]
La lista contiene diversi indirizzi di posta elettronica.
Supponi di voler selezionare solo le email che terminano con il dominio "@gmail.com".
Per farlo puoi utilizzare una struttura iterativa (for), una struttura condizionale (if) e il metodo endswith()
- >>> for email in emails:
- if email.endswith("@gmail.com"):
- print(email)
Il ciclo itera tutti gli elementi della lista e seleziona solo quelli che terminano con la sottostringa "@gmail.com".
nigiara@gmail.com
In questo modo puoi effettuare rapidamente una ricerca di pattern specifici all'interno delle stringhe senza manipolare le stringhe.
I parametri aggiuntivi del metodo endswith()
Puoi ulteriormente personalizzare l'utilizzo del metodo endswith() tramite i parametri aggiuntivi, specificando l'intervallo di caratteri in cui cercare la sottostringa.
Ad esempio, definisci una stringa
>>> stringa = "www.stemkb.com"
Ora digita stringa.endswith(".com", 13)
>>> stringa.endswith(".com", 13)
Il metodo cerca la sottostringa ".com" a partire dalla posizione 13 della stringa.
In questo caso restituisce False perché non la trova alla fine dell'intervallo selezionato.
False
Ora digita stringa.endswith(".com", 1,6)
>>> stringa.endswith(".com", 1,6)
Il metodo cerca la sottostringa ".com" dalla posizione 1 alla posizione 6 dell'indice della stringa.
Anche in questo caso restituisce False perché non la trova alla fine dell'intervallo selezionato.
False
Nota. Il metodo endswith() di Python distingue tra maiuscole e minuscole per impostazione predefinita. Ciò significa che se passi una stringa in maiuscolo come argomento, il metodo cercherà solo le stringhe di input che terminano con quella stringa in maiuscolo, ignorando quelle in minuscolo. Ad esempio, definisci la stringa
>>> stringa = "WWW.STEMKB.COM"
Poi cerca la sottostringa ".com"
>>> stringa.endswith(".com")
Il metodo restituisce False perché distingue tra lettere minuscole e maiuscole
False
Se vuoi che il metodo endswith() non distingua tra maiuscole e minuscole, puoi convertire sia la stringa iniziale che l'argomento passato al metodo in maiuscolo o minuscolo prima di passarlo al metodo. Ad esempio, digita questa istruzione.
>>> stringa.lower().endswith(".com")
L'istruzione prima converte la stringa in minuscolo "www.stemkb.com" con il metodo lower(). Poi cerca la sottostringa ".com" alla fine della stringa tramite il metodo endswith(). In questo caso il risultato è True.
True