#Datatyper str() #streng/tekst streng = "Hei, jeg er en streng" int() #heltall/int heltall = 36 float() #flyttall/float flyttall = 2.3 bool() #True/False #Tom streng, tom liste, 0 (alle disse blir False) #liste list() #ordbok dict() #mengde, NB: ingen duplikater, random rekkef?lge set() #Husk ? om input fra bruker til int eller float ved behov #input fra bruker: input("Hvilket programfag g?r du?") #lagrer input i en variabel programfag = input("Hvilket programfag g?r du?") #skriver ut input til terminalen print(programfag) #husk! Alle if blir sjekket! Hvis bruker skriver Design #printes b?de "Gruppe 4 :D" og "Ugyldig :(" if programfag == "Design": print("Gruppe 4 :D") if programfag == "Prosa": print("PROSA!!") elif programfag == "Maki": print("Kunstig intelligens") else: print("Ugyldig :(") #konkatenere string test = "Hello World" test += "!" test2 = test + "\nVi er gruppe 4!" #telle forekomst av bokstav test.count("l") #lengden av en tekst len(test) #sortere string #dette er n? en liste sortert i ASCII rekkef?lge test = sorted(test) #gj?re om string til liste list(test2) #Lister #opprette tom liste liste1 = [] #opprette liste med innhold liste2 = [1, 2, 3] #legge til liste, legger til p? slutten av listen liste1.append(4) #opprette liste med flere av det samme innholdet liste3 = [3, 3, 3] liste4 = [4] * 4 #4 firere # print det f?rste i listen print(liste3[0]) #endre en verdi i en liste, bruker indeks liste3[0] = 7 #konkatenere liste master_liste = liste1 + liste2 + liste3 #lengden av en liste len(master_liste) #sjekke om noe er i en liste 10 in master_liste #False 1 in master_liste #True #sorere en liste, lavest til h?yest master_liste.sort() #snu listen motsatt vei master_liste.reverse() # telle. NB: teller hvor mange ganger et element er i listen liste4.count(4) #hvor mange ganger 4 er i liste4 # n?stede lister liste = [[1,2,3],[4,5,6],[7,8,9]] print(liste[1][1]) #5 print(liste[0][1]) #2 print(liste[1][2]) #6 liste = [] #-> [[1,2,3],[4,5,6],[7,8,9]] liste.append([1, 2, 3]) liste.append([4, 5, 6]) liste.append([7, 8, 9]) liste[0] = 1 #n? ser listen slik ut: [1,[4,5,6],[7,8,9]] liste = [[], [], []] # hva er forskjellen?? liste[0] = [1, 2, 3] #erstatter den tomme listen som ligger p? plass 0 (redefinert!) liste[1].append([4, 5, 6]) #legger til i den tomme listen (lagt til!/oppdaterer!) liste[2] = [7, 8, 9] liste[2].append(10) # -> [[1,2,3],[4,5,6],[7,8,9,10]] liste.append([11, 12, 13]) # -> [[1,2,3],[4,5,6],[7,8,9,10],[11,12,13]] #Ordbok #tom ordbok ordbok = {} #opprette ordbok med innhold ordbok2 = {"n?kkel":"verdi"} #legge til ordbok ordbok["Hello"] = "World!" #hente ut verdi fra ordbok variabel = ordbok["Hello"] #finner "World!" #in sjekker n?kkelverdier "Hello" in ordbok #True "World!" in ordbok #False #L?kker #While avslutter n?r en betingelse er oppfylt x = 3 while x < 10: x += 1 print(x) #for l?kker kj?rer x antall ganger #range() med 1, 2 og 3 argumenter #Disse 3 er identiske: #slutt indeks 5 (f?rste print 0, siste print 4) for i in range(5): print(i) #start indeks 0, slutt indeks 5 (f?rste print 0, siste print 4) for i in range(0, 5): print(i) #start indeks 0, slutt indeks 5, ?ker indeks med 1 #(f?rste print 0, siste print 4) for i in range(0, 5, 1): print(i) artister = ["Taylor Swift", "Astrid S", "Sam Smith"] #to m?ter ? iterere over en liste for element in artister: print(element) for indeks in range(len(artister)): print(artister[indeks]) tegnliste = ["h", "e", "i", ",", " ", "d", "u", "!"] setning = "" for bokstav in tegnliste: setning += bokstav # -> "hei, du!" ordbok_historisk = {"Edvard Munch": "1863","Edvard Grieg": "1843", "Jesus": "0", "Napoleon": "1769", "Sokrates": "399 f.kr."} for n?kkel in ordbok_historisk: print(n?kkel) print(ordbok_historisk[n?kkel]) #verdi #den over er IN1000 pensum, items er ikke pensum for n?kkel, verdi in ordbok_historisk.items(): print(n?kkel) print(verdi) ed_f?dt = ordbok_historisk["Edvard Munch"] #liste av alle n?kkelverdiene liste = list(ordbok_historisk.keys()) #liste av alle verdiene liste = list(ordbok_historisk.values()) #IKKE GJ?R DETTE: liste = [] for n?kkel in ordbok_historisk.keys(): liste.append(n?kkel) #GJ?R DETTE: liste = [] for n?kkel in ordbok_historisk: liste.append(n?kkel) #prosedyre returnerer ingenting, men kan ha parameter #funksjon returnerer en verdi, kan ha parameter #metode er enten en prosedyre eller en funksjon i en klasse #parameter er i en prosedyre/funksjon/metode, #mens ett argument er noe du sender med n?r du kaller p? en prosedyre/fuksjon/metode #prosedyrer def hello_world(): print("Hello World") hello_world() def skriv_ut(tekst): #tekst = "Hello World" print(tekst) skriv_ut("Hello World") #lage en ordbok ved hjelp av en funksjon til ? skrive hele den lille gangetabellen def gangetabell(start, stopp): ordbok = {} for tall in range(start, stopp+1): nokkel = str(tall) assert isinstance(nokkel, str) liste = [] for indeks in range(1, 11): x = indeks*tall liste.append(x) ordbok[nokkel] = liste return ordbok #vil ha 1 til og med 10 gangen lillegangetabell = gangetabell(1,10) assert isinstance(lillegangetabell, dict) print(lillegangetabell) def hent_navn(personbok, personid): #tar inn ordbok og n?kkel #sjekker om n?kkel er i ordbok if personid in personbok: #returnerer verdien til n?kkelen return personbok[personid] #n?kkel ikke i ordbok return None #tidligere eksamensoppgave (2022?) def tell_grader(fag, bsc, msc): #if fag == bsc == msc return 2 if fag == bsc and fag == msc: return 2 #if fag == bsc or fag == msc return 1 elif fag == bsc or fag == msc: return 1 #else: return 0 else: return 0 assert tell_grader("informatikk", "informatikk", "informatikk") == 2 assert tell_grader("historie", "informatikk", "informatikk") == 0 def forkort_lagliste(lagliste): #skal fjerne duplikater fra liste ny_lagliste = [] #g?r gjennom listen for lag in lagliste: #sjekker om laget allerede er lagt til i liste if lag not in ny_lagliste: ny_lagliste.append(lag) return ny_lagliste assert forkort_lagliste(["Brann", "Molde", "Brann"]) == ["Brann", "Molde"] #er listen sortert def er_sortert(talliste): forrige_tall = 0 for tall in talliste: if tall < forrige_tall: return False forrige_tall = tall return True def er_sortert(talliste): #sammenligne med den sorterte versjonen av seg selv return talliste == sorted(talliste) #Use list.sort() when you want to modify the original list and don't need a copy of the unsorted version. #Use sorted() when you need a new sorted list and want to preserve the original list. #Lese og skrive til fil min_fil=open("mittFilNavn.txt", "r") for linje in min_fil: print("Her fant jeg: " + linje) min_fil.close() for linje in open("mittFilNavn.txt"): ordliste = linje.split() for ord in ordliste: print(ord) min_fil.close() min_fil = open("nyFil.txt", "w") min_fil.write("Dette er den f?rste linjen i filen\n") min_fil.write("Dette er den andre linjen i filen") min_fil = open("mittFilNavn.txt", "w") for i in range(5): min_fil.write("Dette er en ny linje\n") min_fil.close() #Oppgave liste_historie_original = ["Edvard Munch", "Edvard Grieg", "Jesus", "Napolion", "Sokrates"] fil_historie = open("historiske_personer.txt", "w") for person in liste_historie_original: fil_historie.write(person + "\n") fil_historie.close() fil_historie = open("historiske_personer.txt") liste_historie = [] for linje in fil_historie: liste_historie.append(linje.strip("\n")) assert len(liste_historie_original) == len(liste_historie) assert liste_historie_original == liste_historie fil_historie.close() #Oppgave ordbok_historisk = {"Edvard Munch": "1863","Edvard Grieg": "1843", "Jesus": "0", "Napoleon": "1769", "Sokrates": "399 f.kr."} fil_historie = open("historiske_personer_fodt.txt", "w") for nokkel in ordbok_historisk: fil_historie.write(nokkel + " ; " + ordbok_historisk[nokkel] + "\n") fil_historie.close() def oppgave6(fil): ordbok = {} #for linje in open("historiske_personer_fodt.txt"): for linje in open(fil): liste = linje.strip().split(" ; ") nokkel = liste[0] verdi = liste[1] ordbok[nokkel] = verdi return ordbok ny_ordbok = oppgave6("historiske_personer_fodt.txt") assert len(ordbok_historisk) == len(ny_ordbok) assert ordbok_historisk == ny_ordbok #Klasser class Lysp?re: # konstrukt?r/initiate def __init__(self): self._lyser = False # er lysp?ren p?? def er_paa(self): return self._lyser # skru lyset p? def skru_paa(self): self._lyser = True # skru lyset av def skru_av(self): self._lyser = False #from fil import klasse #from lyspaere import Lysp?re def hovedprogram(): #oppretter objekt lysp?re = Lysp?re() assert lysp?re.er_paa() == False assert not lysp?re.er_paa() lysp?re.skru_paa() assert lysp?re.er_paa() == True assert lysp?re.er_paa() lysp?re2 = Lysp?re() #ikke like, selv om de er objekter fra samme klasse assert lysp?re != lysp?re2 assert lysp?re.er_paa() != lysp?re2.er_paa() lysp?re2.skru_paa() assert lysp?re.er_paa() == lysp?re2.er_paa() hovedprogram()