Strenger
En streng er først og fremst en sekvens av enkelttegn, og strengen tolkes som tekst selv om den består av bare tall. I Python er det mange innebygde funksjoner og metoder som kan brukes på strenger. I denne artikkelen skal vi konsentrere oss om ulike måter å søke gjennom strenger på. Mens du leser, er det lurt om du hele tida prøver å skrive kodene i din egen editor og kjører programmene så du ser hva du får ut.
Vi må huske på at Python i likhet med all annen programvare ikke kan forstå innhold før vi tilordner noe en mening. Med det mener vi at for eksempel setningen "Det ligger 5 terninger på bordet" ikke har noen iboende betydning for programmet annet enn at det er en lang rekke med tegn. For eksempel er 5-tallet i setningen ikke mengden 5 for programmet, men kun et tegn. Vi skal bruke denne setningen for å illustrere en del av metodene og funksjonene vi kan bruke på strenger, som kan være nyttige i matematikken.
Når vi skal skrive inn tekst i Python, bruker vi tegnet " på begge sider, slik:
Oppgave
Beskriv hva som skjer i kommandolinja over.
Vi kan hente ut bestemte tegn fra tekststrengen vår ved å bruke indeks, det vil si at vi henter ut det første tegnet ved å skrive setning[0]
. Tegn nummer 4, setning[3]
, er et mellomrom – det er viktig å huske på at også mellomrommene er tegn. Husk også at du kan telle deg bakover: Vil du finne det siste tegnet i en streng, bruker du indeksen –1
.
Oppgave
Hva blir skrevet ut hvis du kjører koden under?
Legg merke til at setning[11]
er det samme som "5", altså et tegn og ikke tallet 5. Dette skjer ikke bare med tall som er skrevet inn som en del av en tekststreng, men også med tall som er gitt som input av en bruker. Som vi har vist tidligere, må vi fortelle datamaskinen at dette er et tall hvis vi skal regne videre med det. Du er kanskje vant til å bruke float(). Vi kan også bruke kommandoen int(). Int står for integer, som er det engelske ordet for heltall. Prøv koden under, og sjekk hva som er forskjellen.
Vi kan finne ut hvor mange tegn det er i strengen vår, ved hjelp av kommandoen len(setning)
. Dette kan være nyttig for eksempel hvis man skal kjøre en løkke som skal sjekke gjennom alle tegnene. Her er det viktig å huske på at et mellomrom også er et tegn. Vår setning har 33 tegn. Det kan vi finne ut hvis vi skriver print(len(setning))
. Prøv!
Noen ganger er det nyttig for oss å kunne sjekke om en tekststreng (eller en annen datatype som lister) inneholder bestemte element. Da bruker vi enten in
eller not in
. Vi kan for eksempel sjekke om gitte bokstaver finnes i setningen vår:
Vi kan bruke in
og not in
for å telle hvor mange det er av de ulike bokstavene i setningen. Det kan vi gjøre ved først å plukke ut bokstavene i setningen, for så å gå gjennom setningen en gang til og telle hvor mange vi har av hver.
Av og til kan det være hensiktsmessig å gjøre om en tekststreng til ei liste. Dette gjør vi ved hjelp av kommandoen list(setning). Hvis vi lager ei liste av setningen vår, får vi ei liste med 33 elementer, alle sammen er tegn. Kjør programmet under, og se hvordan resultatet blir!
Over har vi lagd ei liste av alle elementene i tekststrengen "Det ligger 5 terninger på bordet", men vi ser jo at dette er 6 ulike ord. Det kan være nyttig å få ei liste der hvert ord har sin egen plass i lista.
Metoden "split" deler opp tekststrengen ved mellomrommene og legger da hvert ord som et element i ei liste. Prøv koden nedenfor, og forklar hva som skjer på linjene.
Noen ganger får vi input i programmet vårt hvor elementene er skilt av andre tegn enn mellomrom. Vi kan bruke split-kommandoen her også, vi må bare huske på å fortelle programmet hvilket tegn som skiller de ulike elementene ved å skrive det inn i parentesen til kommandoen. Dersom skilletegnet vårt er et komma, får vi kommandoen split(",")
. Legg merke til at vi må ha anførselstegn rundt kommaet.
I programmet nedenfor skal vi hente inn en rekke med tall fra brukeren. Kjør programmet, og forklar hva som skjer.