Vergleich von Zeichenketten
Zeichenkettenvergleiche in Python sind standardmäßig groß-/klein-schreibungssensitiv. Wenn Benutzereingaben in der Groß- und 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 das Vereinheitlichen der Groß-/Kleinschreibung vor Gleichheits- oder Präfix/Suffix-Prüfungen.
Groß-/Kleinschreibungssensitiv vs. -unsensitiv
Standardmäßig ergibt "Apple" == "apple" den Wert False. Um die Groß-/Kleinschreibung zu ignorieren, beide Seiten normalisieren.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() ist eine stärkere, international ausgerichtete Variante von lower() und eignet sich besser als Standard für vergleichende, nicht groß-/kleinschreibungsabhängige Operationen.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Zuschneiden und vergleichen
Benutzer fügen häufig versehentlich Leerzeichen hinzu. Vor dem Vergleich führende und nachfolgende Leerzeichen entfernen.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Präfix- und Suffix-Prüfungen
Verwendung von startswith und endswith. Für Groß-/Kleinschreibungs-unabhängige Prüfungen zuerst normalisieren.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Konsistente Normalisierungspipeline
Eine einfache, wiederholbare Reihenfolge wählen:
- Äußere Leerzeichen mit
.strip()entfernen; - Groß-/Kleinschreibung mit
.casefold()(oder.lower()nach Wunsch) vereinheitlichen; - Anschließend
==,in,startswith,endswithoder andere Prüfungen verwenden.
1. Welche Zeile führt einen vergleich ohne Berücksichtigung der Groß-/Kleinschreibung korrekt aus?
2. Gegeben sei s = " Hello ". Welcher Ausdruck liefert True für einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung mit "hello" und ignoriert dabei umgebende Leerzeichen?
3. Welche Aussage ist für einen robusten, nicht case-sensitiven 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
Awesome!
Completion rate improved to 5
Vergleich von Zeichenketten
Swipe um das Menü anzuzeigen
Zeichenkettenvergleiche in Python sind standardmäßig groß-/klein-schreibungssensitiv. Wenn Benutzereingaben in der Groß- und 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 das Vereinheitlichen der Groß-/Kleinschreibung vor Gleichheits- oder Präfix/Suffix-Prüfungen.
Groß-/Kleinschreibungssensitiv vs. -unsensitiv
Standardmäßig ergibt "Apple" == "apple" den Wert False. Um die Groß-/Kleinschreibung zu ignorieren, beide Seiten normalisieren.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() ist eine stärkere, international ausgerichtete Variante von lower() und eignet sich besser als Standard für vergleichende, nicht groß-/kleinschreibungsabhängige Operationen.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Zuschneiden und vergleichen
Benutzer fügen häufig versehentlich Leerzeichen hinzu. Vor dem Vergleich führende und nachfolgende Leerzeichen entfernen.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Präfix- und Suffix-Prüfungen
Verwendung von startswith und endswith. Für Groß-/Kleinschreibungs-unabhängige Prüfungen zuerst normalisieren.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Konsistente Normalisierungspipeline
Eine einfache, wiederholbare Reihenfolge wählen:
- Äußere Leerzeichen mit
.strip()entfernen; - Groß-/Kleinschreibung mit
.casefold()(oder.lower()nach Wunsch) vereinheitlichen; - Anschließend
==,in,startswith,endswithoder andere Prüfungen verwenden.
1. Welche Zeile führt einen vergleich ohne Berücksichtigung der Groß-/Kleinschreibung korrekt aus?
2. Gegeben sei s = " Hello ". Welcher Ausdruck liefert True für einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung mit "hello" und ignoriert dabei umgebende Leerzeichen?
3. Welche Aussage ist für einen robusten, nicht case-sensitiven Vergleich am zutreffendsten?
Danke für Ihr Feedback!