Du tror sammenligning ignorerer store og små bokstaver

Handler om: Streng (tekst), Ordbok (dict)

For Python er «Oslo» og «oslo» to forskjellige strenger. Det gjelder både `==`, `in` og oppslag i en ordbok: `rad["Alder"]` finner ikke nøkkelen `"alder"`. Skal du sammenligne tekst noen har skrevet inn, må du normalisere selv med `.lower()` — og gjerne `.strip()` for mellomrom.

Eksempel

Brukeren skriver «Ja», koden sjekker `svar == "ja"`, og ingenting skjer.

Slik tenker du riktig om det

Python sammenligner tegn for tegn, og «A» og «a» er ulike tegn. Vask teksten før du sammenligner — én `.lower()` på hver side.

Slik ser det ut i kode

Slik gikk det galt

if svar == "ja":                    # «Ja» og «JA» faller utenfor
    ...

Slik fikser du det

if svar.strip().lower() == "ja":
    ...

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala