Oppgave 1 - Åpne og skrive til fil

open-funksjonen i Python lager et fil-objekt og linker det til en fil på disken. Opprett en tekstfil kalt «test.txt» og lagre den i samme mappe som du jobber i. Du skal nå utføre en rekke operasjoner på denne filen:

  1. Åpne filen i  read only-modus. Lukk så filen.

  2. Åpne filen i write-modus og skriv fornavnet ditt i filen. Lukk så filen.

  3. Åpne filen i append-modus og legg til etternavnet ditt (med '\n' bak). Lukk så filen.

  4. Åpne filen og legg inn fornavn på fire venner. (Disse skal komme i tillegg til ditt eget navn.) Husk '\n' etter hvert navn. Lukk så filen.

Mulig tekstfil etter kjøring av kode:
Bob Bernt Bjornsdotter
Ola
Carina
Aragusta
Willy
 

Oppgave 2 - Lese data fra fil

I denne oppgaven skal du opprette et filobjekt i read only-modus og lese data fra filen. 

  1. Åpne filen og print alt innholdet i filen til skjerm. (Hint: du må opprette et fil-objekt og bruke funksjonen read() på objektet). Lukk filen.

  2. Åpne filen og print første linjen i filen til skjerm. (Hint: readline() funksjonen)

  3. Print andre linje i filen til skjerm. (Hint: readline() har en lese-posisjon. Mer info om readline() her.)

  4. Print den tredje og fjerde linjen til skjerm uten en blank linje i mellom. (Hint: rstrip()). Lukk filen.

Eksempel på kjøring:
#1.
Bob Bernt Bjornsdotter
Ola
Carina
Aragusta
Willy

#2.
Bob Bernt Bjornsdotter

#3.
Ola

#4.
Carina
Aragusta
 

Oppgave 3 - Skriving av numeriske data til fil

For å bruke write-funksjonen til å skrive tall til fil, må tallene konverteres til strenger. I denne oppgaven skal du skrive et lite program som tar inn to tall fra brukeren og lagrer summen i test.txt-filen. F.eks. skal '12' lagres til fil om input fra bruker er 4 og 8.

Oppgave 4 - Bruk av løkker til filhåndtering

Opprett en funksjon kalt gaver() som tar inn gaveønsker fra brukeren i 5 omganger ved bruk av en løkke og skriver disse til test-filen din. Etter å kjøre funksjonen skal test-filen bestå av fem linjer der hver linje består av et ønske (først linje kan for eksempel være «sykkel»). Husk å lukke filen før funksjonen avsluttes!

Eksempel:
#Eksempel på kjøring av kode:
Gi inn gaveønske: The Way of Kings
Gi inn gaveønske: Words of Radiance
Gi inn gaveønske: Oathbringer
Gi inn gaveønske: Edgedancer
Gi inn gaveønske: Wandersail
 
#Eksempel på tekstfil:
The Way of Kings
Words of Radiance
Oathbringer
Edgedancer
Wandersail

Oppgave 5 - Eksempler på exceptions

  1. Opprett en funksjon kalt deling(tall1,tall2) som returnerer tall1 delt på tall2. Kjør funksjonen med input tall1=1 og tall2=0 og observer hva som skrives til skjerm.
  2. Skriv så om programmet slik at det returnerer strengen «Ulovlig input» dersom tall2 er 0.

Oppgave 6 - Try/except

Endre funksjonen fra oppgave 5 til å bruke try/except som håndterer ZeroDivisionError.


Oppgave 7 - Formasjonsteknologi grunnkurs

  1. Flygeskolen skal avholde sin årlige eksamen i Formasjonsteknologi grunnkurs. I den sammenheng er det viktig for de fagansvarlige – stuntlektor Due og professor Kråke - å melde inn hvilke studenter som skal få ta eksamen. I år har deler av øvingsopplegget vært obligatorisk.
    Det er totalt 12 øvinger i faget. Følgende regler gjelder for å få godkjent øvingsopplegg:
    • minst 5 av de 6 første øvingene må være godkjent (øvingene 1–6)
    • minst 4 av de 6 siste øvingene må være godkjent (øvingene 7–12)
    • minst én av øvingene 11 og 12 må være godkjent

    Skriv en funksjon godkjent som tar inn en liste med 12 tall (1 eller 0) som argument. 1 betyr godkjent og 0 betyr ikke godkjent. Eks.: liste = [1,0,0,1,1,0,1,1,1,0,1,0].
    liste viser altså en student som har fått øvingene 1, 4, 5, 7, 8, 9 og 11 godkjent, hvilket ikke vil være tilstrekkelig for å få ta eksamen. Funksjonen skal returnere 1 hvis øvingsopplegget er godkjent og 0 hvis ikke, etter reglene beskrevet ovenfor.

    Eksempel på kjøring:
    godkjent([1,1,0,1,0,0,1,1,1,1,1,1])		#Returnerer 0
    godkjent([1,1,1,0,1,1,0,1,1,0,1,1])		#Returnerer 1
    
  2. Last ned filen testdata.txt og legg den i samme mappe som programmet ditt. 
    Kopier koden under, lim den inn i programmet ditt under godkjent-funksjonen, og skriv inn manglende kode der '#skriv kode her' står.

    Kode til oppgaven
    count = 0
    f = #skriv kode her. Koden skal åpne en fil for lesing
    
    for line in f:
        candidate = line.split(':')
        candidate[1] = candidate[1].strip()
    		#Variabelen candidate er en liste på formen: [<navn>,<liste som streng>], eks.: ['Bob Bernt', '[1,0,0,1,1,0,1,0,1,1,0,1]']
        lst = []
        for ch in candidate[1]:
            if ch.isdigit():
                lst.append(int(ch))
        x = godkjent(lst)
        count += x
        #skriv kode her. Koden skal si om kandidaten bestod eller ikke
        
    print("Antallet studenter som bestod:",count)

    Koden over fungerer som en test på godkjent-funksjonen din, og skal skrive ut:

    Eksempel på kjøring:
    Bob Bernt bestod ikke
    Willy bestod
    Kant bestod ikke
    Descartes bestod ikke
    Wilbur Wright bestod
    Orville Wright bestod ikke
    Icarus bestod ikke
    Manfred von Richthofen bestod ikke
    Antallet studenter som bestod: 2

Oppgave 8 - Opprette dictionaries

Opprett et dictionary kalt «kokebok» og legg inn rettene «pasta carbonara», «sopp-risotto» og «pasta bolognese» som nøkler. Hver nøkkel har en tilhørende liste med ingredienser. Ingrediensene i pasta carbonara er fløte, pasta, bacon og egg, ingediensene i sopp-risotto er sopp, ris og fløte, og ingrediensene i pasta bolognese er pasta, kjøttdeig og tomatsaus.

Oppgave 9 - Hente, slette og legge til verdier fra en dictionary

  1. Skriv ut ingrediensene i «pasta carbonara»

  2. Legg til retten «kyllingsalat» med ingrediensene kylling, tomat, agurk og salat

  3. Skriv kode som sjekker om «sopp-risotto» finnes i kokeboken og skriver ut "sopp-risotto finnes i kokeboken" dersom dette stemmer, og "beklager, sopp-risotto finnes ikke i kokeboken" ellers.

  4. Fjern «pasta bolognese» fra kokeboken

    Eksempel på kjøring:
    #1.
    ['fløte', 'pasta', 'bacon', 'egg']
     
    #3.
    sopp-risotto finnes i kokeboken
     
    #kokeboken etter at alle punktene er gjennomført:
    {'pasta carbonara': ['fløte', 'pasta', 'bacon', 'egg'], 
    	'sopp-risotto': ['sopp', 'ris', 'fløte'], 
    	'kyllingsalat': ['kylling', 'tomat', 'agurk', 'salat']}

Oppgave 10 - Iterere over elementer i en dictionary

Skriv et program bestående av en for-løkke som skriver ut alle rettene som finnes i kokeboken og deres tilhørende ingredienser.

Eksempel på kjøring:
pasta carbonara inneholder fløte, pasta, bacon, egg
sopp-risotto inneholder sopp, ris, fløte
kyllingsalat inneholder kylling, tomat, agurk, salat

Oppgave 11 - Endre verdier i en dictionary

Legg til salt og pepper som ingredienser i alle rettene i kokeboken.

Eksempel på kjøring:
#print(kokebok) skal gi:
{'pasta carbonara': ['fløte', 'pasta', 'bacon', 'egg', 'salt', 'pepper'], 
	'sopp-risotto': ['sopp', 'ris', 'fløte', 'salt', 'pepper'], 
	'kyllingsalat': ['kylling', 'tomat', 'agurk', 'salat', 'salt', 'pepper']}

Oppgave 12 - Nyttige dictionaries metoder

Bruk innebygde funksjoner i denne oppgaven.

  1. Skriv ut alle rettene i kokeboken.
  2. Skriv ut alle listene av ingredienser som finnes i kokeboken. 
  3. Fjern så alle elementene i kokeboken. 
  4. Skriv ut kokeboken.
Eksempel på kjøring:
#1.
dict_keys(['pasta carbonara', 'sopp-risotto', 'kyllingsalat'])


#2.
dict_values([['fløte', 'pasta', 'bacon', 'egg', 'salt', 'pepper'], ['sopp', 'ris', 'fløte', 'salt', 'pepper'], ['kylling', 'tomat', 'agurk', 'salat', 'salt', 'pepper']])


#4
{}

Oppgave 13 - Enkle sett-operasjoner

  1. Opprett et sett kalt primtall med primtallene under 10.

  2. Skriv ut lengden på settet.

  3. Legg til de neste to primtallene.

  4. Fjern det minste elementet i settet.

  5. Skriv et program som itererer over alle elementene i settet og skriver dem ut til skjerm.

Eksempel på kjøring:
#2.
4

#5.
3
5
7
11
13

Oppgave 14 - Union og snitt av sett

  1. Opprett et nytt sett kalt oddetall med alle oddetallene under 15.

  2. Print snittet av settene oddetall og primtall ved å bruke intersection(set)-funksjonen.

  3. Print unionen av settene oddetall og primtall ved å bruke union(set)-funksjonen.

  4. Print forskjellene mellom settene oddetall og primtall ved å bruke difference(set)-funksjonen.

  5. Bruk issubset(set)-funksjonen til å sjekke om primtall er et subsett av oddetall.

Eksempel på kjøring:
#2.
{3, 5, 7, 11, 13}


#3.
{1, 3, 5, 7, 9, 11, 13}


#4.
{1, 9}


#5.
True
  • No labels