Sammenligne Strenger
Strengsammenligninger i Python er som standard store- og småbokstavfølsomme. Dersom brukerinput kan variere i bruk av store og små bokstaver eller inneholde ekstra mellomrom, bør du normalisere først og deretter sammenligne. En enkel og pålitelig metode er å fjerne mellomrom og standardisere bokstavbruk før likhets- eller prefiks/suffikssjekker.
Store- og småbokstavfølsomhet vs ufølsomhet
Som standard er "Apple" == "apple" False. For å ignorere forskjeller i store og små bokstaver, normaliser begge sider.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() er en sterkere, internasjonalt tilpasset variant av lower() og er et bedre standardvalg for sammenligninger uten hensyn til store og små bokstaver.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Trim og sammenlign
Brukere legger ofte til mellomrom ved en feil. Fjern innledende og etterfølgende mellomrom før sammenligning.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Prefiks- og suffikskontroller
Bruk startswith og endswith. For store- og småbokstav-uavhengige kontroller, normaliser først.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Konsistent normaliseringsprosess
Velg en enkel, repeterbar rekkefølge:
- Fjern ytre mellomrom med
.strip(); - Standardiser bokstavstorrelse med
.casefold()(eller.lower()hvis du foretrekker det); - Bruk deretter
==,in,startswith,endswitheller andre sjekker.
1. Hvilken linje utfører en skille-uavhengig likhetssjekk korrekt?
2. Gitt s = " Hello ", hvilket uttrykk returnerer True for en skille-uavhengig likhetssjekk med "hello" og ignorerer omkringliggende mellomrom?
3. Hvilket utsagn er mest presist for robust sammenligning uten hensyn til store og små bokstaver?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you explain the difference between `lower()` and `casefold()` in more detail?
Are there any situations where `casefold()` might not be appropriate?
Can you show more examples of normalizing user input before comparison?
Awesome!
Completion rate improved to 5
Sammenligne Strenger
Sveip for å vise menyen
Strengsammenligninger i Python er som standard store- og småbokstavfølsomme. Dersom brukerinput kan variere i bruk av store og små bokstaver eller inneholde ekstra mellomrom, bør du normalisere først og deretter sammenligne. En enkel og pålitelig metode er å fjerne mellomrom og standardisere bokstavbruk før likhets- eller prefiks/suffikssjekker.
Store- og småbokstavfølsomhet vs ufølsomhet
Som standard er "Apple" == "apple" False. For å ignorere forskjeller i store og små bokstaver, normaliser begge sider.
123a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
casefold() er en sterkere, internasjonalt tilpasset variant av lower() og er et bedre standardvalg for sammenligninger uten hensyn til store og små bokstaver.
123s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
Trim og sammenlign
Brukere legger ofte til mellomrom ved en feil. Fjern innledende og etterfølgende mellomrom før sammenligning.
123raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
Prefiks- og suffikskontroller
Bruk startswith og endswith. For store- og småbokstav-uavhengige kontroller, normaliser først.
1234fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
Konsistent normaliseringsprosess
Velg en enkel, repeterbar rekkefølge:
- Fjern ytre mellomrom med
.strip(); - Standardiser bokstavstorrelse med
.casefold()(eller.lower()hvis du foretrekker det); - Bruk deretter
==,in,startswith,endswitheller andre sjekker.
1. Hvilken linje utfører en skille-uavhengig likhetssjekk korrekt?
2. Gitt s = " Hello ", hvilket uttrykk returnerer True for en skille-uavhengig likhetssjekk med "hello" og ignorerer omkringliggende mellomrom?
3. Hvilket utsagn er mest presist for robust sammenligning uten hensyn til store og små bokstaver?
Takk for tilbakemeldingene dine!