Beskrivning: Skriv ett program som ber användaren att mata in en sträng och sedan kontrollerar om strängen är ett palindrom. Ett palindrom är ett ord, en fras eller en sekvens som läses likadant framifrån som bakifrån (t.ex. "radar", "level").
Be användaren mata in en sträng:
text = input("Skriv in en sträng: ")
Bearbeta strängen:
text = text.lower().replace(" ", "")
Kontrollera om strängen är ett palindrom:
Vi kan använda en loop eller Python-funktioner för att kontrollera om strängen är samma framifrån och bakifrån.
En enkel metod är att jämföra strängen med sin omvända version.
if text == text[::-1]:
print("Strängen är ett palindrom!")
else:
print("Strängen är inte ett palindrom.")
text[::-1] skapar en omvänd version av strängen.
Här är den kompletta lösningen:
text = input("Skriv in en sträng: ")
# Gör om till små bokstäver och ta bort mellanslag
text = text.lower().replace(" ", "")
# Kontrollera om det är ett palindrom
if text == text[::-1]:
print("Strängen är ett palindrom!")
else:
print("Strängen är inte ett palindrom.")
Hantera fler tecken: Låt eleverna utvidga programmet så att det ignorerar andra icke-bokstäver som punkter, kommatecken och utropstecken (t.ex. "A man, a plan, a canal, Panama!" är ett palindrom).
import string
text = ''.join([char for char in text if char in string.ascii_letters])
Längre texter: Testa programmet med längre meningar eller fraser för att se om det fortfarande fungerar korrekt.