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