#repetisjonskurs #viktig antagelse: returnerer en liste (endrer ikke lista lista) #De tre første linjene kopierer lista så vi ikke endrer #den opprinnelige lista. #Tanken her er at vi går gjennom starten og slutten helt #til det ikke er flere nuller igjen. #nyliste[-1] er det samme som nyliste[len(nyliste) - 1] def trimZeros(talliste): nyliste = [] for tall in talliste: nyliste.append(tall) while nyliste[0] == 0: nyliste.pop(0) while nyliste[-1] == 0: nyliste.pop() return nyliste #Oppgave 5 #antar at alle verdier er ulike #For hvert tall i lista, hvis tallet som #kommer etter er mindre, så returnerer vi False #Vi returnerer True hvis vi har gått gjennom hele lista #uten å finne noen tall som ikke er i rekkefølge. def erStigende(talliste): for i in range(len(talliste) - 1): if talliste[i + 1] < talliste[i]: return False return True #Oppgave 6 #To måter å løse den på: med og uten innebygde metoder #Hvis alle tall i ei liste er like, må det første #tallet være likt alle de andre def alleLike(talliste): for tall in talliste: if tall != talliste[0]: return -1 return talliste[0] def alleLike2(talliste): if len(set(talliste)) == 1: return talliste[0] return -1 #Oppgave 9 #Her bruker vi en trippel for-løkke med range. #Det lar oss skrive ut alle kombinasjonene. #Prosedyren legger alle kombinasjoner som har to like #i en egen liste, og finner lengden av den, før #den skrives ut. def likeTerninger(): tolike = [] for i in range(1,7): for j in range(1,7): for k in range(1,7): #print(i,j,k) if i == j or j == k or k == i: tolike.append([i,j,k]) print(len(tolike),"antall med minst to like:") for kast in tolike: print("\t",kast) likeTerninger()