VIKTIG!
Minst 5 av 6 oppgaver må løses for å få godkjent øvingen. Husk å sjekk at alle deloppgaver er løst.
Dersom ikke annet er oppgitt skal koden for hver programmeringsoppgave bestå av èn celle med hele programkoder.
Celler med "In [ ]:" foran er kode-celler som kan kjøre kode. Ellers er cellene tekstbokser. En celle (både tekst og kode) kjøres hvis du markerer den og trykker SHIFT+ENTER. Se guide for utfyllende informasjon om hvordan man bruker jupyter notebooks.
Last ned øvingen fra jupyter til din pc som .pdf-fil (se guide) og last den opp i Blackboard for å levere den.
Skriv et program som utfører følgende pseudokode:
## a) svar
Li = list([]) # Initier en tom liste Li
antall = 0 # Initier counter for antall tall
while len(Li) <= 9: # Kjør koden under så lenge det er mindre enn eller 9 tall
nyttTall = int(input('Skriv et tall (0-100): ')) # Ta inn et tall fra bruker
Li.append(nyttTall) # Legg tallet til i lista
antall += 1 # Øk counter med 1
print('Du skrev tallene: ', Li)
Li.sort() # Sorter lista (stigende)
print('Li sortert:', Li)
Lu = Li[-3:] # Hent de siste tre tallene i den sorterte lista
Li = Li[0:-3] # Hent alle tallene i lista untatt de tre siste
print('Li:', Li)
print('Lu:', Lu)
for num in range(len(Li)): # Gå gjennom Li for å plusse 10 på hvert tall
Li[num] += 10
print('Li +10:', Li)
for j in Lu: # Ytre loop: gå gjennom Lu
for i in Li: #Indre loop: for hvert tall i Lu, gå gjennom alle tallene i Li
if i >= j: # Sjekk om tallet i Li er større enn tallet i Lu
Lu.append(i) # Legg Li-tallet til Lu hvis det var større
Li.remove(i) # Fjern Li-tallet fra Li hvis det var større
print('Lu med høyeste fra Li +10:', Lu)
print('Li uten tall som var høyere enn Lu: ', Li)
gjLu = sum(Lu) / float(len(Lu)) # Finn gjennomsnittet av Lu
maxLi = max(Li) # Finn maks verdi i Li
minLi = min(Li) # Finn min verdi i Li
print('Gjennomsnittet av Lu er:', gjLu)
print('Det minste tallet i Li er: ', minLi)
print('Det høyeste tallet i Li er: ', maxLi)
Uten å kjøre koden: forklar med én setning hva koden under gjør gitt at a = [1,2,3,4,5,6,7,8,9,10].
import random
a = [1,2,3,4,5,6,7,8,9,10]
b =[0]*len(a)
for c in range(len(a)):
d = random.randint(0,len(a)-1)
b[c] = a[d]
del a[d] #del fjerner et bestemt element i listen, her fjerner det a[d].
print(b)
Koden lager en liste med 0'ere, med lengde lik liste a, og bytter ut neste 0'er med et nytt tilfeldig tall mellom 0 og lengden til a inn i listen for hver runde.
Gitt listen myList = [1,2,467,5,442,3,54,578,6,43,32,53,668].
Bruk én linje med kode for å legge elementene 442,3, 54, 578 og 6 fra myList i en ny liste listSlice. Print gjennomsnittet av listSlice. For å regne ut gjennomsnittet skal du bruke biblioteket NumPy. NumPy er et omfattende, praktisk bibliotek for matematiske operasjoner, fra grunnleggende ting som mean til komplekse matriseoperasjoner. Sjekk brukerguide her: https://docs.scipy.org/doc/numpy-1.15.1/user/index.html#user. Konvensjonen for å importere numpy er import numpy as np.
## c svar
import numpy as np
myList = [1,2,467,5,442,3,54,578,6,43,32,53,668] # Opprinnelig liste
listSlice = myList[4:9] # Hent aktuelle verdier
avg = np.mean(listSlice) # Bruker numpy for å regne ut gjsnitt
print('Gjennomsnittet av', listSlice, 'er:', avg) # Printer gjennomsnitt
Du blir bedt om å lage et program som lagrer informasjon om været som har vært i løpet av én uke. Programmet skal lagre informajson om regnmengde(mm), vind(styrke, m/s) og temperatur(grader celcius) for hver av dagene. Programmet skal spørre brukeren om å legge inn informasjonen ved hjelp av en for-løkke som går gjennom alle dagene.
Skriv programmet som beskrevet over.
## a) svar
days = ['Man','Tirs','Ons','Tor','Fre','Lør','Søn']
week = {} # Initierer tom dict
for d in days: # Itererer over dagene i uka
print('Været på', d,':') # Viser hvilken dag man er kommet til
regn_ny = int(input('Hvor mange mm regn? '))
vind_ny = int(input('Hvor mange m/s vind? '))
temp_ny = int(input('Hvor mange grader celcius? \n'))
week[d] = regn_ny, vind_ny, temp_ny # Legger informasjonen for dagen i en ny key
print(week)
Hent ut informasjonen om regn, vind og temperatur i hver sin liste, regn ut og print gjennomsnittet for alle tre listene med en beskrivende tekst.
## b) svar
import numpy as np
# Initierer lister for informasjonen som skal hentes fra week
regn = []
vind = []
temp = []
for d in week: # Itererer over key'ene (dagene) i week
regn.append(week[d][0]) # For hver dag, legg til informasjon om regn (første tallet i value'ene)
vind.append(week[d][1]) # For hver dag, legg til informasjon om vind (andre tallet i value'ene)
temp.append(week[d][2]) # For hver dag, legg til informasjon om temperatur (tredje tallet i value'ene)
print('Gjennomsnittlig mm regn var: ',np.mean(regn))
print('Gjennomsnittlig m/s vind var: ',np.mean(vind))
print('Gjennomsnittlig temperatur var: ',np.mean(temp))
Bruk innebygde funksjoner til å finne dagene i uka som hadde enten i) vind over 10 m/s, ii) temperatur lavere enn 5c eller iii) mer enn 1mm regn. Legg disse dagene i en liste og print dem ut til konsoll med en beskrivende tekst.
### c) svar
dager_vind = []
dager_temp = []
dager_regn = []
# Finner dager med >10 m/s vind
for key,value in week.items():
if value[1] > 10:
dager_vind.append(key)
elif value[2] < 5:
dager_temp.append(key)
elif value[0] > 1:
dager_regn.append(key)
else:
print('Bare fint vær jo!')
print('Dagene med mer enn 10 m/s vind var:', dager_vind)
print('Dagene med temperatur lavere enn 5c var:', dager_temp)
print('Dagene med mer enn 1 mm regn var:', dager_regn)
For og while
En entomolog skal skrive et program som lagrer informasjonen om lengden på larver fra en insektsart han skal forske på. Han trenger 100 målinger. Han vil legge inn denne informasjonen daglig, som en rekke med tall separert med komma, og hver dag få beskjed om hvor mange målinger som mangler før han har nok. Når han har nok målinger skal han få beskjed om det, listen med målinger skal skrives ut til konsoll og programmet avsluttes.
Hjelp entomologen å skrive programmet.
Tips: Her kan man generere en liste med tilfeldige tall (random-biblioteket) av ulike lengder for å teste at programmet fungerer.
antall = 0 # Initierer counter for antall insekter
insekter = list([]) # Initierer tom liste som lengdene skal legges inn i
maal = 100 # Antallet insekter som skal måles totalt
while antall != maal: # Sjekker om antallet er likt målet
maaling = input('Målinger (separert med komma): ').split(',') # Tar inn lengder, kan være flere tall og separeres med komma
for ins in maaling: # Loop for å legge lengdene inn i lista
insekter.append(ins)
antall = len(insekter) # Sjekker hvor mange målinger som er lagt inn
if antall > maal:
print('Du har målt ', antall, 'insekter, så du har nådd målet og har ', antall-maal, 'ekstra målinger.')
elif antall == maal:
print('Du har målt ', antall, 'insekter, så du har nådd målet!')
else:
print('Nå har du målt', antall, 'insekter. Du mangler', maal-antall, '.')
Nøstede for-løkker
En løpetrener spør deg om å lage et program som tar tiden løperne bruker på en distanse. Fra programmet starter til det slutter skal det telles antall minutter, sekunder og tideler. Programmet skal slutte når brukeren trykker på "stopp" (i jupyter er det knappen med et stort kvadrat på verktøylinja, i et IDE er det CTRL+C). Tiden skal så printes til konsoll i formatet "min:sek.hundredel", så husk å fullfør print-setningen til slutt.
Til hjelp er kontrollstrukturen for å stoppe tidtakingen allerede skrevet.
Tips: For å få tidtakeren til å vente med å telle videre før det er gått ett sekund/en tidel, slik at tiden blir riktig, kan "time" biblioteket være nyttig: time.sleep(secs)-funksjonen gjør at utførelsen at programmet stopper i det antallet sekunder du angir i parentesene (secs). For eksempel gjør følgende kode at for-loopen venter i ett sekund hver gang før den skal printe sekundet:
for sekund in range (0,60,1):
time.sleep(1)
print(sekund)
import time
try:
while True:
### Skriv koden din under denne linjen ###
for minutt in range(0,60,1):
for sek in range(0,60,1):
time.sleep(1)
for tidel in range(0,10,1):
time.sleep(0.01)
tidel
### Skriv koden din over denne linjen ###
except KeyboardInterrupt:
print('Tiden var: '+str(minutt)+':'+str(sek)+'.'+str(tidel))
I Test-deg-selv uke 36, oppgave 1.2, fikk du i oppgave å skrive deler av en formel i python-kode. Dette var formelen for standardavvik. Standarddavvik er gjennomsnittlig avvik fra gjennomsnittet. Det som manglet i den forrige versjonen av formelen var beregningen av summen av alle avvikene, siden x bare var ett tall.
Hele formelen er:
stddev = math.sqrt((sum(x-y)**2))/n-1
I denne oppgaven skal du beregne standardavviket for lista "data" gitt under, og pseudokoden gitt over.
data = 31, 31, 34, 6, 32, 25, 14, 25, 21, 42, 33, 32, 44, 20, 48, 31, 23, 23, 8, 3, 36, 10, 48, 43, 26, 8, 35, 40, 27, 4, 24, 5, 29, 15, 10, 29, 11, 15, 47, 29, 26, 23, 34, 38, 9, 42, 27, 13, 15, 9
Pseudokoden for hele beregningen er som følger:
### Oppgave 5 svar
import math
import numpy as np
liste = [31, 31, 34, 6, 32, 25, 14, 25, 21, 42, 33, 32, 44, 20, 48, 31, 23, 23, 8, 3, 36, 10, 48, 43, 26, 8, 35, 40, 27,
4, 24, 5, 29, 15, 10, 29, 11, 15, 47, 29, 26, 23, 34, 38, 9, 42, 27, 13, 15, 9]
y = np.mean(liste)
n = len(liste)
avvik = []
for x in liste:
a = ((x-y)**2)
avvik.append(a)
total = np.sum(avvik)
totalOverN = total/(n-1)
stddev = math.sqrt(totalOverN)
print('standardavviket er: ', format(stddev, '.3f'))
Skriv et program som tar inn teksten under som én lang string-variabel.
Tips: mellomrom kan definere slutten av et ord, og punktum kan definere slutten av en setning.
tekst = Ærede President, Folkets representanter. Jeg hilser Stortinget velkommen til ansvarsfullt arbeid og ønsker at det må bli til gagn for fedrelandet. Den 17. januar ble regjeringen utvidet med partiet Venstre. Til grunn for utvidelsen ligger den politiske plattformen partiene ble enige om på Jeløya. Plattformen beskriver regjeringens mål om å skape et bærekraftig velferdssamfunn. Den beskriver også seks utfordringer for Norge som regjeringen vil arbeide med for å nå dette målet. Den første utfordringen er å omstille norsk økonomi for å skape nye arbeidsplasser og flere ben å stå på. Regjeringen vil bygge ut veier og jernbane for å fremme omstilling og vekst. Ny kunnskap styrker evnen til vekst. Regjeringen vil legge frem en revidert langtidsplan for forskning og høyere utdanning. For at ingen skal gå ut på dato, må vi gjøre mer for å oppdatere vår kompetanse. Regjeringen vil fremme tiltak for å la flere få mer opplæring mens de er i jobb. Den andre utfordringen er å oppfylle Norges klimaforpliktelser, slik at vi tar vår del av ansvaret. Sommeren 2018 kom med varmerekorder og tørke. Et mer ekstremt vær har blitt mer vanlig. Det er avgjørende at verden når sine klimamål. Norge skal oppfylle våre utslippsmål i samarbeid med EU. Parisavtalen er vårt viktigste internasjonale rammeverk. I desember vedtas kjøreregler for hvordan landene skal følge opp avtalen. Norge skal være pådriver. Bevaring av verdens regnskoger er avgjørende for å håndtere klimautfordringen. Regjeringen vil styrke dette viktige arbeidet. Regjeringen vil føre en politikk som skaper grønn vekst og nye grønne jobber. Regjeringen vil legge til rette for fortsatt fornyelse av bilparken. Den tredje utfordringen er å skape et inkluderende arbeidsliv. Regjeringens mål er et samfunn med små forskjeller, der alle kan delta og der alle gis muligheten til å bidra. Det største skillet i Norge går mellom de som er i jobb og de som står utenfor arbeidslivet. Flere må gis muligheten til å forsørge seg selv og sin familie gjennom lønnet arbeid. Den gode utviklingen i arbeidsmarkedet gir en god anledning til ekstra innsats. Regjeringen inviterer arbeidsgivere med på dugnad for å ansette flere som i dag står utenfor på grunn av nedsatt funksjonsevne eller hull i CVen. Den fjerde utfordringen er å sikre gode velferdsordninger i en tid hvor andelen eldre øker. Regjeringen vil gjennomføre reformen ”Leve hele livet”. Reformen skal gi eldre og deres pårørende økt valgfrihet, livskvalitet og trygghet. Regjeringen vil videreføre prøveordningen med statlig finansiert eldreomsorg. Tilbudet til utsatte mennesker i vårt samfunn, som rusavhengige og mennesker med psykiske lidelser, skal styrkes. Et offentlig utvalg skal utrede en rusreform. Målet er at brukerne får riktig og rask hjelp uten å risikere straffeforfølgning. Regjeringen tar sikte på å legge frem en opptrappingsplan for barn og unges psykiske helse i løpet av høsten 2018 og en ny nasjonal helse- og sykehusplan i 2019. Regjeringen vil legge frem en folkehelsemelding hvor ensomhet blir et viktig tema. Den femte utfordringen er å redusere fattigdom. Arbeid er den beste måten den enkelte kan øke sin inntekt og velferd på. Regjeringen vil derfor forsterke arbeidslinjen. Økt satsing på kompetanse, inkludering og integrering skal støtte opp om den enkeltes innsats for å komme i jobb. Regjeringen vil gi barn som vokser opp i familier med lav inntekt bedre muligheter for utvikling og deltakelse i fritidsaktiviteter, barnehage og SFO, slik at de lettere kan stå på egne ben når de blir voksne. Regjeringen arbeider med en stortingsmelding om sosial bærekraft og hvordan vi reduserer forskjeller. Den sjette utfordringen er å gjennomføre et integreringsløft. Regjeringens mål er at innvandrere skal være en del av store og små fellesskap i det norske samfunnet. Regjeringen vil forbedre norskopplæringen og introduksjonsprogrammet for flyktninger for at flere raskere kan gå over til ordinært arbeid og utdanning. Deltagelse i idrett, kultur og frivillighet gir kompetanse og erfaring som kan tas med inn i arbeidslivet. For bærekraften i våre velferdsordninger er det sentralt at flere kan forsørge seg selv og delta i samfunnet. Derfor er det også nødvendig å regulere innvandringen. Den internasjonale migrasjonen er uforutsigbar. Vi må ha høy beredskap for raske skifter. Regjeringen vil føre en restriktiv, rettssikker og ansvarlig innvandringspolitikk. En viktig prioritet for regjeringen er å skape et tryggere samfunn. Vi må hindre at barn utsettes for vold og overgrep. Regjeringen vil styrke kompetansen i tjenestene, slik at vold og overgrep blir avdekket tidligere. Regjeringens arbeid med nærpolitireformen fortsetter. Reformen bedrer evnen til å hindre kriminalitet og verne om ofrene. For å kunne beskytte innbyggerne i krisesituasjoner, trengs det flere politifolk med god trening og rask tilgang på riktig og godt utstyr, biler og helikoptre. Regjeringen vil derfor styrke beredskapen og forebygge bedre. Kriminalitet knyttet til IKT krever ny kompetanse i politiet og samordnet innsats. Ny sikkerhetslov vil i større grad stille krav som verner om samfunnets grunnleggende funksjoner og befolkningens grunnleggende sikkerhet. Det nye sikkerhetspolitiske landskapet krever et troverdig forsvar. Regjeringen vil styrke Norges forsvarsevne gjennom oppfølging av langtidsplanen for forsvarssektoren og starte arbeidet med neste langtidsplan. NATOs kollektive garanti forblir bærebjelken i sikkerhetspolitikken. Samtidig styrkes samarbeidet med USA, Storbritannia, Tyskland og i Norden. Verden rundt oss preges av økende usikkerhet. Den liberale verdensorden, demokratiske institusjoner og troen på fri handel er under press. Vi må hegne om de verdiene vi står for. Brexit vil påvirke også Norge. Regjeringen vil arbeide for et fortsatt velfungerende EØS-samarbeid og videreføre vårt nære samarbeid med Storbritannia. Regjeringen vil øke forståelsen for at bærekraftig bruk av havet gir både bedre miljø og høyere verdiskaping. Det internasjonale havpanelet er et viktig initiativ. Regjeringen vil ta nye initiativ på en rekke områder. Sammen støtter initiativene opp om målet om et bærekraftig velferdssamfunn og arbeidet for å nå FNs bærekraftsmål. Jeg ber Gud velsigne Stortingets arbeid, og erklærer Norges 163. storting for åpnet.
tekst = 'Ærede President, Folkets representanter. Jeg hilser Stortinget velkommen til ansvarsfullt arbeid og ønsker at det må bli til gagn for fedrelandet. Den 17. januar ble regjeringen utvidet med partiet Venstre. Til grunn for utvidelsen ligger den politiske plattformen partiene ble enige om på Jeløya. Plattformen beskriver regjeringens mål om å skape et bærekraftig velferdssamfunn. Den beskriver også seks utfordringer for Norge som regjeringen vil arbeide med for å nå dette målet. Den første utfordringen er å omstille norsk økonomi for å skape nye arbeidsplasser og flere ben å stå på. Regjeringen vil bygge ut veier og jernbane for å fremme omstilling og vekst. Ny kunnskap styrker evnen til vekst. Regjeringen vil legge frem en revidert langtidsplan for forskning og høyere utdanning. For at ingen skal gå ut på dato, må vi gjøre mer for å oppdatere vår kompetanse. Regjeringen vil fremme tiltak for å la flere få mer opplæring mens de er i jobb. Den andre utfordringen er å oppfylle Norges klimaforpliktelser, slik at vi tar vår del av ansvaret. Sommeren 2018 kom med varmerekorder og tørke. Et mer ekstremt vær har blitt mer vanlig. Det er avgjørende at verden når sine klimamål. Norge skal oppfylle våre utslippsmål i samarbeid med EU. Parisavtalen er vårt viktigste internasjonale rammeverk. I desember vedtas kjøreregler for hvordan landene skal følge opp avtalen. Norge skal være pådriver. Bevaring av verdens regnskoger er avgjørende for å håndtere klimautfordringen. Regjeringen vil styrke dette viktige arbeidet. Regjeringen vil føre en politikk som skaper grønn vekst og nye grønne jobber. Regjeringen vil legge til rette for fortsatt fornyelse av bilparken. Den tredje utfordringen er å skape et inkluderende arbeidsliv. Regjeringens mål er et samfunn med små forskjeller, der alle kan delta og der alle gis muligheten til å bidra. Det største skillet i Norge går mellom de som er i jobb og de som står utenfor arbeidslivet. Flere må gis muligheten til å forsørge seg selv og sin familie gjennom lønnet arbeid. Den gode utviklingen i arbeidsmarkedet gir en god anledning til ekstra innsats. Regjeringen inviterer arbeidsgivere med på dugnad for å ansette flere som i dag står utenfor på grunn av nedsatt funksjonsevne eller hull i CVen. Den fjerde utfordringen er å sikre gode velferdsordninger i en tid hvor andelen eldre øker. Regjeringen vil gjennomføre reformen ”Leve hele livet”. Reformen skal gi eldre og deres pårørende økt valgfrihet, livskvalitet og trygghet. Regjeringen vil videreføre prøveordningen med statlig finansiert eldreomsorg. Tilbudet til utsatte mennesker i vårt samfunn, som rusavhengige og mennesker med psykiske lidelser, skal styrkes. Et offentlig utvalg skal utrede en rusreform. Målet er at brukerne får riktig og rask hjelp uten å risikere straffeforfølgning. Regjeringen tar sikte på å legge frem en opptrappingsplan for barn og unges psykiske helse i løpet av høsten 2018 og en ny nasjonal helse- og sykehusplan i 2019. Regjeringen vil legge frem en folkehelsemelding hvor ensomhet blir et viktig tema. Den femte utfordringen er å redusere fattigdom. Arbeid er den beste måten den enkelte kan øke sin inntekt og velferd på. Regjeringen vil derfor forsterke arbeidslinjen. Økt satsing på kompetanse, inkludering og integrering skal støtte opp om den enkeltes innsats for å komme i jobb. Regjeringen vil gi barn som vokser opp i familier med lav inntekt bedre muligheter for utvikling og deltakelse i fritidsaktiviteter, barnehage og SFO, slik at de lettere kan stå på egne ben når de blir voksne. Regjeringen arbeider med en stortingsmelding om sosial bærekraft og hvordan vi reduserer forskjeller. Den sjette utfordringen er å gjennomføre et integreringsløft. Regjeringens mål er at innvandrere skal være en del av store og små fellesskap i det norske samfunnet. Regjeringen vil forbedre norskopplæringen og introduksjonsprogrammet for flyktninger for at flere raskere kan gå over til ordinært arbeid og utdanning. Deltagelse i idrett, kultur og frivillighet gir kompetanse og erfaring som kan tas med inn i arbeidslivet. For bærekraften i våre velferdsordninger er det sentralt at flere kan forsørge seg selv og delta i samfunnet. Derfor er det også nødvendig å regulere innvandringen. Den internasjonale migrasjonen er uforutsigbar. Vi må ha høy beredskap for raske skifter. Regjeringen vil føre en restriktiv, rettssikker og ansvarlig innvandringspolitikk. En viktig prioritet for regjeringen er å skape et tryggere samfunn. Vi må hindre at barn utsettes for vold og overgrep. Regjeringen vil styrke kompetansen i tjenestene, slik at vold og overgrep blir avdekket tidligere. Regjeringens arbeid med nærpolitireformen fortsetter. Reformen bedrer evnen til å hindre kriminalitet og verne om ofrene. For å kunne beskytte innbyggerne i krisesituasjoner, trengs det flere politifolk med god trening og rask tilgang på riktig og godt utstyr, biler og helikoptre. Regjeringen vil derfor styrke beredskapen og forebygge bedre. Kriminalitet knyttet til IKT krever ny kompetanse i politiet og samordnet innsats. Ny sikkerhetslov vil i større grad stille krav som verner om samfunnets grunnleggende funksjoner og befolkningens grunnleggende sikkerhet. Det nye sikkerhetspolitiske landskapet krever et troverdig forsvar. Regjeringen vil styrke Norges forsvarsevne gjennom oppfølging av langtidsplanen for forsvarssektoren og starte arbeidet med neste langtidsplan. NATOs kollektive garanti forblir bærebjelken i sikkerhetspolitikken. Samtidig styrkes samarbeidet med USA, Storbritannia, Tyskland og i Norden. Verden rundt oss preges av økende usikkerhet. Den liberale verdensorden, demokratiske institusjoner og troen på fri handel er under press. Vi må hegne om de verdiene vi står for. Brexit vil påvirke også Norge. Regjeringen vil arbeide for et fortsatt velfungerende EØS-samarbeid og videreføre vårt nære samarbeid med Storbritannia. Regjeringen vil øke forståelsen for at bærekraftig bruk av havet gir både bedre miljø og høyere verdiskaping. Det internasjonale havpanelet er et viktig initiativ. Regjeringen vil ta nye initiativ på en rekke områder. Sammen støtter initiativene opp om målet om et bærekraftig velferdssamfunn og arbeidet for å nå FNs bærekraftsmål. Jeg ber Gud velsigne Stortingets arbeid, og erklærer Norges 163. storting for åpnet.'
## a) svar
ant_ord = 0 # Initierer counter for antallet
for i in range(len(tekst) - 1): # Itererer over alle tegnene i teksten
if tekst[i + 1] == " " and tekst[i] != " ": # Hvis det neste tegnet etter gjeldende tegn (i+1) er et mellomrom, og hvis
# gjeldende tegn ikke er et mellomrom
ant_ord += 1 # Legg 1 til antallet
if tekst[-1] != " ": # Hvis det siste tegnet ikke er et mellomrom
ant_ord += 1 # Legg til 1 i lista (for å få med det siste ordet)
print('Antall ord:', ant_ord)
## b svar
ant_setn = 0 # Initierer counter for antallet
for i in range(len(tekst) - 1): # Itererer over alle tegnene i teksten
if tekst[i + 1] == "." and tekst[i] != ".": # Hvis det neste tegnet etter gjeldende tegn (i+1) er et punktum, og hvis
# gjeldende tegn ikke er et punktum
ant_setn += 1 # Legg i til i antallet
print('Antall setninger:',ant_setn)
## c svar
ordPrSetn = ant_ord/ant_setn # Finner gjennomsnittlig ord pr setning
print('Gj.snittlig ord pr setning var: ', format(ordPrSetn,'.1f'))
## d svar
# Initierer en dict med bokstavene det skal letes etter
bokstaver = {'a':0,'b':0,'c':0,'d':0,'e':0,'f':0,'g':0,'h':0,'i':0,'j':0,\
'k':0,'l':0,'m':0,'n':0,'o':0,'p':0,'q':0,'r':0,'s':0,'t':0,\
'u':0,'v':0,'w':0,'x':0,'y':0,'z':0}
for c in tekst: # Itererer over alle tegnene i teksten
if c.lower() in bokstaver: # Gjør alle bokstavene i teksten til lowercase
bokstaver[c.lower()] += 1 # Plusser 1 på bokstaver som finnes
elif c.lower not in bokstaver: # Hvis tegnet ikke finnes i den opprinnelige dict'en, ikke gjør noe
pass
else:
pass
# For hver value,key-par (v,k) i dictionaryen 'bokstaver', returner en tuple der value er det første elementet. Da kan
# tuplene sorteres med "sorted" funksjonen, siden den sorterer på det første elementet i hver tuple.
sortert = sorted([(k,v) for v,k in bokstaver.items()], reverse = True)
print(sortert)