Python Tutorial
- jetzt Python programmieren lernen

aggressive Umwandlung in Kleinbuchstaben .casefold()

Eine weitere String-Methode zur Umwandlung in Kleinbuchstaben. Aber warum zur Hölle benötigen wir neben der Methode .lower() eine weitere Methode? Hier kommt das schöne Wort „aggressiv“ zum Tragen.

casefold() ändert unter Umständen auch Zeichenfolgen. Was geht da vor. Normalerweise wird man sich denken, zu jedem Großbuchstaben gibt es einen Kleinbuchstaben. Aus einem großen „A“ wird einfach ein kleines „a“. Aber was ist beispielsweise mit „ß“? Schauen wir uns an, was casefold() uns daraus bastelt:

text = "Inhalt mit Umlauten: ÄÖÜß"
print("Originaltext:")
print(text)
print()
print("Umwandlung durch lower:")
print(text.lower())
print()
print("Umwandlung durch casefold:")
print(text.casefold())

Als Ergebnis erhalten wir:

Originaltext:
Inhalt mit Umlauten: ÄÖÜß

Umwandlung durch lower:
inhalt mit umlauten: äöüß

Umwandlung durch casefold:
inhalt mit umlauten: äöüss

Aus einem „ß“ wir korrekt ein „ss“. Hier werden als nationale Besonderheiten berücksichtigt. Wer es genau benötigt, kann sich die Zusammenstellung beim Unicode-Konsortium herunterladen (siehe https://unicode.org/faq/casemap_charprop.html unter CaseFolding.txt).

Hier als kleine Übung wofür man casefold() sinnvoll einsetzen können. Es bietet uns die Möglichkeit zur Normalisierung von Text und wir können von einem vorliegenden Text überprüfen, ob dieser ein Palindrom ist. Was ist ein Palindrom? Für alle, bei denen der Schulunterricht schon ein paar Tage zurückliegt: Übersetzt bedeutet Palindrom „rückwärts laufend“. So ist der Name „Otto“ und „Hannah“ rückwärts geschrieben exakt das Gleiche.

Aufgabe Palindrom über casefold() testen

Aufgabe: Testen, ob bei dem Wort „Rentner“ ein Palindrom vorliegt.

Erst selber ein Python-Programm erstellen und dann die Lösung ansehen. Wir benötigen dazu auch die Funktion reversed(str), .join() und list(), die uns die Reihenfolge umdreht.

Lösung Palindrom mit casefold()

Als Erstes drehen wir die Reihenfolge um und lassen uns zur Kontrolle den Inhalt ausgeben:

text = "Rentner"
text = text.casefold()
rueckwarts = reversed(text)
print(text)
print(rueckwarts)

Wir erhalten bei unserem reversed() ein „reversed object at …“.

Als Objekt können wir es nicht mit einem String vergleichen. Also erstellen wir über .join einen String.

text = "Rentner"
text = text.casefold()
rueckwarts = ''.join (reversed(text))

Und jetzt können wir bequem vergleichen:

text = "Rentner"
text = text.casefold()
rueckwarts = ''.join (reversed(text))

if text == rueckwarts:
    print(text, " ist ein Palindrom")
else:
    print("KEIN Palindrom")

Ach ja – das Wort „Rentner“ ist ein Palindrom.

Weitere Methoden zur Umwandlung zwischen Groß- und Kleinschreibung

Alle String-Methoden für die Umwandlung bei Klein- und Großschreibung:
casefold(), upper(), lower(), capitalize(), title(), swapcase()

Weiterempfehlen • Social Bookmarks • Vielen Dank

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Das neue E-Book zum Kurs gibt es zum Kaufen.

Sie können uns auch eine Spende über PayPal zukommen lassen.

Bestellen Sie Bücher über folgenden Link bei Amazon:
Bücher über Python

Vielen Dank für Ihre Unterstützung