HOWTO · Python
Controlla se una stringa è un palindromo in Python
Ci sono due metodi principali che puoi usare per verificare se una stringa è un palindromo in Python: il metodo List Slicing e la funzione reversed().
In questa pagina
Questo tutorial discute i metodi per verificare se una stringa è palindroma in Python.
Controlla se una stringa è palindroma usando il metodo di suddivisione in liste in Python
Una stringa palindroma è una parola che legge lo stesso avanti e indietro. Ad esempio, la parola madam rimane la stessa se invertiamo la sequenza delle lettere in essa; questo tipo di parola è chiamato palindromo.
Possiamo controllare le stringhe palindrome invertendo la stringa originale e confrontando ogni elemento della stringa originale con ogni elemento della stringa invertita; questo può essere fatto con l’affettatura della lista. Il seguente programma ci mostra come verificare se una stringa è un palindromo o meno con il metodo di suddivisione della lista.
word = input()
if str(word) == str(word)[::-1]:
print("Palindrome")
else:
print("Not Palindrome")
Produzione:
ma#am
Palindrome
Abbiamo verificato se la stringa ma#am è un palindromo o meno con il metodo di suddivisione della lista nel codice sopra. Per prima cosa abbiamo calcolato il valore inverso della parola originale con [::-1] come indice della lista. Abbiamo quindi confrontato ogni indice con l’operatore di uguaglianza ==. Se entrambe le parole originali e invertite corrispondono, stampiamo Palindrome sulla console; in caso contrario, stampiamo Not Palindrome.
Controlla se una stringa è palindroma usando la funzione reversed() in Python
La funzione reversed() prende una sequenza di elementi e restituisce un iteratore inverso per quella sequenza. Poiché una stringa è una sequenza di caratteri, possiamo anche usare la funzione reversed() al posto dell’indice [::-1] per invertire la sequenza di caratteri all’interno di una stringa. Possiamo quindi confrontare sia la stringa originale che la stringa invertita, per quanto riguarda gli elementi, per determinare se si tratta di un palindromo o meno. Il seguente frammento di programma mostra come verificare se una stringa è un palindromo o meno con la funzione reversed().
word = input()
if str(word) == "".join(reversed(word)):
print("Palindrome")
else:
print("Not Palindrome")
Produzione:
maisam
Not Palindrome
Abbiamo verificato se la stringa maisam è un palindromo o meno con la funzione reversed() nel programma sopra. Per prima cosa abbiamo calcolato la forma inversa della parola originale con "".join(reversed(word)). Successivamente, abbiamo confrontato sia la parola originale che quella invertita, per elemento, con l’operatore di uguaglianza ==. Se entrambe le parole originali e invertite corrispondono, stampiamo Palindrome sulla console; in caso contrario, stampiamo Not Palindrome.