scrimba
Løsningsforslag: Oppgave 4 på eksamen V2018
Oppgave 4d - V2018
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Oppgave 4d - V2018
AboutCommentsNotes
Oppgave 4d - V2018
Expand for more info
index.py
run
preview
console
class Rett:
def __init__(self, navn, pris, ingredienser):
self._navn = navn
self._pris = pris
self._ingredienser = ingredienser

def __str__(self):
innhold = " * ".join(self._ingredienser)
tekst = f"{self._navn} koster {self._pris} kr. Den inneholder {innhold}"
return tekst

def sjekkInnholdOK(self, ulovligeIngredienser):
#ok = True

for ulovlig in ulovligeIngredienser:
if ulovlig in self._ingredienser:
return False
#ok = False

return True


class Kategori:
def __init__(self, kategorinavn, retter):
self._kategorinavn = kategorinavn
self._retter = retter

def hentOkRetter(self, ulovligeIngredienser):
okRetter = []
for rett in self._retter:
if rett.sjekkInnholdOK(ulovligeIngredienser):
okRetter.append(rett)
return okRetter

def __str__(self):
tekst = self._kategorinavn + ":\n"
for rett in self._retter:
tekst += str(rett) + " "

return tekst

# pastaretter
carbonara = Rett("Pasta Carbonara", 200, ["Pasta", "Bacon", "Fløte", "Egg", "Parmesan"])
bolognese = Rett("Spaghetti Bolognese", 180, ["Spaghetti", "Rødvin", "Tomat", "Kjøtt"])
marinara = Rett("Penne Marinara", 250, ["Penne", "Tomat", "Reker", "Hvitvin"])

# Desserter
iskrem = Rett("To kuler iskrem", 60, ["Is", "Fløte"])
kake = Rett("Ostekake", 80, ["Fløte", "Kremost", "Hvetemel", "Mandler"])

# Forretter
gravlaks = Rett("Gravlaks", 80, ["Gravlaks", "Sennep", "Dill"])
salat = Rett("Frisk salat", 100, ["Salat", "Tomat", "Dressing"])

# Kategorier
forretter = Kategori("Forretter", [gravlaks, salat])
pastaretter = Kategori("Pastaretter", [carbonara, bolognese, marinara])
desserter = Kategori("Desserter", [iskrem, kake])


class Meny:
def __init__(self):
self._kategorier = {
"forretter" : forretter,
"pastaretter" : pastaretter,
"desserter" : desserter
}

def hentRedusertMeny(self, ulovligeStoffer):
redusertMeny = {}
for knavn, kategori in self._kategorier.items():
retter = kategori.hentOkRetter(ulovligeStoffer)
if retter:
redusertMeny[knavn] = Kategori(knavn, retter)

return redusertMeny

meny = Meny()
okMeny = meny.hentRedusertMeny(["Reker", "Gravlaks", "Salat"])

for katnavn, kategori in okMeny.items():
print(kategori)
Console
"pastaretter: Pasta Carbonara koster 200 kr. Den inneholder Pasta * Bacon * Fløte * Egg * Parmesan Spaghetti Bolognese koster 180 kr. Den inneholder Spaghetti * Rødvin * Tomat * Kjøtt "
,
"desserter: To kuler iskrem koster 60 kr. Den inneholder Is * Fløte Ostekake koster 80 kr. Den inneholder Fløte * Kremost * Hvetemel * Mandler "
,
/index.html
-14:29