Oppgave 1 -
...
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 2 - Hente, slette og legge til verdier fra en dictionary
Skriv ut ingrediensene i «pasta carbonara»
Legg til retten «kyllingsalat» med ingrediensene kylling, tomat, agurk og salat
Skriv kode som sjekker om «sopp-risotto» finnes i kokeboken og skriver ut True dersom dette stemmer og False ellers
Fjern «pasta bolognese» fra kokeboken
Oppgave 3 - 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.
Oppgave 4 - Endre verdier i en dictionary
Legg til salt og pepper som ingredienser i alle rettene i kokeboken.
Oppgave 5 - Nyttige dictionaries metoder
Skriv ut alle rettene og sett av ingredienser som finnes i kokeboken. Fjern så alle elementene i kokeboken.
Oppgave 6 - Enkle sett-operasjoner
Opprett et sett kalt «primtall» med primtallene under 10.
Skriv ut lengden på settet.
Legg til de neste to primtallene.
Fjern det minste elementet i settet.
Skriv et program som itererer over alle elementene i settet og skriver dem ut til skjerm.
Oppgave 7 - Union og snitt av sett
Opprett et nytt sett kalt «oddetall» med alle oddetallene under 15
Print snittet av settene ved å bruke intersection(set) funksjonen.
Print unionen av settene ved å bruke union(set) funksjonen.
Print forskjellene mellom settene ved å bruke difference(set) funksjonen.
Bruk issubset(set) funksjonen til å sjekke om «primtall» er et subsett av «oddetall»
Repetisjon
a) Lag en funksjon func()
som returnerer en liste med alle tall mellom 0 og 50 som er delelig på 3. Bruk en for-løkke.
Code Block | ||||
---|---|---|---|---|
| ||||
#print(func())
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48] |
b) Gjør om programmet ditt fra a) til å be brukeren om å velge en nedre og en øvre grense på intervallet. Disse grensene skal tas inn som argumenter i func()
og alle tallene inne i intervallet som er delelig på 3 skal legges til i listen som returneres.
Code Block | ||||
---|---|---|---|---|
| ||||
Oppgi en nedre grense for intervallet, a: 10
Oppgi en øvre grense for intervallet, b: 30
#print(func(a,b))
[12, 15, 18, 21, 24, 27, 30] |
c) Opprett en tom dictionary Filmanmeldelse.
d) Lag en funksjon add_movie(navn, terningkast)
som tar inn en streng og et heltall, navn(key) og terningkast(value), og legger filmen til i dictionaryen Filmanmeldelse.
e) Utvid funksjonaliteten fra d) slik at du kan legge til flere terningkast til hver film. For eksempel kan VG gi en film terningkast 3, mens Dagbladet kan gi den samme filmen terningkast 5.
Expand | ||
---|---|---|
| ||
Du må ha en liste med terningkast for hver film. For å sjekke om filmen finnes fra før av kan du bruke "if key in dict". Du kan også løse dette med unntakshåndtering. |
Code Block | ||||
---|---|---|---|---|
| ||||
#print(Filmanmeldelse)
{'Harry Potter': [6], 'Deadpool': [3, 6], 'Ole Brumm': [5], 'Never say never': [1]} |
f) Hva skriver koden under ut?
Forklar hva koden gjør.
Code Block | ||||
---|---|---|---|---|
| ||||
def myst3(A,x):
for r in range(0,len(A)):
for c in range(0,len(A[0])):
if(A[r][c]==x):
return r*c
return 0
print(myst3([[1,2,3],[4,5,6],[7,8,9]],8)) |
Oppgave 2
Oppgave 8 - Fakultet
Skriv en funksjon, «fakultet», som tar inn et tall og finner fakultet av tallet ved bruk av rekursjon.
...
- Fibonacci
Fibonacci tallene er definert rekursivt på følgende måte:
F1 = 1
F2 = 1
F1 = F(n-1)+F(n-2)
Starter på Fibonacci-rekken er 0 1 1 2 3 5 8 11 19...
Skriv en funksjon,
...
fib
, som tar inn n og finner det n’te
...
Fibonacci-tallet. Tegn også opp alle funksjons-evalueringene som gjøres når fib(5) kjøres.
Code Block | ||||
---|---|---|---|---|
|
...
#print(fib(5))
5
#print(fib(6))
8 |
Oppgave 3 - Pascals trekant
Skriv en funksjon som finner den n’te raden av pascals trekant. De første seks radene i pascals trekant vises i bildet under.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#print(pascal(6))
[1, 5, 10, 10, 5, 1] |
Oppgave 4
...
- Palindrom
Et palindrom er et uttrykk som gir samme resultat enten det leses fra høyre eller venstre. Skriv en rekursiv funksjon,
...
palindromTest
som tar inn en streng og returnerer True dersom det er et palindrom og False ellers.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#print(palindromTest('a'))
True
#print(palindromTest('agnes i senga'))
True
#print(palindromTest('Maoam'))
False
#Merk at m!=M
#print(palindromTest('halla'))
False |
Oppgave 5
Oppgave 12 - Minste element
Skriv en funksjon, «minElement», som tar inn en liste og finner det minste elementet ved bruk av rekursjon.
...
- Største element
Skriv en funksjon,
...
maxElement
, som tar inn en liste og finner det største elementet ved bruk av rekursjon.
Oppgave
...
6 - Exponent
Skriv en funksjon,
...
exponent
, som tar inn et tall og eksponenten det skal opphøyes i. Funksjonen skal bruke rekursjon til å opphøye tallet i eksponenten. Tenk at og at osv.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#print(exponent(5,4))
625 |
...