Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Jämföra Strängar | Interaktioner Mellan Olika Datatyper
Datatyper i Python

bookJämföra Strängar

Strängjämförelser i Python är som standard skiftlägeskänsliga. Om användarinmatning kan variera i versaler/gemener eller innehålla extra blanksteg, normalisera först och jämför sedan. En enkel och tillförlitlig metod är att trimma blanksteg och standardisera skiftläge innan likhets- eller prefix/suffix-kontroller.

Skiftlägeskänslig vs skiftlägesokänslig

Som standard är "Apple" == "apple" False. För att ignorera skiftläge, normalisera båda sidor.

123
a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
copy

casefold() är en starkare, internationellt anpassad variant av lower() och är ett bättre standardval för skiftlägesokänsliga jämförelser.

123
s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
copy

Trimma och jämför

Användare lägger ofta till mellanslag av misstag. Ta bort inledande och avslutande blanksteg före jämförelse.

123
raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
copy

Kontroll av prefix och suffix

Använd startswith och endswith. För skiftlägesokänsliga kontroller, normalisera först.

1234
fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
copy

Konsekvent normaliseringspipeline

Välj en enkel, upprepningsbar ordning:

  1. Ta bort yttre blanksteg med .strip();
  2. Standardisera skiftläge med .casefold() (eller .lower() om du föredrar det);
  3. Använd sedan ==, in, startswith, endswith eller andra kontroller.

1. Vilken rad utför en skiftlägesokänslig likhetskontroll korrekt?

2. Givet s = " Hello ", vilket uttryck returnerar True för en skiftlägesokänslig likhetskontroll med "hello" och ignorerar omgivande blanksteg?

3. Vilket påstående är mest korrekt för robust skiftlägesokänslig jämförelse?

question mark

Vilken rad utför en skiftlägesokänslig likhetskontroll korrekt?

Select the correct answer

question mark

Givet s = " Hello ", vilket uttryck returnerar True för en skiftlägesokänslig likhetskontroll med "hello" och ignorerar omgivande blanksteg?

Select the correct answer

question mark

Vilket påstående är mest korrekt för robust skiftlägesokänslig jämförelse?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

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

bookJämföra Strängar

Svep för att visa menyn

Strängjämförelser i Python är som standard skiftlägeskänsliga. Om användarinmatning kan variera i versaler/gemener eller innehålla extra blanksteg, normalisera först och jämför sedan. En enkel och tillförlitlig metod är att trimma blanksteg och standardisera skiftläge innan likhets- eller prefix/suffix-kontroller.

Skiftlägeskänslig vs skiftlägesokänslig

Som standard är "Apple" == "apple" False. För att ignorera skiftläge, normalisera båda sidor.

123
a = "Hello" b = "heLLo" print(a.lower() == b.lower()) # True
copy

casefold() är en starkare, internationellt anpassad variant av lower() och är ett bättre standardval för skiftlägesokänsliga jämförelser.

123
s1 = "straße" s2 = "STRASSE" print(s1.casefold() == s2.casefold()) # True
copy

Trimma och jämför

Användare lägger ofta till mellanslag av misstag. Ta bort inledande och avslutande blanksteg före jämförelse.

123
raw = " admin " role = "ADMIN" print(raw.strip().casefold() == role.casefold()) # True
copy

Kontroll av prefix och suffix

Använd startswith och endswith. För skiftlägesokänsliga kontroller, normalisera först.

1234
fname = "Report_Final.PDF" print(fname.lower().endswith(".pdf")) # True prefix = "rep" print(fname.strip().casefold().startswith(prefix.casefold())) # True
copy

Konsekvent normaliseringspipeline

Välj en enkel, upprepningsbar ordning:

  1. Ta bort yttre blanksteg med .strip();
  2. Standardisera skiftläge med .casefold() (eller .lower() om du föredrar det);
  3. Använd sedan ==, in, startswith, endswith eller andra kontroller.

1. Vilken rad utför en skiftlägesokänslig likhetskontroll korrekt?

2. Givet s = " Hello ", vilket uttryck returnerar True för en skiftlägesokänslig likhetskontroll med "hello" och ignorerar omgivande blanksteg?

3. Vilket påstående är mest korrekt för robust skiftlägesokänslig jämförelse?

question mark

Vilken rad utför en skiftlägesokänslig likhetskontroll korrekt?

Select the correct answer

question mark

Givet s = " Hello ", vilket uttryck returnerar True för en skiftlägesokänslig likhetskontroll med "hello" och ignorerar omgivande blanksteg?

Select the correct answer

question mark

Vilket påstående är mest korrekt för robust skiftlägesokänslig jämförelse?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
some-alt