TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang

Like dokumenter
TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger Utgave 3: Kap. 8

Python: Strenger 3. utgave: Kapittel 8

TDT4110 Informasjonsteknologi grunnkurs: Tema: Lister og tupler. - 3rd edition: Kapittel 7. Professor Alf Inge Wang

Python: Strenger. (Pluss mer om lister og tupler) TDT4110 IT Grunnkurs Professor Guttorm Sindre. 3. utgave: Kapittel 8 (og 7)

Læringsmål og pensum. if (be): else (not_to_be):

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

TDT4110 Informasjonsteknologi grunnkurs: Tema: Lister og tupler Kap 5: Egne moduler + et større eksempel Kap. 7

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. Algoritmeeffektivitet

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Unntak (exceptions) (Kap 6) Dictionaries (Kap. 9) Terje Rydland - IDI/NTNU

Python: Valg og betingelser. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

INF120: Oblig 3. Yngve Mardal Moe

Python: Lister og tupler Gaddis: Kapittel 7

Oppsummering fra sist

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak ( exceptions ) - 3rd edition: Kapittel 6. Professor Alf Inge Wang

Læringsmål og pensum. Inn- og utoperasjoner 21/10/16

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Læringsmål og pensum. v=nkiu9yen5nc

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

Læringsmål og pensum. Intro til returverdifunksjoner: Generering av tilfeldige tall 27/09/16

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon. Professor Alf Inge Wang

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Mål. Pensum. I større, kompliserte programmer er det viktig å organisere koden godt Modularisering: å gruppere relaterte funksjoner i moduler

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Python: Oppslagslister (dictionaries) og mengder 3. utgave: Kapittel 9

YouTube-kanal ITGK. Læringsmål og pensum

Læringsmål og pensum. Oversikt

IN1140 Ekstraoppgaver uke 3

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner. - 3rd edition: Kapittel Professor Alf Inge Wang

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

Læringsmål og pensum

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. Tekststrenger Læringsmål Skal kunne forstå og programmere med tekststrenger. Pensum Matlab, Chapter 7

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Øvingsforelesning 9 i Python (TDT4110)

Introduksjon til objektorientert programmering

INF1000 Behandling av tekster

TEKSTSTRENGER GRUNNLEGGENDE STRENGOPERASJONER. 2 TESTING, SØKING OG MANIPULERING AV TEKSTSTRENGER. 3 FORMATTERING. 5 BETINGEDE KONTROLLSTRUKTURER.

TDT4110 IT Grunnkurs Høst 2016

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Løse reelle problemer

TDT4110 IT Grunnkurs Høst 2016

Ta kontakt i pausen. Viktig at vi kommer i gang med dette arbeidet!

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:

Programmering Høst 2017

Øvingsforelesning 1 Python (TDT4110)

Læringsmål og pensum. Designe et program

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler Utgave 3: Kap

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Python: Filer og unntak Gaddis: Kapittel 6

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

AlgDat - Øvingsforelesning 1 Introduksjon til Python, lenkede lister og øving 1

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 3 Python (TDT4110)

MAT1030 Plenumsregning 1

Datastrukturer (kap. 8)

Høst Øving 5. 1 Teori. 2 Månedskalender. Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Øvingsforelesning 5 Python (TDT4110)

Filbehandling Tekstfiler

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

MAT1030 Diskret Matematikk

Pensum: Starting out with Python

Et lite oppdrag i bakgrunnen

Dictionary er et objekt som lagrer en samling av data. Minner litt om lister men har klare forskjeller:

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

TDT4110 Informasjonsteknologi, grunnkurs

Designe et program. TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Mål.

Hvordan løse problemer med programmering?

Objektorientert programmering i Python

Fakultet for informasjonsteknologi, Institutt for datateknikk og informasjonsvitenskap

PGZ - Hangman Ekspert Python Lærerveiledning

Beskrivelse av programmeringsspråket Simpila INF Kompilatorteknikk Våren 2012

Notat 2, ST januar 2005

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

I denne oppgaven skal vi gjøre enkle operasjoner på tekst, som å endre størrelsen på bokstavene og telle ord.

Betinget eksekvering og logiske tester i shell

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

TDT4110 IT Grunnkurs Høst 2015

TDT4110 Informasjonsteknologi grunnkurs: Uke 48 Oppsummering/Spørretime. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output. Professor Alf Inge Wang

Transkript:

1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger - 3rd edition: Kapittel 8 Professor Alf Inge Wang

2 Læringsmål og pensum Mål Lære om Pensum Grunnleggende operasjoner på strenger Å skive/slice strenger Teste, søke i og manipulere strenger Starting out with Python: Chapter 8 More About Strings (3rd edition)

3 Tekststrenger (string) I Python kan en tekststreng sees på som en liste av tegn og bokstaver med fast lengde. En viktig forskjell på liste og tekststreng er at tekststreng ikke kan endre type eller deler av innhold. På samme måte som for lister, kan man få ut deler av strengen ved å bruke indeks og skiving (slice): tekst = Dette er en test tekst[0] # Gir D tekst[14] # Gir s

4 Grunnleggende strengoperasjoner Kapittel 8.1

5 Grunnleggende strengoperasjoner Mange slags programmer utfører operasjoner på strenger I Python finnes mange verktøy for å undersøke og manipulere strenger Strenger er sekvenser, så mange av verktøyene som fungerer med andre sekvenser fungerer med strenger

6 Tilgang til enkelttegn i en streng For å få tilgang til de enkelte tegn i en streng Bruk en for-løkke Format: for character in string: Nyttig når man skal iterere over en hel streng, eksempelvis for å telle antall forekomster av et visst tegn i den Bruk indeksering Hvert tegn har en indeks som spesifiserer dens plassering i strengen, og begynner med 0 Format: character = my_string[i] Lag funksjon telle_tegn som sjekker antall ganger et tegn befinner seg i en tekst. kode: sjekk_streng.py

7 Iterasjon over strengen Juliet

8 Tilgang til enkelttegn i en streng (forts.) my_string = Roses are red ch = my_string[6]

9 Tilgang til enkelttegn i en streng (forts.) IndexError-exception utløses hvis: Du prøver å bruke en indeks som er utenfor strengens rekkevidde Dette skjer nok hvis du forsøker å iterere videre når strengen slutter Funksjonen len(string) kan brukes til å finne strengens lengde på samme måte som for lister Snedig for å hindre at man itererer forbi strengens slutt

10 Konkatinering av strenger

11 Konkatinering av strenger Konkatinering: å tilføye en streng ved slutten av en annen Bruk operatoren + til å lage en streng som er en kombinasjon av dens operander Den utvidede tilordningsoperatoren += kan også brukes til å konkatinere strenger Operanden på venstre side av operatoren += må være en eksisterende variabel; i motsatt tilfelle utløses en exception

12 Tekststrenger og konkatenering (sammensetn) Men man kan sette sammen flere tekststrenger ved å bruke + i mellom tekststrengene: tekst = Dette + er + en + test # Gir Dette er en test Kan også sette sammen tekststrenger fra variabler: nytekst = Her kommer: +tekst # Gir Her kommer: Dette er en test Hvis variabler med tall skal settes inn en streng, bruk str(variabel) som gjør om variabel til tekststreng: tekst = Tallet er: +str(tall)

13 Strenger er ikke-muterbare Når de først er laget, kan de ikke endres Konkatinering endrer ikke faktisk noen av strengene, men lager tvert i mot en ny streng, og tilordner denne til en av de allerede eksisterende variablene Man kan ikke bruke et uttrykk som dette: string[index] = new_character tekst[3] = Klare # Gir feilmelding!!! Dette vil gi en feilmelding

14 Strenger er ikke-muterbare (forts.) Tekststrengen Carmen blir tilordnet name: Tekststrengen Carmen Brown blir tilordnet name. Merk! Et nytt tekst objekt blir laget!!! NY!

15 Oppgave: finn tegn i tekst Skriv Python-koden til funksjonen skriv_tegn_indeks, som tar inn en parameterne tekst og tegn, og skriver ut alle indeksene der tegn befinner seg i strengen tekst. kode: skriv_tegn_indeks.py

16 Slicing (skiving) av strenger Kapittel 8.2

17 Slicing av strenger (som for lister) Slice: spennvidde av enheter tatt fra en strengsekvens, kjent som en substring Format: string[start : end : steg] Uttrykket vil returnere en streng som har en kopi av tegnene fra start til, men ikke medregnet end Hvis start er uspesifisert, antas indeks 0 Hvis end er uspesifisert, antas indeks len(string) tekst = Dette er en test tekst[0:3] # Gir Det. Samme som tekst[:3] tekst[12:16] # Gir test. Samme som tekst[12:] tekst[::2] # Gir Dtee nts. (annenhvert tegn)

18 Testing, søking og manipulering av strenger Kapittel 8.3

19 Testing, søking og manipulering av strenger Du kan bruke operatoren in til å avgjøre om en streng inneholdes av en annen streng (samme som lister) Generelt format: streng1 in streng2 streng1 og streng2 kan være string literals eller variable som refererer til strenger Tilsvarende kan du bruke operatoren not in til å avgjøre om en streng ikke er inneholdt av en annen streng

20 Strengmetoder Strenger i Python har mange metoder, inndelt på typer av operasjoner Generelt format: mystring.method(arguments) Noen metoder tester en streng for spesifikke karaktertrekk Disse metodene er såkalte boolske metoder som returnerer enten True hvis betingelsen er sann ellers False.

21 Noen strengteste-metoder:

22 Strengmetoder (forts.) Noen metoder returnerer en kopi av en streng som det er gjort forandringer på De simulerer at strenger er muterbare Sammenlikning av strenger foregår case-sensitivt Store bokstaver skilles fra små bokstaver lower og upper kan brukes til å gjøre sammenlikning av strenger uten å ta hensyn til case

kode: strenger2.py 23 Strengmodifiserings-metoder:

24 Sammenlikningsmetoder Programmer trenger ofte å søke etter substrenger Flere metoder finnes for å gjøre dette: endswith(substring): sjekker om en streng slutter med substring Returnerer True eller False startswith(substring): sjekker om en streng begynner med substring Returnerer True eller False

25 Søk- og erstatt-metoder Flere metoder finnes (forts.) find(substring): leter etter substring i strengen Returnerer den laveste indeksen av substrengen, eller -1 om substrengen ikke finnes i strengen replace(substring,new_string): Returnerer en kopi av strengen hvor alle forekomster av substring er erstattet med new_string

26 kode: strenger2.py Oversikt over søk- og erstattmetoder

27 Å splitte opp en streng Metoden split: returnerer en liste som inneholder ordene i strengen Bruker space (mellomrom) som skilletegn som standard Kan bruke et annet skilletegn gjennom å sende det som argument til metoden split Eks: tekst = Dette er en test print(tekst.split()) Gir: ['Dette', 'er', 'en', 'test']

28 Oppgave: overskrift Lag funksjonen overskrift, som tar inn en parameteren tekst og returnerer samme tekststreng der alle ordene starter med stor forbokstav. Benytt: split(), upper(), for-løkke kode: overskrift.py

29 Oppsummering Dette kapittelet dekket: Operasjoner på strenger, som Metoder for å iterere gjennom strenger Operatorer for repetisjon og konkatinering Strenger som ikke-muterbare objekter Å slice og teste strenger Metoder for strenger Å splitte opp strenger