Donc, j'écris un code pour vérifier si la chaîne entrée est un palindrome ou non, j'ai écrit le code suivant, mais cela ne fonctionne pas correctement, par exemple, si je saisis "race", il dit toujours VRAI, bien qu'il devrait dire FAUX, veuillez aider. C'est le code
string = input("Please enter any word: ")
a = 0
string_length = len(string)
for string_index in range(string_length-1, -1, -1):
character = string[string_index]
if string[a] == character:
a = a + 1
b = "TRUE"
else:
b = "FALSE"
print(b)
3 réponses
Le bon code:
a = 0
string_length = len(string)
for string_index in range(string_length-1, -1, -1):
character = string[string_index]
if string[a] == character:
a = a + 1
b = "TRUE"
else:
b = "FALSE"
break; # this line was missing
print(b)
string = input("Please enter any word: ")
string_length = len(string)
start_index = 0
count = 0
end_index = string_length - 1
for string_index in range(int(string_length/2)):
if string[start_index] == string[end_index]:
start_index = start_index + 1
end_index = end_index - 1
count += 1
else:
pass
print("Palendrome") if count == int(string_length/2) else print("Not Palendrome")
Explication: Pour vérifier la chaîne palendrome, comparez le premier et le dernier caractère jusqu'à la comparaison arrive au milieu de la chaîne
for string_index in range(int(string_length/2)):
Comparer le premier caractère et le dernier caractère:
if string[start_index] == string[end_index]:
Mettez à jour start_index et end_index et comptez:
start_index = start_index + 1
end_index = end_index - 1
count += 1
Si le nombre est égal à la moitié de la longueur de la chaîne, c'est certainement un Palendrome
print("Palendrome") if count == int(string_length/2) else print("Not Palendrome")
En plus de cette réponse de מתן ל:
Vous pouvez facilement comparer votre entrée avec elle-même lorsqu'elle est inversée - la compréhension de la liste rend cela trivial:
Test simple en un mot et sensible à la casse:
word = "SomemoS"
print(word == word[::-1]) # word[::-1] simply reverses the word and prints True if same
Insensible à la casse et autorisant la ponctuation
Un palindrom est lisible des deux côtés. En fonction des règles de palindrome, vous pouvez autoriser le boîtier ignoré et même éliminer les espaces blancs et les signes de ponctuation.
- lui appliquer
lower()
- ne se soucient pas des espaces et de la ponctuation
word = [c.lower() for c in "No, it can assess an action." if c not in ',. !?']
print(word == word[::-1]) # True as well
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.