# forelesning_01.py Versjon 25. januar 2026 # Vi skal sammen gå igjennom denne teksten med kode. Det er ikke # noe sammenhengende program, kun eksempler satt sammen for # å slippe å skrive alt på nytt. Vær snill å spørre/kommentere/avbryte # underveis hvsi noe er uklart, så får jeg mulighet til å utdype med # flere eksempler. print("Hei alle sammen!") # "Hei alle sammen!" er en tekstverdi som er input (argument) til # prosedyren/programmet print() som skriver ut argumentene som er mellom ()-ene # <-- Dette tegnet (#) først på linja betyr at linja er en kommentar, # og slike linjer tolkes som blanke når programmet kjøres print("Hvordan går det?") # en annen eksplisitt tekstverdi # Vi kan sette navn (ta vare) på en tekstverdi: hilsen = "Hei alle sammen!" # Denne programsetningen kaller vi en tilordning: # Variabelen 'hilsen' får (blir tilordnet) verdien # "Hei alle sammen!" av type str (tekst) print("hilsen") print(hilsen) print(hislen) # Den siste gir en feilmelding. Hvorfor det? Print(hilsen) # Denne gir også feilmelding. Hvorfor det? # Vi kan gi samme navn (bruke samme variabel) til en annen verdi; da glemmes den gamle verdien: hilsen = "Hvordan går det?" # En slik setning med = kalles en tilordning fordi den tilordner en verdi (her en tekstverdi) # til variabelen på venstre side. Dett er den viktigste grunnleggende programsetningen: # # variabel = uttrykk # # venstresiden er alltid ett variabelnavn, mens høyresiden er et uttrykk # som evalueres/reduseres/beregnes til én verdi print(hilsen) # Print kan skrive ut flere argumenter/uttrykk samtidig: print("Hei IN1000-studenter,", "hvilken dag er det i dag?") dag = "mandag" print("I dag er det", dag) # input er en funksjon som skriver ut argumentet (som print) og gir variabelen # til venstre i tilordningen den tekstverdien som brukeren skriver inn: dato = input("Hvilken dato er det i dag? ") print("I dag er det", dato) # Uttrykket til høyre i en tilordning er ofte en 'utregning' av en verdi: dato = "mandag " + "19. " + "januar 2026" # Ovenfor ser vi eksempel på å legge sammen (sammenskjøting av) tekstkonstanter print(dato) dag = input("Hvilken dato er det i dag? ") måned = input("Hvilken måned er vi i? ") år = input("Hvilken år er det i år? ") dato = "I dag er det " + dag + måned + år print(dato) #print() med ett argument: print("I dag er det " + dag + måned + år) # Her evalueres uttrykket i argumentet til en tekstverdi: "I dag er det mandag 19. januar 2026" #print() med 4 argumenter: print("I dag er det", "mandag", "19. januar", "2026") # Hva skjer hvis vi har en variabel som har en verdi i uttrykket til høyre i tilordningen? tekst = "Jeg er ganske sikker på at " + dato # Da er det verdien til variabelen (her "I dag er det mandag 19. januar 2026") som inngår i evalueringen print(tekst) # I tillegg til + mellom tekstverdier i uttrykk, kan vi bruke * etterfulgt av et heltall, # dette ligner på multplikasjon av tall: stjerner = "*" * 57 print(stjerner) print("abc"*15) # kontrollflyt print("Hvilken ukedag er det i dag? ") ukedag = input() # disse 2 linjene kan skrives som én: ukedag = input("Hvilken ukedag er det i dag? ") # Legg merke til at et kall på input() er et uttrykk, siden det # står på høyresiden i en tilordning. Kallet evaluerer (returerer) # det bruker skriver inn som en tekst av type str. Det betyr at det også # kan inngå i et sammensatt uttrykk av type str: dagen_i_dag = "I dag er det " + input("Hvilken ukedag er det i dag? ") print(dagen_i_dag) # Uttrykk av typen int (heltall), # her virker + og -, multiplikasjon (*) og divisjon (/) som vanlig a = 5 b = 7 + 3 c = 2 * 5 + 15 # (2 *5 ) + 15 d = 15 + 2 * 5 # 15 + (2 * 5) e = (15 + 2) * 5 f = a + b g = f / 2 print(a, b, c, d, e, f, g) print("a b c d e f g") # Merk forskjellen på uttrykket ( 4 + 5 ) og ( "4" + "5" ): print(4 + 5) print("4" + "5") # flere typer # float # bool # uttrykk # beslutninger og kontrollflyt. # Legg merke til innrykket på linja etter : if 4 > 7 : print("ja") else : print("nei") if 4 > 7 : print("ja") # Hva er verdien til uttrykket etter if ? print( 4 > 7) print( 7 < 4) print( 4 < 7) print( 4 == 7 ) print( 4 != 7 ) print( "abc" == "ABC") print( 7 == "7" ) print("Anne" > "Fabio") print( "abc" > "ABC") print( 4 <= 7 or 4 > 7) print( 4 > 7 or 4 < 7) print( 4 < 7 and 4 > 7) print( not 4 > 3 and 4 <= 7 ) # Typen til uttrykkene/argumentene er enten True eller False. # Typen kalles bool og på norsk sier vi gjerne logisk verdi. # Uttrykket er en påstand som enten er sann eller gal # True og False er de to eneste logiske konstantene: if False : print("ja") else : print("nei") heltall = 4 if heltall < -4 : print("x") elif heltall > 7 : print("y") elif heltall < 7 : print("z") else: print("æ") # Vi kan ha så mange elif som vi ønsker, men kun én if og kun én else # if kan stå alene if heltall < -4 : print("x") # if - elif kan stå uten else: if heltall < -4 : print("x") elif heltall > 7 : print("y") # if - else kan stå uten elif: if heltall < -4 : print("x") else: print("æ") # men elif og else må alltid ha en if først. # Rekkefølgen er alltid én if, 0 eller flere elif, 0 eller én else if heltall < -4 : print("x") print("Variabelen heltall har en heltallsverdi som er mindre enn -4") elif heltall > 7 : print("Variabelen heltall har en heltallsverdi som er større enn 7") print("y") tall = heltall elif heltall < 7 : print("z") print("Variabelen heltall har en heltallsverdi som er større enn 7") tall = heltall + 1 else: print("æ") print(tall) # Hvis ingen av setningsblokkene som definerer tall utføres, # vil tall være udefinert og print-setningen ovenfor vil gi feilmelding p.g.a. # feil i uttrykket som er argument til print. Et utrykk vil også feile # i en tilordning hvis et ikke er definert: verdi = "Hei" + udefinert # Operandene (leddene) som inngår i uttrykket må også være av samme type: tall = 5 tekst = "Hallo du!" logisk_verdi = True or False verdi = tall + 6 verdi = tekst + "6" verdi = tekst + 6 verdi = "7" + tall verdi = tall > tekst verdi = logisk_verdi and 7 > 2 verdi = logisk_verdi > tekst # høyresider # nøstede beslutninger: tall = input("Skriv et tall større enn 0 med maks 3 siffer: ") tall = int(tall) if tall > 0: print("Tallet er større enn 0 ...") if tall < 1000: print("... og har ikke mer enn 3 siffer, så alt ok") elif tall < 10000: print("... men har 4 siffer, ett siffer for mye") elif tall < 100000: print("... men har 5 siffer, to siffer for mye") elif tall < 1000000: print("... men har 6 siffer, tre siffer for mye") elif tall < 10000000: print("... men har 7 siffer, fire siffer for mye") else: print("... men har alt for mange siffer!") elif tall < 0: print("Negativt tall ikke tillatt!") else: print("Tallet kan ikke være lik 0!") print("Dette skrives alltid ut, den nøstede if-setningen er slutt") if tall < 100: print("Tallet har maks 2 sifre, og tallet ...") if tall > 90: print("... har verdi mellom 90 og 100 (91 – 99)") elif tall > 80: print("... har verdi mellom 80 og 90 (81 – 89)") elif tall > 70: print("... har verdi mellom 70 og 80 (71 – 79)") elif tall < 10: print(" det har faktisk akkurat ett siffer") elif tall < 1000: print("tallet har akkurat tre sifre") if tall != 999: print("tallet kan faktisk være noe større") else: print("tallet har for mange siffer") print("Dette skrives alltid ut, den nøstede if-setningen er slutt") # Feil vi har nevnt: # uttrykk (høyresider i tilordning, i betingelser etter if og elif og # argumenter i funskjonskall) der operandene (leddene) ikke har samme type tall = "Tallet er" + 7 verdi = tall > 50 * 5 # bruk av udefinerte navn (variabler og funksjoner) i uttrykk # En variabel er definert når den står på venstresida i en tilordningssetning tall = 5 tall = tlla + 5 tekst = ipnut("Skriv noe her:") # Andre vanlige feil: # # feil i innrykk etter : # manglende : etter if, elif og else # feil i parentesstruktur: # i = (tall + 5) * tall -2) # print("Hei du!" # feil i eksplisitte tekstverdier: # #print("Hei du!) # Vi har i dag lært 3 forskellige programsetninger: # 1. Funksjonskall med et (eller flere) uttrykk som argument (print(), input(), int()) # Noen funksjoner (input(), int()) kan også returnere en verdi som kan inngå i uttrykk # 2. Tilordningssetning med variabeldefinisjon på venstresiden # og et uttrykk på høyresiden av tilordningsoperatoren (=) # 3. if-elif-else-setningen med ut logisk uttrykk etter if og elif # Uttrykk finner vi 3 steder i dag: # Høyresiden i tilordning # Som argumenter (adskilt med ,) til prosedyrer/funksjoner # logiske uttrykk etter if og elif # Uttrykk reduseres/evalueres/beregnes til én verdi av en bestemt type. # Vi har sett 4 typer i dag: # tekst (str) "Hei " + "du!" # heltall (int) 3 + 9 # logisk (bool) 7 == 8 # flyttall (float) 7 / 2