Streng (tekst)
Tekst i Python: en sekvens av tegn med indeks som en liste — men uforanderlig. f-strenger fletter verdier inn i tekst, og metoder som lower/strip/split gir alltid en NY streng (eller liste) tilbake.
Slik kan du tenke om det
- Lillesøsteren til lista En streng er en sekvens akkurat som ei liste: samme indeksering, samme len, samme for-løkke og samme in. Forskjellen er den ene at du aldri kan endre den. Mønsteret er derfor alltid lag ny og ta vare på den: navn = navn.upper().
Vanlige feil
- Du tror en streng kan endres på plass (tegn for tegn) Strenger i Python er uforanderlige (immutable). Du kan LESE et tegn med navn[0], men ikke skrive: navn[0] = "K" gir TypeError. Metoder som upper() og strip() endrer heller ikke strengen — de gir en NY streng tilbake, som du må ta vare på med en tilordning.
- Du tror sammenligning ignorerer store og små bokstaver 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.
- Du tror listemetoder må tilordnes tilbake Strenger kan ikke endres — `tekst.upper()` lager en ny streng du må ta vare på. Lister er motsatt: `liste.append(3)` endrer lista på plass og returnerer `None`. Skriver du `liste = liste.append(3)`, kaster du lista og sitter igjen med `None`.
- Du tror svar == "ja" or "Ja" sammenligner begge svar == "ja" or "Ja" leses som (svar == "ja") or "Ja". En tekst som ikke er tom regnes som sann, så betingelsen er alltid sann. Hver side av or må være en hel sammenligning.
Øv på dette
- Herme: flett verdier med f-strenger
- Herme: tegn for tegn
- Sjekk: endrer upper() strengen?
- Øving: vask og del tekst
- Finn feilene: brukernavn-vaskeren
- Hvorfor må du skrive navn = navn.upper()?
- Sjekk: hva gjør krøllparentesene?
- Begrepssjekk: Strenger (tekst)
- Drill: Python-grunnsyntaks (øvet)
- Drill: Python-grunnsyntaks (utfordring)
- Drill: Python-grunnsyntaks — skriv koden
- Eksamenstrening S1: små algoritmer