scrimba
Løsningsforslag: Oppgave 4 på eksamen V2018
Utgangspunkt for 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

Utgangspunkt for Oppgave 4d - V2018
AboutCommentsNotes
Utgangspunkt for 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


class Kunde:
def __init__(self, telefon, ulovligeStoffer):
self._telefon = telefon
self._ulovligeStoffer = ulovligeStoffer

def velgRetter(self, meny):
kategorier = meny.hentRedusertMeny(self._ulovligeStoffer)
valgteRetter = []

for knavn, kategori in kategorier.items():
print(kategori)
valgt = input(f"Hvilken rett vil du ha fra våre {knavn}")

if valgt:
valgteRetter.append(valgt)

return valgteRetter


meny = Meny()

gloer = Kunde("122324234", ["Egg"])
gloer.velgRetter(meny)

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

#for katnavn, kategori in okMeny.items():
# print(kategori)
Console
"Traceback (most recent call last): module __main__ line 85 kategorier = meny.hentRedusertMeny(self._ulovligeStoffer) ^ IndentationError: unexpected indent"
,
!
Error: Unknown error
,
/index.html
LIVE