•while betingelse: -- kjører sa lenge betingelsen er True
•for variabel in range(start, stopp, steg): -- itererer over tallsekvens
•range(n) gir 0, 1, ..., n-1 (n elementer)
•Innrykk bestemmer hvilke linjer som hører til en blokk
Funksjoner
•def funksjonsnavn(param1, param2): -- definerer en funksjon
•return verdi -- sender verdi tilbake til kallstedet
•Uten return returneres None implisitt
•
Vanlige feil å unngå
Variabler og datatyper
•Forveksle streng-konkatenering med talladdisjon. '1' + '2' gir '12', ikke 3.
•Glemme at int('1' + '2') først konkatenerer til '12' og SA konverterer til 12.
•Prove å legge sammen streng og tall uten konvertering: 'hei' + 5 gir TypeError.
•Glemme at boolske verdier skrives med stor forbokstav: True, ikke true.
Kontrollstrukturer
•Glemme at elif/else hoppes over når en tidligere betingelse er True. Bare EN gren i en if/elif/else-kjede kjører.
•Feil i while-løkker: glemme å oppdatere variabelen som kontrollerer lokken, noe som gir uendelig løkke.
•Forveksle range(5) (gir 0-4) med range(1, 5) (gir 1-4). range() inkluderer IKKE stoppverdien.
•Feil innrykk: kode som skal være inne i en løkke, men som er rykket ut (eller omvendt).
Funksjoner
•Forveksle print() og return. print() viser noe på skjermen, return sender verdien tilbake til koden som kalte funksjonen.
•Bruke en lokal variabel fra en funksjon utenfor funksjonen -- dette gir NameError.
•Glemme å lagre returverdien: superfunksjon(42) uten variabel foran gjør at verdien forsvinner.
Eksamenstips
Variabler og datatyper
•Del 1-oppgaver med typekonvertering kommer HVERT år. Spør operasjonene steg for steg og skriv ned mellomverdier.
•Når en variabel oppdateres (tall = tall + 2), bruk alltid GJELDENDE verdi på høyre side.
•Vær oppmerksom på parenteser: int(a + b) er ikke det samme som int(a) + int(b).
•Noen del 1-oppgaver ber deg FYLLE INN et uttrykk som gir et bestemt resultat (f.eks. 'skriv et logisk uttrykk slik at utskriften alltid blir ja'). Da finnes det ofte flere riktige svar -- velg det enkleste.
Kontrollstrukturer
•Lag en sporingstabell med kolonner for alle variabler. Oppdater verdiene linje for linje -- dette er den sikreste metoden på del 1.
•For nestede løkker: skriv opp ALLE kombinasjoner av den ytre og indre variabelen systematisk.
•Sjekk alltid om while-lokken faktisk terminerer. Spør om betingelsen NOEN gang blir False.
Funksjoner
•Les oppgaveteksten nøye -- den sier ofte 'funksjonen skal returnere' (bruk return) vs. 'funksjonen skal skrive ut' (bruk print).
•Du kan bruke funksjoner fra tidligere deloppgaver selv om du ikke har løst dem. Anta at de virker som beskrevet.
•Sjekk alltid om funksjonen skal håndtere tomme lister eller spesielle tilfeller.
Lokale variabler lever bare inne i funksjonen
•int(input("tekst")) -- les inn heltall fra bruker
Lister og ordbøker
•liste.append(x) -- legg til element bakerst
•ordbok[nøkkel] = verdi -- sett/oppdater verdi for nøkkel
•for k in ordbok: -- itererer over nøklene
•ordbok.items() -- gir (nøkkel, verdi)-par
•x in liste / x in ordbok -- sjekk om element/nøkkel finnes
Filhåndtering
•fil = open(filnavn) -- åpne fil for lesing
•for linje in fil: -- les linje for linje
•linje.strip() -- fjern linjeskift og mellomrom i endene
•linje.split() -- del opp i liste av ord (på mellomrom)