def beregnAreal(lengde, bredde): return lengde * bredde def beregnAreal(lengde, bredde): if lengde < 0 or bredde < 0: return -1 return lengde * bredde def kampResultat(scoringerLagA, scoringerLagB): if scoringerLagA > scoringerLagB: return "hjemme" elif scoringerLagB > scoringerLagA: return "borte" return "uavgjort" #a, b class Attraksjon: def __init__(self, navn, barn, fra, til): self._navn = navn self._barn = barn self._fra = fra self._til = til def skrivAttr(self): utskrift = self._navn + ". " + str(self._fra) + " - " + str(self._til) if self._barn: utskrift = "BARN: " + utskrift else: utskrift = "VOKSEN: " + utskrift print(utskrift) def forBarn(self): return self._barn def aapenIPeriode(self, fra, til): if fra > self._til or til < self._fra: return False return True #c, d, e class Destinasjon: def __init__(self, navn, attraksjoner): self._navn = _navn self._attraksjoner = attraksjoner def hentDestNavn(self): retun self._navn def skrivDest(self): print("Destinasjon: ", self._navn) for a in self._attraksjoner: a.skrivAttr() def leggTilAttr(self, nyAttr): self._attraksjoner.append(nyAttr) def antallAktuelleAttr(self, barn, fraDato, tilDato): total = 0 for a in self._attraksjoner: if (not barn or a.forBarn()) and a.aapenIPeriode(fraDato, tilDato): total += 1 return total #f def skrivDestListe(self): print("Destinasjoner:") for d in self._destKatalog: print(d) def skrivEnDest(self, destNavn): if destNavn in self._detKatalog: self._destKatalog[destNavn].skrivDest() else: print("Ingen destinasjnoer med navnet", destNavn) #g def nyAttr(self, destNavn, attrNavn, bVennlig, apenFra, apenTil): if destNavn not in self._destKatalog: nyAttr = Attraksjon(attrNavn, bVennlig, apenFra, apenTil) self._destKatalog[destNavn].leggTilAttr(nyAttr) #h def nyDestFraFil(self, destNavn, filnavn): if destNavn not in self_destKatalog: self._destKatalog[destNavn] = Destinasjon(destNavn, []) fil = open(filnavn) attrNavn = fil.readline().rstrip() while attrNavn != "": hvem = fil.readline().rstrip() if hvem = "VOKSNE": forBarn = False else: forBarn = True fraDato = int(fil.readline().rstrip()) tilDato = int(fil.readline().rstrip()) self.nyAttr(destNavn, attrNavn, forBarn, fraDato, tilDato) attrNavn = fil.readline().rstrip() #i def finnBesteDest(self, barn, fra, til): besteAntall = 0 besteDest = "" for destNavn in self._destKatalog: dest = self._destKatalog[destNavn] antall = dest.antallAktuelleAttr(barn, fra, til) if antall > besteAntall: besteDest = destNavn besteAntall = antall return besteDest #9a def trimZeros(a): while a[0] == 0: a[0].pop() while a[len(a)] == 0: a[len(a)].pop() return a """LØSNINGSFORSLAG: forsteIndeks = 0 while forsteIndeks < len(a) and a[forsteIndeks] == 0: forsteIndeks += 1 sisteIndeks = 0 while sisteIndeks >= 0 len(a) and a[forsteIndeks] == 0: forsteIndeks -= 1 return a[forsteIndeks:sisteIndeks + 1]""" #b def telling(s): ulike = {} total = 0 for t in s: if t not in ulike: ulike[t] = True total += 1 return total