# Oppgave 1 s = 5 def pros(): s = 10 print(s) s = 2 pros() print(s) # Oppgave 2 def pluss(): x = 1 y = 10 return x + y print(pluss()) # Oppgave 3 def prod(x, y): print(x * y) def sum(x, y): print(x + y) prod(2, 3) sum(2, 3) prod("hei", 2) #sum("hei", 2) #Fører til feilmelding ettersom man ikke kan plusse en streng og et tall prod("True", True) #True evaluerer her til 1 #sum("True", True) #prod("hei", "sann") sum("hei", "sann") #Konkatinerer strengene # Oppgave 4 ''' a printes ut. Dette fordi når vi oppretter en variabel k i skopet til b() så lager vi en ny lokal variabel. Denne endrer altså ikke den eksisterende variabelen, men lager en ny lokal variabel i det samme skopet. Ettersom at vi skriver k ut utenfor skopet til b(), så vil k ha verdien "A". ''' k = "A" def b(): k = "b" b() print(k) # Oppgave 5 """ Lister er en mer kompleks type. Grunnen til at vi i dette tilfellet endrer k i det globale skopet er fordi vi her sender en peker på listen med som parameter. Denne pekeren gjør at vi kan gå inn å endre verdiene i listen. """ # Oppgave 6 """ Når vi derimot sender med en primitiv type som parameter sender vi kun med verdien som typen har, og ikke en peker til dataen (slik vi gjorde med lister). Dette gjør at når vi endrer denne variabelen i et lokalt skop så vil den ikke endre den variabelen som vi sendte med i prosedyren. """ k = "A" def b(l): l += "b" b(k) print(k) # Oppgave 7 g = "Hei" def pros(): g = "Hade" print(g) pros() print(g) # Oppgave 8 import random ANTALL_TERNINGER = 6 def kastTerninger(): listeTerninger = [] for i in range(ANTALL_TERNINGER): listeTerninger.append(random.randint(1,6)) print(listeTerninger) return listeTerninger def enere(terninger): antallEnere = 0 for terning in terninger: if terning == 1: antallEnere += 1 return antallEnere def hovedprogram(): kast = kastTerninger() antallEnere = enere(kast) print(antallEnere) hovedprogram()