Python: Strenger 3. utgave: Kapittel 8

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

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

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

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

Python: Lister og tupler Gaddis: Kapittel 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

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

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

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.

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

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

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

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

INF120: Oblig 3. Yngve Mardal Moe

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

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

Læringsmål og pensum. Algoritmeeffektivitet

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

Oppsummering fra sist

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

Python: Filer og unntak Gaddis: Kapittel 6

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

Repetisjon, del 2. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

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

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.

Objektorientert programmering i Python

Introduksjon til objektorientert programmering

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

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

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

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2016

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.

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

Repetisjon, del 1. TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum. Oversikt

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 IT Grunnkurs Høst 2016

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

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

IN1140 Ekstraoppgaver uke 3

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

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

Opphavsrett: Forfatter og Stiftelsen TISIP

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

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

Løse reelle problemer

Øvingsforelesning 7 i Python (TDT4110)

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

Læringsmål uke 7. Introduksjon til objektorientert programmering. Paradigmet objektorientering. Objektreferanser. INF1001 Høst 2016 Uke 7

Øvingsforelesning 1 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110)

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

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

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

Python: Funksjoner og moduler Kapittel

Øvingsforelesning 9 i Python (TDT4110)

Læringsmål og pensum. v=nkiu9yen5nc

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

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

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning i Python (TDT4110)

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Python: Filer og unntak Gaddis: Kapittel 6

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

Datastrukturer (kap. 8)

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

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

Løsningsforslag til eksamen i INF1000

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

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

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

Pensum: Starting out with Python

Læringsmål og pensum

Notat 2, ST januar 2005

Innhold uke 8. Objekter: Bruk og intern organisering. Beskjeder: Oblig 1 6. Beskjeder: Oblig 7 (og 8)

Løse reelle problemer

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

Objektorientert programmering i Python. Resten av semesteret. Innhold uke 9 Mer komplekse strukturer. Referanser og objekter, inkl Mentimeter spørsmål

MAT1030 Plenumsregning 1

TDT4110 IT Grunnkurs Høst 2014

Python: Variable og beregninger, innlesing fra tastatur utskrift til skjerm. TDT4110 IT Grunnkurs Professor Guttorm Sindre

INF1000 (Uke 6) Mer om metoder, tekster

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Repetisjon Novice Videregående Python PDF

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

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

Programmering Høst 2017

MAT1030 Diskret Matematikk

IN1140, H2018 gruppetime oppgaver Introduksjon til Tekst i Python

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

INF1000 Behandling av tekster

Løse reelle problemer

Et lite oppdrag i bakgrunnen

UNIVERSITETET I OSLO

Transkript:

Python: Strenger 3. utgave: Kapittel 8 TDT4110 IT Grunnkurs Professor Guttorm Sindre

Læringsmål og pensum Mål Forstå Hva strenger er Grunnleggende operasjoner på strenger Indeksering av tegn i strenger, inkl. slicing Kjenne til noen vanlige funksjoner og metoder på strenger Kunne løse praktiske programmeringsproblemer med strenger Pensum Starting out with Python: Chapter 8 More About Strings (3rd edition)

Tekststrenger (string) HVORFOR trenger vi dette? Menneskelig informasjon: tekst spiller en sentral rolle Veldig mange nyttige programmer behandler tekst Tekstbehandling, weblesere Journalistikk, publisering Saksbehandlingssystemer Teknisk informasjon, brukerveiledninger, I Python kan en tekststreng sees på som en liste av tegn og bokstaver med fast lengde Men i motsetning til liste er den ikke muterbar 3

Grunnleggende strengoperasjoner Kapittel 8.1

Grunnleggende strengoperasjoner I Python finnes mange funksjoner / metoder for å undersøke og manipulere strenger Strenger er sekvenser, Mange funksjoner/metoder tilsvarer de for lister og tupler 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 tekst[-1] # Gir t, som: tekst[len(tekst)-1] 5

Oppgave: loddrett tekst Lag en funksjon som får inn en tekststreng som parameter og skriver ut teksten loddrett Ekstra hvis fort ferdig: skriv også ut teksten baklengs Hint: For å få tilgang til enkelttegn i en streng For-løkke: for character in string: Indeksering av enkelttegn: På samme måte som enkeltelementer i lister Indeks begynner med 0, viser tegnets plassering i strengen Format: character = my_string[i] For å finne en strengs lengde: len(string) (IndexError: du har brukt en indeks utenfor strengen) 6

Konkatenering av strenger Konkatenering: sette sammen to strenger til en Bruk operatoren +, f.eks. navn = fornavn + etternavn evt. += hvis du har en variabel hvor du samler opp tekst F.eks. setning += nytt_ord Hvis du skal sette et tall inn i en streng str( )-funksjonen konverterer tall til tekst F.eks. respons = Du har + str(saldo) + kroner på kontoen 7

Strenger er ikke-muterbare Når de først er laget, kan de ikke endres Samme som for tupler (mens lister er muterbare) Uttrykk som kan se ut som endring lager egentlig en ny streng tilordner variabelen til denne i stedet setning += nytt_ord navn = navn.replace( å, aa ) #bytter ut alle å med aa setning = setning.upper( ) #alt blir store bokstaver Forsøk på å endre tegn inni en streng vil gi feilmelding: setning[i] = w tekst[3] = Klare 8

Slicing (skiving) av strenger Kapittel 8.2 / 9.2

Slicing av strenger (a la lister) Slice: en substreng tatt fra en streng Samme prinsipp og syntaks som slicing av lister Format: string[start : end : steg] kopi av tegnene fra start til, men ikke med, end Hvis start er uspesifisert, antas indeks 0 Hvis end er uspesifisert, antas indeks len(string) Hvis steg er uspesifisert (mest vanlig), antas 1 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) 10

Testing, søking og manipulering av strenger Kapittel 8.3 / 9.3

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 Kan f.eks brukes som betingelse i if- og while-setninger Fins også en motsatt operator not in streng.index(tegn) finne hvor i en streng et tegn er 12

Strengmetoder Strenger i Python har mange ferdige metoder Generelt format: mystring.method(arguments) Testemetoder Betingelser for hele strenger Returnerer True hvis betingelsen er sann ellers False. Modifiseringsmetoder: Kopier av strengene hvor noe kan være endret Søk- og erstatt-metoder Leter etter tegn / delstrenger i strenger 13

Testemetoder:

Modifiseringsmetoder:

Søk- og erstattmetoder

Å splitte opp en streng Metoden split( ) Returnerer ei liste som inneholder ordene i strengen Bruker space (mellomrom) som default skilletegn Kan gi inn annet skilletegn som argument Eks: tekst = Dette er en test print(tekst.split()) print(tekst.split( e )) # Gir: ['Dette', 'er', 'en', 'test'] # Gir: [ D, tt,, r, n t, st ] 17

Eksempel: omformattering av navn Inn: Fnavn (Mnavn) Enavn, returner Enavn, Fnavn (Mnavn) Med slicing: Med split( ) def enavn_fnavn(navn): i = navn.rindex(' ') fornavn=navn[:i] etternavn=navn[i+1:] return (etternavn + ', ' + fornavn) def enavn_fnavn(navn): liste=navn.split( ) siste=len(liste)-1 etternavn=liste[siste] fornavn=liste[0] for i in range(1,siste-1): fornavn+=liste[i] return (etternavn + ', ' + fornavn)

Oppgave: omgjøre navn Lag en funksjon fnavn_enavn(navn) Inn: Etternavn, Fornavn Evt Mellomnavn Returner: Fornavn Evt Mellomnavn Etternavn Velg selv om du vil bruke slice eller split Ekstraoppgave hvis raskt ferdig: lignende funksjon, men lag initial(er) i stedet for mellomnavn Inn: Enavn, Fnavn Evt Mellom, Retur: Fnavn E.M. Enavn kode: navn_v0.py løsn: navn_v1.py 19

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