Vergleich von Zeichenketten
Swipe um das Menü anzuzeigen
Zeichenfolgenvergleiche in Python sind standardmäßig groß- und kleinschreibungsabhängig. Wenn Benutzereingaben hinsichtlich Groß-/Kleinschreibung variieren oder zusätzliche Leerzeichen enthalten können, zuerst normalisieren und dann vergleichen. Eine einfache und zuverlässige Vorgehensweise ist das Entfernen von Leerzeichen und die Vereinheitlichung der Groß-/Kleinschreibung vor Gleichheits- oder Präfix/Suffix-Prüfungen.
Groß-/Kleinschreibungsabhängig vs. -unabhängig
Standardmäßig ergibt "Apple" == "apple" den Wert False. Um die Groß-/Kleinschreibung zu ignorieren, beide Seiten normalisieren.
12345# Comparing two email addresses entered with different letter cases email_saved = "Support@Codefinity.com" email_entered = "support@codefinity.COM" print(email_saved.lower() == email_entered.lower()) # True → emails match regardless of case
casefold() ist eine stärkere, international ausgerichtete Variante von lower() und eignet sich besser als Standard für vergleichende, nicht groß-/kleinschreibungsabhängige Operationen.
12345# Comparing international usernames regardless of letter case username_db = "straße" username_input = "STRASSE" print(username_db.casefold() == username_input.casefold()) # True → matches even with special characters
Kürzen und Vergleichen
Benutzer fügen oft versehentlich Leerzeichen hinzu. Vor dem Vergleich führende und nachfolgende Leerzeichen entfernen.
12345# Validating a user's role input from a form user_input = " admin " required_role = "ADMIN" print(user_input.strip().casefold() == required_role.casefold()) # True → matches after cleanup and case normalization
Präfix- und Suffix-Prüfungen
Verwendung von startswith und endswith. Für Groß-/Kleinschreibungs-unabhängige Prüfungen zuerst normalisieren.
123456789# Checking if the uploaded document has the correct format and name uploaded_file = "Report_Final.PDF" # Validate file type (case-insensitive) print(uploaded_file.lower().endswith(".pdf")) # True → valid PDF file # Validate file name prefix (e.g., all reports start with "rep") required_prefix = "rep" print(uploaded_file.strip().casefold().startswith(required_prefix.casefold())) # True → matches prefix ignoring case
Konsistente Normalisierungspipeline
Wählen Sie eine einfache, wiederholbare Reihenfolge:
- Entfernen äußerer Leerzeichen mit
.strip(); - Vereinheitlichen der Groß- und Kleinschreibung mit
.casefold()(oder.lower(), falls bevorzugt); - Anschließend Verwendung von
==,in,startswith,endswithoder anderen Prüfungen.
1. Welche Zeile führt einen groß-/kleinschreibungsunabhängigen Gleichheitsvergleich korrekt aus?
2. Gegeben s = " Hello ", welcher Ausdruck liefert True für einen groß-/kleinschreibungsunabhängigen Gleichheitsvergleich mit "hello" unter Ignorieren der umgebenden Leerzeichen?
3. Welche Aussage ist für einen robusten, nicht-fallunterscheidenden Vergleich am zutreffendsten?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen