PCEP Python‐opplæring for nybegynnere15 - itnett/FTD02H-N GitHub Wiki
Det er flott å høre at oppgavene har vært nyttige! Nå skal jeg lage en fasit for de 50 oppgavene. Denne fasiten vil ikke bare gi de riktige svarene, men også forklare hvorfor et alternativ er riktig, og hvorfor de andre er feil eller delvis riktige. I tillegg vil jeg foreslå andre måter oppgavene kunne blitt løst på, der det er aktuelt. Fasiten vil være detaljert slik at den også fungerer som en læringsressurs.
Fasit: Oppgaver 1–10
📝 Oppgave 1: Skriv en funksjon som legger sammen to tall
Riktig svar: 1️⃣
def addisjon(a, b):
return a + b
Hvorfor riktig: Denne funksjonen tar to tall som input og returnerer summen av dem. Dette er det som forventes av en funksjon som skal legge sammen to tall.
Hvorfor de andre er feil:
- 2️⃣:
print(a + b)
vil skrive ut resultatet, men det returnerer ikke summen, så denne løsningen er feil for oppgaven. - 3️⃣:
return a - b
gjør det motsatte av hva som kreves. Denne løsningen returnerer differansen mellom tallene, ikke summen.
📝 Oppgave 2: Skriv en funksjon som returnerer "Hei, Verden!"
Riktig svar: 1️⃣
def si_hei():
return "Hei, Verden!"
Hvorfor riktig: Funksjonen returnerer strengen "Hei, Verden!". Dette er akkurat hva oppgaven ber om.
Hvorfor de andre er feil:
- 2️⃣:
print("Hei, Verden!")
skriver ut strengen, men returnerer den ikke. Forskjellen mellomprint()
ogreturn
er viktig:return
sender en verdi tilbake til der funksjonen ble kalt, mensprint()
bare viser noe i konsollen. - 3️⃣:
return "Hallo, Verden!"
returnerer en feil streng, så selv om syntaksen er riktig, er ikke innholdet det oppgaven ber om.
📝 Oppgave 3: Skriv en funksjon som finner maksimum av to tall
Riktig svar: 1️⃣
def maks_tall(a, b):
if a > b:
return a
else:
return b
Hvorfor riktig: Denne funksjonen sammenligner de to tallene og returnerer det største av dem, som er det som kreves i oppgaven.
Hvorfor de andre er feil:
- 2️⃣:
if a > b: return b
gjør feil i logikken ved å returnere det minste tallet i stedet for det største. - 3️⃣:
print(max(a, b))
skriver ut det største tallet, men returnerer det ikke, så det er ikke det som oppgaven spør om.
📝 Oppgave 4: Skriv en funksjon som returnerer summen av alle tall i en liste
Riktig svar: 1️⃣
def sum_liste(liste):
return sum(liste)
Hvorfor riktig: sum()
er en innebygd funksjon i Python som summerer alle elementene i en liste. Dette er den mest effektive måten å oppnå det som kreves.
Hvorfor de andre er feil:
- 2️⃣: Denne løsningen summerer bare de to første elementene i listen. Hvis listen har mer enn to elementer, vil den ikke gi riktig svar.
- 3️⃣:
return for i in liste: return sum(i)
er feil fordi det har en ugyldig syntaks.for
-løkken er skrevet feil, ogsum(i)
er også feil sideni
er et enkelt tall, ikke en liste.
📝 Oppgave 5: Skriv en funksjon som sjekker om et tall er partall
Riktig svar: 1️⃣
def er_partall(tall):
if tall % 2 == 0:
return True
else:
return False
Hvorfor riktig: Denne funksjonen sjekker om et tall er delelig med 2 (det vil si at resten er 0), som er definisjonen av et partall.
Hvorfor de andre er feil:
- 2️⃣:
print("True")
skriver ut "True" og "False" til konsollen, men returnerer ikke noe, så det er ikke det som kreves i oppgaven. - 3️⃣:
if tall % 2 == 1: return True
returnererTrue
hvis tallet er oddetall (resten er 1), så det gjør det motsatte av hva som er ønsket.
📝 Oppgave 6: Skriv en funksjon som finner lengden på en streng
Riktig svar: 1️⃣
def lengde_streng(tekst):
return len(tekst)
Hvorfor riktig: len()
er en innebygd funksjon i Python som returnerer antall tegn i en streng. Dette er den mest direkte måten å løse oppgaven på.
Hvorfor de andre er feil:
- 2️⃣:
print(len(tekst))
skriver bare ut lengden i stedet for å returnere den. - 3️⃣:
tekst.len()
er en feilaktig syntaks.len()
er en funksjon, ikke en metode på strenger.
📝 Oppgave 7: Skriv en funksjon som returnerer den første bokstaven i en streng
Riktig svar: 1️⃣
def forste_bokstav(tekst):
return tekst[0]
Hvorfor riktig: Denne løsningen bruker indeksering (tekst[0]
) til å hente det første tegnet i strengen, som er det oppgaven ber om.
Hvorfor de andre er feil:
- 2️⃣:
return tekst[1]
vil returnere det andre tegnet i strengen i stedet for det første. - 3️⃣:
print(tekst[0])
skriver bare ut den første bokstaven, men returnerer den ikke.
📝 Oppgave 8: Skriv en funksjon som returnerer en liste med alle partall fra 1 til 10
Riktig svar: 1️⃣
def partall_liste():
return [2, 4, 6, 8, 10]
Hvorfor riktig: Denne listen inneholder alle partall fra 1 til 10, som oppgaven ber om.
Hvorfor de andre er feil:
- 2️⃣: Denne listen inneholder også tallet 1, som ikke er et partall.
- 3️⃣: Denne listen inneholder tallet 9, som ikke er et partall.
📝 Oppgave 9: Skriv en funksjon som teller antall forekomster av et tegn i en streng
Riktig svar: 1️⃣
def tell_tegn(tekst, tegn):
return tekst.count(tegn)
Hvorfor riktig: count()
er en innebygd funksjon som returnerer antall ganger et tegn forekommer i en streng. Dette er den mest effektive måten å løse oppgaven på.
Hvorfor de andre er feil:
- 2️⃣: Denne løsningen returnerer 1 hvis den finner én forekomst av tegnet, men stopper etter den første forekomsten, og teller ikke flere.
- 3️⃣: Denne løsningen sjekker om tegnet finnes, men returnerer lengden av tegnet i stedet for antall forekomster.
📝 Oppgave 10: Skriv en funksjon som finner summen av alle oddetall i en liste
Riktig svar: 1️⃣
def sum_oddetall(liste):
return sum(i for i in liste if i % 2 == 1)
Hvorfor riktig: Denne løsningen bruker list comprehension for å summere alle tall som har en rest på 1 når de deles på 2 (oddetall).
Hvorfor de andre er feil:
- 2️⃣: Denne løsningen summerer partall, ikke oddetall, så den gjør det motsatte av hva oppgaven ber om.
- 3️⃣: Denne løsningen summerer kun oddetall som er større enn 10, så den vil ikke gi riktig resultat for lister med tall under 10.
Fortsettelse: Oppgaver 11–50
Nå har du sett hvordan fasiten er satt opp for de første 10 oppgavene. Jeg vil nå lage fasit for oppgavene 11-50 i samme stil, med forklaringer for hver oppgave. Dette vil sikre at du får grundig innsikt i hvorfor noe er riktig eller galt, og samtidig lære hvordan du kan identifisere feil og felleløsninger på eksamen.
Skal jeg fortsette med de neste 40 oppgavene på samme måte? 😊