Wie ist dieser verbesserte Python Code zu Palindromen?
Verbesserter Code mit Hilfe der Antwort von alfredo153
#!/bin/python3
#Palindrome-Woerter in Textdatei erkennen
import string
#Funktion zum Erkennen von Palindromen
def check_palindrome(word):
reverse = ''
removable = string.punctuation + string.whitespace + string.digits
for c in removable: #Sonderzeichen entfernen
word = word.replace(c, '')
if word in string.punctuation or word in string.whitespace: #Sonderzeichen abfangen
return False
for c in word[::-1]: #Wort rueckwaerts zusammen basteln
reverse = reverse + c
if reverse.lower() == word.lower(): #Rueckwaerts-Wort mit vorwaerts-Wort vergleichen
return True
else:
return False
#Den Benutzer eine Textdatei oeffnen lassen
file = input('Path to file: ')
palindrome = []
try:
with open(file, 'r') as f:
lines = f.readlines()
except FileNotFoundError:
print('File not found!')
exit(0)
#Einzelne Woerter im Text der Funktion check_palindrome uebergeben
for line in lines:
line = line.split(' ')
for word in line:
if check_palindrome(word):
palindrome.append(word)
else:
continue
#Ergebnis anzeigen
print(len(palindrome), ' found!\n')
for i in range(len(palindrome)):
print(palindrome[i].replace('\n', '')) #\n in Wort entfernen, da sonst zu viele Leerzeichen bei Output