Wie ist dieser verbesserte Python Code zu Palindromen?

2 Antworten

    if word in string.punctuation or word in string.whitespace: #Sonderzeichen abfangen
        return False

Ist das nciht redundant? Wenn DU bereits alle entsprechenden Zeichen mit replace eleminiert hast, dann lohnt es doch maximal noch auf leeren String zu testen ....

    removable = string.punctuation + string.whitespace + string.digits
    for c in removable: #Sonderzeichen entfernen
        word = word.replace(c, '')

Das ließe sich auch mit str.translate erledigen.

    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

Doppelt gemoppelt...diese Zeilen sind verlustfrei reduzierbar auf:

    return word.lower() == word[::-1].lower()

Und wie schon vorhin erwähnt - wozu das?

        else:
            continue
whgoffline  10.11.2020, 19:55

Genau else: continue kann man sich sparen. Eine if Teil muss ja nicht immer ein else haben.

0