1.1 Variabler, datatyper og uttrykk
Tall (`int`/`float`), tekst (`str`) og boolske verdier, aritmetiske uttrykk, og de kritiske typekonverteringene `int(...)`/`str(...)` — grunnlaget for den faste int-vs-str-fella i Oppgave 1.
dukker opp i Oppgave 1 — den første oppgaven på settet, der du får noen linjer kode og skal skrive nøyaktig hva de skriver ut. Boka kaller den oppgavetypen
sjanger A — kodeforståelse, altså «hva skriver dette programmet ut?».
Én bestemt felle går igjen år etter år: at tekst og tall ser like ut, men oppfører seg helt forskjellig. Uttrykket "1" + "2" gir "12", ikke 3. Og et tall som er lest inn utenfra, er tekst helt til du selv gjør det om.
Oppgave 1 er verdt cirka 8 poeng, med 1–3 poeng per deloppgave, og rettes maskinelt i de nyere settene. Det gjør presisjon til en poenggivende ferdighet:
skriver du 7.0 der svaret er heltallet 7, blir det galt.
Dette må sitte — det er bokas høyeste av tre nivåer. Ikke fordi stoffet er
vanskelig, men fordi alt annet i faget hviler på det, og fordi poengene her er de billigste på hele settet.
Forkunnskaper — sist du var her
Dette er bokas første faglige kapittel, og det kan leses uten forkunnskaper i programmering. Har du lest kap. 0.1, vet du allerede hvordan eksamen er bygget opp og hvorfor akkurat dette kapitlet er verdt tid.
Har du aldri skrevet en linje kode før, kan
Programmering med Python være en myk oppvarming, men det er ikke nødvendig: alt du trenger, står her.
Løkke 1 — Variabler: navn som holder på en verdi (~8 min)
Du skal skrive et program for en liten båtutleie. Du trenger å holde styr på hvor mange båter som er ute, hva utleien heter, og hva en dag koster. Tre opplysninger — og datamaskinen må kunne finne dem igjen.
Løsningen er å gi hver opplysning et navn. Et navn som holder på en verdi, heter en variabel, og det er den mest grunnleggende byggeklossen i all programmering.
En variabel er et navn som holder på en verdi. Du lager den ved å skrive navnet, et likhetstegn og verdien:
antall_baat = 3Dette kalles en tilordning. Den leses fra høyre mot venstre: regn ut det som står til høyre, og la navnet til venstre peke på resultatet.
Likhetstegnet betyr altså ikke «er lik» slik det gjør i matematikken. Det betyr
«sett navnet til». Derfor er antall_baat = antall_baat + 1 en helt vanlig setning i Python, mens den ville vært meningsløs som en likning.
Fra da av kan du bruke navnet der du ellers ville skrevet verdien.
Alle verdier i Python har en type, og typen bestemmer hva du kan gjøre med verdien. De fire typene du trenger i IN1000, er:
| Type | Hva det er | Eksempel |
|---|---|---|
int | heltall | 3, -17, 0 |
float | desimaltall | 2.5, 249.50, -0.75 |
str | tekst («streng») | "Fjordfart", "3" |
bool | sant eller usant | True, False |
Legg merke til
3 og "3" i tabellen. De ser like ut for et menneske, men de er to helt forskjellige verdier: det ene er et tall du kan regne med, det andre er et tegn du kan skrive ut. Å blande dem er den vanligste feilen i heleOppgave 1.
Heltall, uten desimaler: 3, 0, -17. Skrives uten anførselstegn og uten punktum.
Regner du med to heltall og bruker +, - eller *, får du et heltall tilbake. Divisjon er unntaket, og den ser vi på i løkke 2.
Størrelsen er ingen begrensning: Python håndterer vilkårlig store heltall uten at du trenger å tenke på det.
Tall med desimaler: 2.5, 249.50, -0.75. Desimalskilletegnet er punktum, ikke komma — 2,5 er ikke et tall i Python.
Et desimaltall skrives ut slik Python selv velger å skrive det, og det er ikke alltid slik du skrev det inn. Verdien 249.50 skrives ut som 249.5, fordi den avsluttende nullen ikke bærer informasjon. Det er verdt å huske i et auto-rettet svarfelt.
Tekst, skrevet mellom anførselstegn: "Fjordfart". Du kan bruke doble eller enkle anførselstegn — "hei" og 'hei' er samme verdi — men vær konsekvent.
En streng kan inneholde hva som helst, også sifre: "249" er en streng på tre tegn, ikke tallet 249.
Anførselstegnene er ikke en del av verdien. De forteller Python hvor teksten begynner og slutter, og de vises ikke når du skriver strengen ut.
Skriver noe ut i terminalen. Du kan gi den flere verdier, skilt med komma:
navn = "Fjordfart" antall = 3 print(navn, antall)Utskrift:
Fjordfart 3Tre detaljer avgjør poeng i sjanger A. print setter ett mellomrom mellom hvert argument. Den avslutter med linjeskift, så neste print begynner på ny linje. Og den viser strenger uten anførselstegn.
Båtutleien heter Fjordfart, har tre båter ute og tar 249,50 kroner dagen. Lag en variabel for hver opplysning og skriv alle tre på én linje. Hva blir utskriften nøyaktig?
Tilordne først, skriv ut etterpå:
antall_baat = 3 navn = "Fjordfart" pris = 249.50 print(navn, antall_baat, pris)Utskrift:
Fjordfart 3 249.5To ting å merke seg i utskriften. Strengen "Fjordfart" vises uten
anførselstegn, og 249.50 er blitt 249.5 — den avsluttende nullen forsvinner fordi verdien er den samme. Skulle dette vært svart i et auto-rettet felt, måtte du skrevet nøyaktig Fjordfart 3 249.5, med ett mellomrom mellom hver del.
Legg også merke til variabelnavnet antall_baat. Norske ord er helt greie i kode, men æ, ø og å skal ikke stå i selve koden — derfor baat og ikkebåt.
(Innstegsoppgave — ren gjengivelse.) Se på disse tre linjene:
sted = "Slemdal" antall = 12 temperatur = 4.0a) Hvilken type har hver av de tre verdiene?
b) Hva skriver print(sted, antall) ut, tegn for tegn?
c) Hva skriver print(temperatur) ut?
Alt som står etter en firkanttast på en linje, hopper Python over. Det er en
kommentar, skrevet for mennesker:
pris = 249.50 # kroner per dagPå eksamen har kommentarer én bestemt verdi: de er stedet der du dokumenterer en antakelse når oppgaveteksten er uklar. «Antar at hvert navn er unikt» i en kommentar kan berge poeng.
Ellers gir kommentarer ingen uttelling, og fasitkoden i faget er nesten helt uten dem. Ikke bruk eksamenstid på å forklare kode som forklarer seg selv.
Et variabelnavn kan bestå av bokstaver, sifre og understrek, og må begynne med en bokstav eller understrek. Store og små bokstaver er forskjellige: Antall ogantall er to ulike navn.
Tre vaner som lønner seg i dette faget:
- Beskrivende navn — antall_ledige framfor a. Sensor leser koden din.
- Norske ord er helt greit, og er faktisk stilen i fagets egne
løsningsforslag: hent_alder, travleste, antall_ledige.
- Ingen æ, ø eller å i koden. Skriv baat, stoerst, laan. Dette står
eksplisitt som en merknad i eksamenssettene.
Python har en del ferdige navn — print, str, int, len, input, sum,max, type, list. Bruker du et av dem som variabel, tar variabelen over navnet, og den innebygde funksjonen er borte resten av programmet.
Skriver du sum = 0 øverst, virker ikke sum(...) lenger nedover i koden. Feilen er stum: den viser seg først på en helt annen linje, ofte som en uforståelig feilmelding.
Regelen er enkel: bruk aldri et innebygd navn som variabel. Skriv total,tekst, antall, svar, tallene, ordbok. I denne boka følges den regelen overalt, og den er en av de vanligste årsakene til at et program som «ser riktig ut», likevel krasjer.
Løkke 2 — Regning med tall (~10 min)
Nå skal båtutleien regne. Hvor mange båter er ledige? Hva koster fire dager? Hvor mange hele uker er 17 dager, og hvor mange dager blir til overs?
Python har sju regneoperatorer. Fire av dem er de du kjenner fra skolen, og tre av dem er verdt å studere nøye, fordi de er faste kilder til sjanger A-oppgaver.
Addisjon, subtraksjon og multiplikasjon, akkurat som i matematikken:
plasser = 40 solgt = 27 print(plasser - solgt)
print(plasser * 2)Utskrift:
13
80Regner du med to heltall, får du et heltall tilbake. Er minst én av verdiene et desimaltall, blir svaret et desimaltall: 3 * 2.0 gir 6.0.
Vanlig divisjon. Resultatet er alltid et desimaltall, også når det går opp:
print(9 / 3)Utskrift:
3.0Dette er verdt å feste seg ved i et auto-rettet svarfelt. Spørres det om verdien av 9 / 3, er svaret 3.0 og ikke 3. Skriver du 3, er svaret galt selv om du regnet riktig.
Divisjon der desimalene kastes bort, slik at du står igjen med et helt antall:
print(17 // 5)Utskrift:
3Tenk på det som «hvor mange hele ganger går fem opp i sytten». Svaret er tre, og
Python kaster resten.
Vær presis om hva som skjer med resten: // runder nedover, den runder ikke av til nærmeste. Både 17 // 5 og 19 // 5 gir 3.
Resten etter en heltallsdivisjon:
print(17 % 5)Utskrift:
2Fem går tre hele ganger opp i sytten, og da er det to igjen. Operatoren leses
«sytten modulo fem».
// og % hører sammen som et par: den første gir antall hele, den andre gir det som blir til overs.
Opphøyd i:
print(2 ** 10)Utskrift:
1024To opphøyd i ti. Legg merke til at dette er to stjerner etter hverandre — én stjerne er multiplikasjon, to er potens.
Python regner i den rekkefølgen du lærte på skolen. Fra sterkest til svakest:
1. Parenteser
2. ** (potens)
3. *, /, //, %
4. +, -
Innenfor samme nivå regnes det fra venstre mot høyre — bortsett fra **, som regnes fra høyre mot venstre. Derfor er 2 ** 3 ** 2 det samme som2 ** (3 ** 2), altså 2 ** 9.
Er du i tvil på eksamen, sett parenteser. De koster ingenting og fjerner all tvil for både deg og sensor.
Regn ut 17 / 5, 17 // 5, 17 % 5 og 2 ** 10, og skriv resultatene på hver sin linje. Hva er den eksakte utskriften?
print(17 / 5)
print(17 // 5)
print(17 % 5)
print(2 ** 10)Utskrift:
3.4
3
2
1024Fire linjer, fire poenger å merke seg:
- 17 / 5 gir 3.4 — et desimaltall, fordi / alltid gir det.
- 17 // 5 gir 3 — et heltall, uten punktum.
- 17 % 5 gir 2 — det som ble til overs.
- 2 ** 10 gir 1024 — heltall inn, heltall ut.
Sammenhengen mellom de to midterste er verdt å skrive på notatarket: 5 ganger 3 er 15, og 15 pluss 2 er 17.
Hva skriver programmet ut? Skriv utskriften nøyaktig, med linjeskift slik terminalen viser den.
print(23 // 4)
print(23 % 4)
print(23 / 4)Hva skriver disse fire linjene ut, og hvorfor er den siste den vanskeligste?
print(2 + 3 * 4)
print((2 + 3) * 4)
print(10 - 2 - 3)
print(2 ** 3 ** 2)14
20
5
512Linje for linje:
- 2 + 3 * 4: gangetegnet er sterkest, så 3 * 4 regnes først. 2 + 12 er
14.
- (2 + 3) * 4: parentesen slår alt. 5 * 4 er 20.
- 10 - 2 - 3: samme nivå, så det regnes fra venstre. 8 - 3 er 5.
- 2 ** 3 ** 2: her snur regelen. Potens regnes fra høyre, så det er
2 ** (3 ** 2), altså 2 ** 9, som er 512.
Den siste er den eneste som overrasker. Hadde det vært venstre mot høyre, ville svaret vært 8 ** 2, altså 64. Det er et populært distraktoralternativ.
La a = 7 og b = 2.
a) Hva blir a + b * 3?
b) Hva blir (a + b) * 3?
c) Hva blir a // b + a % b?
d) Hvilken av de tre verdiene er et desimaltall?
Løkke 3 — Tekst som ser ut som tall (~10 min)
Nå kommer kapitlets viktigste side, og fagets mest berømte felle.
Plusstegnet betyr ikke det samme for tekst som for tall. På to tall legger det sammen. På to strenger skjøter det dem sammen. Og siden "3" og 3 ser identiske ut på skjermen, er det lett å tro at de oppfører seg likt.
Det gjør de ikke, og forskjellen er testet i Oppgave 1 år etter år.
Mellom to strenger skjøter + dem sammen til én, uten mellomrom:
print("Fjord" + "fart")Utskrift:
FjordfartDet heter å konkatenere, altså å sette sammen ende mot ende. Vil du ha et mellomrom mellom, må du skrive det selv: "Fjord" + " " + "fart".
Og her er fella: "1" + "2" gir "12", ikke 3. Python legger ikke sammen — den skjøter.
En streng ganget med et heltall gjentar strengen:
print("ha" * 3)Utskrift:
hahahaDette brukes mest til å lage skillelinjer i utskrift: "-" * 20 gir tjue bindestreker etter hverandre.
Rekkefølgen spiller ingen rolle — 3 * "ha" gir det samme. Men to strenger kan ikke ganges med hverandre, og "ha" * 2.5 er ikke lov: antallet må være et heltall.
Dette er den enkeltfeilen som koster flest poeng i Oppgave 1.
a = "3" b = "4" print(a + b)Utskrift:
34Ikke 7. Verdiene er tekst, ikke tall, så + skjøter dem sammen til strengen"34".
Kjenn igjen situasjonen på anførselstegnene: har verdien anførselstegn rundt seg, er den tekst uansett hvor mye den ligner et tall. Og all data som kommer utenfra programmet — fra brukeren eller fra en fil — er tekst helt til du selv gjør noe med den.
Kontrollspørsmålet du skal stille foran hvert plusstegn i en sporingsoppgave:
er dette to tall, eller to strenger?
Programmet under bruker plusstegnet to ganger på de samme to variablene. Hvorfor gir de to bruksmåtene forskjellig svar, og hva blir utskriften?
a = "3" b = "4" print(a + b, int(a) + int(b))Se på anførselstegnene: både a og b er strenger.
- a + b skjøter derfor de to strengene: resultatet er strengen "34".
- int(a) + int(b) gjør først hver streng om til et tall, og legger så sammen
to tall: 3 + 4 er 7.
print skriver de to verdiene med ett mellomrom mellom:
Utskrift:
34 7Dette er selve mønsteret fella dukker opp i på eksamen: to uttrykk ved siden av hverandre, der bare det ene har konverteringen. Svarer du 7 7 eller 34 34, har du behandlet begge likt — og det er nettopp det oppgaven tester.
Hva skriver programmet ut? Skriv utskriften nøyaktig.
kode = "20" suffiks = "24" print(kode + suffiks)
print(kode * 2)(Innstegsoppgave — ren gjengivelse.) Du vil skrive ut en skillelinje av 20 bindestreker over en overskrift.
a) Hvilket uttrykk gir de 20 bindestrekene?
b) Hva skriver print("Sum" + ":" + " 12") ut?
c) Hvorfor kan du ikke skrive "Sum" + 12?
Løkke 4 — Å gjøre om mellom tekst og tall (~8 min)
Fella i forrige løkke har en enkel løsning: konverter. Python har tre små funksjoner som gjør en verdi om til en annen type, og de går igjen i nesten hver eneste eksamensbesvarelse.
De er også svaret på et problem du får igjen og igjen senere i faget: alt som kommer inn i programmet utenfra — fra brukeren, fra en fil — kommer inn som tekst.
Gjør en verdi om til et heltall:
print(int("19") + 1)Utskrift:
20Strengen "19" blir tallet 19, og da virker plusstegnet som addisjon.
To presiseringer. int på et desimaltall kutter desimalene bort uten å runde av
— int(3.9) gir 3. Og teksten må faktisk se ut som et heltall: int("nitten") og int("3.5") stopper begge med en feilmelding.
Gjør en verdi om til et desimaltall:
print(float("12") + 3)Utskrift:
15.0Legg merke til utskriften: så snart én av verdiene er et desimaltall, blir svaret det også. 15.0, ikke 15.
float tåler både "12" og "12.5", mens int bare tåler den første.
Gjør en verdi om til tekst:
antall = 7 print("Vi har " + str(antall) + " ledige plasser")Utskrift:
Vi har 7 ledige plasserUten str rundt tallet ville dette stoppet med en feilmelding, fordi + ikke kan skjøte tekst og tall.
Dette er standardmåten å bygge en utskriftstekst på i dette faget, og du kommer til å bruke den i hver eneste klasse du skriver senere i boka.
Alt som kommer inn i programmet ditt fra utsiden — det brukeren skriver i terminalen, og det som står i en tekstfil — kommer inn som tekst, uansett hvor mye det ligner et tall.
Leser du linjen Kari 24 fra en fil, er 24 strengen "24" og ikke tallet 24.
Skal du regne med den, må du selv skrive int(...) rundt.
Denne ene setningen er årsaken til en hel klasse av feil senere i faget, og du møter den igjen i kap. 7.1 om filinnlesing.
Fellen er ikke å vite at int finnes. Fellen er å glemme den akkurat der data kommer utenfra.
alder_tekst = "19" print(alder_tekst + "1")Utskrift:
191Programmet krasjer ikke. Det svarer bare feil, stille, og du merker det først når tallene i utskriften er umulige. Feil som ikke krasjer, er de dyreste feilene på en eksamen der du ikke kan kjøre koden.
Motmiddelet er en vane: konverter i det øyeblikket data kommer inn, ikke senere. Skriv alder = int(alder_tekst) på linja rett etter innlesingen, og regn med alder derfra.
Et lite program har lest inn to verdier fra en fil, og begge er derfor tekst.
Prisen er 199 kroner og antallet er 2. Vis hva som skjer om du glemmer å konvertere, og hva som skjer om du husker det.
pris = "199" antall = "2" sum_tekst = pris + antall sum_tall = int(pris) + int(antall)
print(sum_tekst, sum_tall)Utskrift:
1992 201Den venstre verdien er strengen "199" skjøtet med strengen "2", altså"1992" — et tall som ser skremmende plausibelt ut i en utskrift, og som er fullstendig meningsløst.
Den høyre er 199 + 2, altså 201.
Slik ville du skrevet det på eksamen: konverter én gang, øverst, og bruk
tallene etterpå.
pris = int("199")
antall = int("2")
print(pris + antall)Utskrift:
201Da finnes ikke fella lenger i programmet ditt.
Hva skriver programmet ut? Skriv utskriften nøyaktig.
tall = "12" print(tall + tall)
print(int(tall) + int(tall))
print(float(tall) + 3)Du har to variabler:
navn = "Ingrid" poeng = 42a) Skriv én linje som skriver ut Ingrid har 42 poeng ved hjelp av skjøting
med +.
b) Hva ville skjedd om du droppet str(...) rundt tallet?
c) Skriv den samme utskriften uten skjøting i det hele tatt, ved å bruke
komma i print. Blir utskriften identisk?
Løkke 5 — Å oppdatere en variabel, og sant eller usant (~4 min)
To siste byggeklosser før kapitlet er ferdig. Den første bruker du i hver eneste løkke du skriver resten av faget; den andre er grunnlaget for alle betingelser i
kap. 1.2.
En variabel kan peke på en ny verdi som er regnet ut fra den gamle:
poeng = 0 poeng = poeng + 5 poeng = poeng + 5 print(poeng)Utskrift:
10Les hver linje fra høyre: regn ut poeng + 5 med den verdien poeng har nå, og la poeng peke på resultatet.
Dette mønsteret har et navn — akkumulator — og det er selve motoren i alt du skriver senere: å telle, å summere, å bygge opp et svar litt etter litt. Du møter det for alvor i kap. 1.3.
poeng += 5 betyr nøyaktig det samme som poeng = poeng + 5:poeng = 10 poeng += 2 print(poeng)Utskrift:
12Tilsvarende finnes -=, *= og /=.
Begge former er like gode på eksamen, og begge finnes i fagets løsningsforslag.
Velg én og vær konsekvent — i denne boka brukes += når vi teller, og den fulle formen når vi vil vise mekanikken tydelig.
Den fjerde typen, bool, har bare to mulige verdier: True (sant) og False
(usant).
er_ledig = True print(er_ledig)Utskrift:
TrueLegg merke til at de skrives med stor forbokstav og uten anførselstegn."True" med anførselstegn er en streng på fire tegn, ikke en boolsk verdi.
Boolske verdier er svaret enhver ja-eller-nei-test gir, og de styrer alleif-setninger og while-løkker i faget. Selve testene møter du i
kap. 1.2.
Et uttrykk er noe som har en verdi: 3, pris * 2, "Fjord" + "fart",int(tall) + 1.
En setning er noe som gjør noe: en tilordning (x = 3) eller et kall
(print(x)).
Skillet er nyttig når du sporer kode: du regner ut uttrykk, og du utfører setninger. På høyre side av et likhetstegn står det alltid et uttrykk, og det skal regnes helt ferdig før navnet på venstre side får peke på noe.
Dette er en oppgave på eksamensnivå. Hva skriver programmet ut? Spor den linje for linje før du leser løsningen.
antall = "6" pris = 45 antall = int(antall)
total = antall * pris total = total + 10 print(antall, total)
print(str(total) + " kr")Før en tavle over variablene, én linje om gangen. En strek betyr at variabelen ikke finnes ennå.
| Linje | Hva som skjer | antall | pris | total |
|---|---|---|---|---|
| 1 | antall = "6" | "6" (tekst) | — | — |
| 2 | pris = 45 | "6" | 45 | — |
| 3 | antall = int(antall) | 6 (tall) | 45 | — |
| 4 | total = antall * pris | 6 | 45 | 270 |
| 5 | total = total + 10 | 6 | 45 | 280 |
Linje 3 er den avgjørende: den skriver over
antall med talversjonen av seg selv. Uten den ville linje 4 gjentatt strengen "6" førtifem ganger i stedet for å gange.De to utskriftene leses hver for seg.
print(antall, total) skriver de to verdiene med ett mellomrom mellom. print(str(total) + " kr") skjøter tallet, gjort om til tekst, sammen med enheten — og antall er ikke med på den linja.Utskrift:
6 280
280 krSlik ville sensor sett på det: hele poenget i denne oppgaven ligger i linje3 og i typen på hver verdi. En kandidat som svarer
270 i stedet for 280, har oversett linje 5, men har vist at hun forsto konverteringen — og får uttelling for det. En som svarer 666666 på siste linje, har gått i felle #3 og trodd atantall fortsatt var tekst.
Hva skriver programmet ut? Skriv utskriften nøyaktig, med linjeskift slik terminalen viser den.
a = "5" b = 2 c = int(a) // b d = int(a) % b print(c, d)
print(a * b)
print(c + d, str(c) + str(d))Fire feil koster nesten alle poengene som mistes på dette stoffet:
- #3 — heltall forvekslet med tekst. "1" + "2" gir "12", ikke 3. Se
etter anførselstegn før du regner.
- #4 — glemt konvertering. Data utenfra er tekst. Skriv int(...) med én
gang, ikke tre linjer senere.
- Pyntet svar i et auto-rettet felt. 7.0 for heltallet 7, 3 for
9 / 3 som gir 3.0, eller anførselstegn rundt en tekst som ikke har dem i utskriften.
- #13 — innebygd navn brukt som variabel. sum = 0 ødelegger sum(...)
resten av programmet, og feilen viser seg et helt annet sted.
Den femte er ikke en regnefeil, men en lesefeil: glemme at print setter ett mellomrom mellom argumenter skilt med komma. print(a, b) med verdiene 2 og1 gir 2 1, ikke 21.
Begrepsbank
Begrepsbanken er flashcard- og repetisjonsstoff — den gjentar det du nettopp har lest. Hopp trygt over ved førstegangslesing; tidsanslaget for kapitlet gjelder kjernestoffet.
Å skjøte to strenger sammen ende mot ende med +. Resultatet er én ny streng.
Ordet er verdt å kjenne fordi det brukes i oppgavetekster og i fasiter. «Uttrykket konkatenerer de to strengene» betyr rett og slett at det setter dem sammen.
Ingen mellomrom legges til automatisk: vil du ha et, må du skjøte det inn selv.
Å lage en ny verdi av en annen type ut fra en gammel: int("19"), str(42),float("2.5").
Legg merke til ordet ny. Konverteringen endrer ikke den opprinnelige verdien; den lager en ny. Skriver du int(alder_tekst) uten å ta vare på svaret, har ingenting skjedd — du må skrive alder = int(alder_tekst).
Dette er en av de vanligste stille feilene hos nybegynnere, og den krasjer ikke.
Et svarfelt i Inspera der maskinen sammenligner det du skrev, med fasitverdien tegn for tegn. Oppgave 1 rettes slik i de nyere settene.
Konsekvensen er at nesten riktig er galt: 7.0 for heltallet 7, 3 for9 / 3 som gir 3.0, eller 'hei' med anførselstegn for teksten hei.
Boka gjengir derfor alle utskrifter nøyaktig slik terminalen viser dem — det er den formen svaret ditt skal ha.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.
Skolesaga er en uavhengig læringsressurs og er ikke tilknyttet eller godkjent av Universitetet i Oslo. Dette er ikke offisielt studiemateriell. Les mer.