# 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 ¨C 99)") elif tall > 80: print("... har verdi mellom 80 og 90 (81 ¨C 89)") elif tall > 70: print("... har verdi mellom 70 og 80 (71 ¨C 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