#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()