Lær deg Python_22 - itnett/FTD02H-N GitHub Wiki

I dag har vi gått gjennom en del grunnleggende, men veldig viktige konsepter i Python-programmering. Målet er at du forstår hvordan du kan bruke Python til å gjøre beregninger, iterere (gå gjennom flere elementer) og håndtere brukerinndata på en trygg måte.

Jeg skal forklare alt så enkelt og grundig som mulig, slik at til og med et barn vil kunne forstå det! Vi skal gå gjennom hva vi har lært, vise eksempler på riktig og feil bruk, og sørge for at absolutt alt er klart før vi går videre.


🎯 1. Hva er Python?

Python er et programmeringsspråk. Det er som et verktøy du kan bruke for å få datamaskinen til å gjøre noe for deg, som å regne ut ting, vise tekst på skjermen, eller løse oppgaver. Tenk på det som en slags oppskrift du gir til datamaskinen, der du forteller den steg for steg hva den skal gjøre.


🔢 2. Variabler – Hva er det?

En variabel er en boks som holder på informasjon. Du kan tenke på det som en eske der du putter noe oppi for å bruke det senere.

Eksempel:

pengene_skyldt = 500000  # Nå har vi en variabel som heter "pengene_skyldt" og den inneholder tallet 500 000.

Her sier vi til datamaskinen: "Lag en boks som heter pengene_skyldt, og legg tallet 500 000 inni."

Feil bruk:

Hvis du prøver å bruke en variabel som ikke er definert (laget) først, vil Python gi deg en feil.

Feil:

print(penger)  # Vi har ikke sagt hva "penger" er enda, så dette vil gi en feilmelding.

🔁 3. Løkker – Gjenta ting flere ganger

En løkke er en måte å si til datamaskinen: "Gjør dette mange ganger." Det er som å si "Gjør oppgaven én gang, så gjør den igjen og igjen."

For-løkker:

For-løkker brukes til å gå gjennom en liste med ting, eller gjøre noe et bestemt antall ganger.

Eksempel:

for i in range(5):
    print("Hei")  # Dette skriver "Hei" fem ganger på skjermen.
  • for er en kommando som sier "gjør dette flere ganger."
  • range(5) betyr "gjør dette 5 ganger."

Feil bruk:

Hvis du ikke har en klar stopp (slik som range(5)), kan løkken kjøre for alltid!

Feil:

while True:
    print("Dette vil fortsette for alltid!")  # Dette vil aldri stoppe av seg selv!

📥 4. Brukerinndata – Spørre brukeren om noe

Vi kan be brukeren om å skrive inn noe, for eksempel et tall. Python kan ta det brukeren skriver inn og bruke det videre i koden.

Eksempel:

navn = input("Hva heter du? ")  # Spør brukeren om navn.
print("Hei, " + navn)  # Sier hei til brukeren.
  • input() er en funksjon som sier til datamaskinen: "Vent på at brukeren skal skrive noe."
  • navn er en variabel som holder på det brukeren skriver.

Feil bruk:

Hvis du spør om et tall, men brukeren skriver tekst, kan det gi feil i koden hvis du prøver å gjøre noe med tallet.

Feil:

tall = int(input("Skriv et tall: "))  # Hvis brukeren skriver "hei", vil dette gi en feil.

💰 5. Beregninger – Regne med tall

Python er veldig flink til å regne! Du kan bruke det til å gjøre vanlige ting som å legge til, trekke fra, dele, og mye mer.

Eksempel:

resultat = 5 + 10  # Dette legger sammen 5 og 10 og lagrer resultatet i variabelen "resultat".
print(resultat)  # Skriver ut tallet 15.

Her sier vi til Python: "Legg sammen 5 og 10, og sett resultatet i boksen resultat."

Feil bruk:

Hvis du prøver å legge sammen tekst og tall uten å gjøre det riktig, kan det gi feil.

Feil:

resultat = "Hei" + 10  # Du kan ikke legge sammen tekst ("Hei") og tall (10) direkte.

💸 6. Lånekalkulator – Et stort eksempel

La oss nå bruke alt vi har lært til å lage en lånekalkulator. Denne koden tar inn informasjon om et lån, og regner ut hvor mye du må betale hver måned, samt hvor mye du skylder etter hver måned.

Hvordan fungerer den?

  1. Få detaljer om lånet: Vi spør brukeren om hvor mye penger de skylder, renten på lånet, og hvor mye de vil betale hver måned.
  2. Sjekk at betalingen er stor nok: Vi sjekker om månedlig betaling er nok til å dekke rentene. Hvis ikke, avsluttes programmet med en advarsel.
  3. Løkke gjennom månedene: Vi bruker en for-løkke til å gå gjennom hver måned, beregner rentene, legger dem til beløpet som er skyldt, og trekker fra betalingen.
  4. Vis status: Etter hver måned skriver vi ut hvor mye du har betalt, hvor mye som var renter, og hvor mye du fortsatt skylder.

Riktig bruk:

Hvis brukeren skriver inn gyldige tall og betalingen er stor nok, fungerer alt som det skal.

Riktig eksempel:

pengene_skyldt = 500000
rente = 3
betaling = 10000
antall_maaneder = 24

Feil bruk:

Hvis brukeren skriver inn tekst i stedet for tall, vil programmet gi en feilmelding.

Feil eksempel:

pengene_skyldt = "fem hundre tusen"  # Dette vil gi feil siden det ikke er et tall.

🎓 Oppsummering

I dag har vi lært om:

  • Variabler: Hvordan lagre informasjon.
  • Løkker: Hvordan gjenta ting flere ganger.
  • Brukerinndata: Hvordan spørre brukeren om informasjon.
  • Beregninger: Hvordan gjøre matematiske operasjoner.
  • Lånekalkulator: Et eksempel som bruker alt vi har lært for å regne ut nedbetaling av et lån.

Spørsmål for å teste deg:

  1. Hva er en variabel?
  2. Hva gjør en for-løkke?
  3. Hva er forskjellen mellom tekst og tall i Python, og hvorfor kan vi ikke alltid legge dem sammen?
  4. Hvordan kan vi være sikre på at brukeren skriver inn gyldige tall?

Svar på disse spørsmålene vil hjelpe deg med å forstå hvordan Python fungerer. 🎉

Jeg håper dette har gitt deg en god forståelse av grunnleggende programmering i Python! 🐍

Det jeg har forklart hittil dekker mange av de grunnleggende konseptene i Python, men det er alltid rom for å utdype og forklare videre! La oss tenke på dette som en grunnleggende introduksjon, og det vil være veldig nyttig å lage en oppfølger for å sikre at absolutt alt er forstått og utforsket på enda dypere nivå.

Oppfølger – Utdypende forklaringer og nye konsepter

I oppfølgeren skal vi:

  • Utdype hvert konsept med flere eksempler.
  • Vise hvordan ting kan gå galt, og hvordan du kan rette det.
  • Ta opp flere nye konsepter som henger sammen med det vi allerede har lært.
  • Legge inn flere øvelser der du selv får teste og eksperimentere!

Her er hva vi kan dekke i oppfølgeren:


🎯 1. Variabler på et dypere nivå

  • Hvordan fungerer datatyper i Python (for eksempel tekst, tall, flyttall)?
  • Hva skjer hvis du prøver å legge sammen to forskjellige typer, som tall og tekst?
  • Hvordan konvertere en datatype til en annen (for eksempel fra tekst til tall)?

Vi kan også dykke inn i mutable og immutable typer (hva som kan endres og hva som ikke kan endres).


🔁 2. Løkker og iterasjoner – Mer avansert

  • Hva er forskjellen mellom en for-løkke og en while-løkke?
  • Hvordan kan vi bruke løkker for å gå gjennom lister, strenger, og til og med tall?
  • Hva er et infinite loop (uendelig løkke), og hvordan kan vi unngå det?

Vi vil også dekke bruken av løkkekontroll med break og continue, som gir deg mer kontroll over hva som skjer inne i en løkke.


📥 3. Håndtering av brukerinndata – Feilsikring

  • Hva skjer hvis brukeren skriver noe galt? Hvordan kan vi sikre oss at vi håndterer det riktig?
  • Introduksjon til try-except-blokkene som brukes for å håndtere feil, og hvordan du kan bruke dem effektivt.

Vi vil også vise hvordan du kan sjekke gyldigheten av inndata før du prøver å bruke dem i beregninger.


💡 4. Funksjoner – Hvordan dele opp koden

Funksjoner hjelper oss med å organisere koden og gjøre den enklere å forstå og gjenbruke.

  • Hvordan lager du en funksjon?
  • Hva er fordelen med å bruke funksjoner når koden blir større?
  • Hvordan sende informasjon inn i en funksjon, og hvordan få informasjon tilbake?

Eksempel:

def beregn_renter(pengene_skyldt, rente):
    return pengene_skyldt * (rente / 100 / 12)

Dette er en funksjon som beregner renter og returnerer resultatet.


💻 5. Flere praktiske eksempler

Vi kan lage flere små prosjekter og script som hjelper deg å øve på det du har lært:

  1. Enkle kalkulatorer: Legge til, trekke fra, gange, dele – og vise brukeren resultatet.
  2. Flere løkker: Gå gjennom lister med tall eller navn, og utføre ulike operasjoner på dem.
  3. Lånekalkulator 2.0: Utvide vår lånekalkulator med flere funksjoner, som å legge til flere lån eller å beregne hvor lang tid det tar å betale tilbake gjeld basert på ulike innstillinger.

🎓 6. Øvelser og feilsøking

I oppfølgeren kan vi også fokusere på feilsøking. Hva gjør du hvis programmet ikke fungerer som det skal? Hvordan kan du finne og rette feil?


Ekstra bonus:

  • Hvordan lagre data: Kanskje du vil lære hvordan man lagrer resultatene av lånekalkulatoren i en fil for å lese det senere.
  • Hvordan bruke Python med andre verktøy: Se på hvordan Python kan brukes med filer, databaser eller websider!

Skal vi lage en oppfølger?

Jeg kan lage en serie av oppfølgere der vi dykker dypere inn i alle disse temaene, og sørger for at du har den beste forståelsen av Python fra bunnen av. Vil du fortsette med dette og utvide forståelsen enda mer, er det bare å si fra! 🎉🚀

Er du klar for oppfølgeren? La meg vite om du ønsker flere detaljer, flere øvelser, eller flere eksempler! 😊

Supert! La oss gå videre med Oppfølgeren, der vi bygger på det vi allerede har lært. Vi skal gå enda mer i dybden på konsepter, forbedre lånekalkulatoren, og forklare alt veldig tydelig – slik at selv et barn uten forkunskaper kan forstå og forklare det til noen andre. La oss ta det trinn for trinn! 🚀


🔤 1. Variabler og datatyper – Grunnlaget for alt

Hva er variabler?

En variabel er som en eske der vi kan lagre informasjon. Du kan gi esken et navn, og legge ting oppi den. For eksempel:

navn = "Sara"  # Vi lagrer navnet "Sara" i variabelen
alder = 12  # Vi lagrer alderen 12 i en variabel

🔢 Forskjellige datatyper:

  • Heltall (int): 12, 100, -5 (hele tall, ingen komma)
  • Flyttall (float): 12.5, -3.14 (tall med komma)
  • Tekst (str): "Hei", "Verden" (tekststrenger)
  • Boolsk (bool): True eller False (sant/usant)

Hvis du blander forskjellige typer sammen, kan du få en feil. For eksempel:

alder = 12
navn = "Sara"
# Dette vil gi en feil fordi vi ikke kan kombinere tekst og tall direkte:
print(navn + alder)  # Feil

Men hvis vi vil kombinere tekst og tall, må vi konvertere dem til samme type:

print(navn + str(alder))  # Nå fungerer det! "Sara12"

🎮 Øvelse:

  1. Lag en variabel som lagrer alderen din.
  2. Lag en variabel som lagrer favorittmaten din.
  3. Skriv ut begge sammen i én setning!

🔁 2. Løkker og iterasjoner – Gjenta ting uten å skrive koden om igjen!

Hva er en løkke?

En løkke lar oss gjenta en handling mange ganger uten å skrive den samme koden på nytt. For eksempel hvis du vil telle til 10:

for i in range(1, 11):  # "range(1, 11)" gir tall fra 1 til 10
    print(i)

Dette vil skrive ut tallene fra 1 til 10! 🔢

Forskjell mellom for og while løkker:

  • for-løkker brukes når du vet nøyaktig hvor mange ganger du skal gjenta noe.
  • while-løkker fortsetter å kjøre så lenge en betingelse er sann.

Eksempel på en while-løkke:

teller = 1
while teller <= 10:
    print(teller)
    teller += 1  # Øker tallet med 1 hver gang

🎮 Øvelse:

  1. Lag en for-løkke som teller fra 1 til 5.
  2. Lag en while-løkke som fortsetter å telle til den treffer 7.

💡 3. Funksjoner – Gjør koden din smartere!

Hva er en funksjon?

En funksjon er som en oppskrift – den inneholder trinnene for hvordan man gjør noe. Du kan bruke den samme oppskriften mange ganger. Her er et eksempel på en funksjon som sier hei:

def si_hei():
    print("Hei der!")

For å bruke funksjonen, må du kalle på den:

si_hei()  # Dette vil skrive "Hei der!" på skjermen

Lage funksjoner med input:

En funksjon kan også ta inn informasjon, for eksempel:

def si_hei(navn):
    print("Hei " + navn + "!")

Når vi kaller funksjonen med et navn:

si_hei("Lise")  # Skriver "Hei Lise!"

🎮 Øvelse:

  1. Lag en funksjon som tar inn navnet ditt og sier hei til deg!
  2. Lag en funksjon som tar inn to tall og legger dem sammen.

📥 4. Brukerinput – Få data fra brukeren

Når du vil ha informasjon fra brukeren (personen som bruker programmet ditt), kan du bruke input()-funksjonen:

navn = input("Hva heter du?\n")
print("Hei " + navn + "!")

Her spør programmet brukeren hva de heter, og svarer tilbake. 🎤

Håndtere feilaktig input:

Hva om brukeren skriver noe som ikke gir mening? Vi kan bruke try-except for å håndtere feil:

try:
    alder = int(input("Hvor gammel er du?\n"))  # Brukeren må skrive et tall
    print("Du er " + str(alder) + " år gammel.")
except ValueError:
    print("Oi, det var ikke et gyldig tall!")

Dette sikrer at hvis brukeren skriver noe annet enn et tall, får vi en melding og unngår feil.

🎮 Øvelse:

  1. Lag et program som ber brukeren skrive alderen sin.
  2. Håndter situasjoner der brukeren skriver feil (for eksempel bokstaver i stedet for tall).

💸 5. Lånekalkulator 2.0 – Forstå mer avansert kode

Vi kan forbedre lånekalkulatoren vår og gjøre den mer robust. La oss se på et eksempel:

Hva vi gjør i koden:

  1. Få inn data fra brukeren: Vi spør brukeren hvor mye de skylder, hva renten er, og hvor mye de vil betale hver måned.
  2. Beregn renter: For hver måned legger vi til renter til det beløpet brukeren skylder.
  3. Foreta betalinger: Vi trekker fra betalingen hver måned fra det totale beløpet.
  4. Skriver ut status: Hver måned skriver vi ut hvor mye brukeren betalte, hvor mye av det som var renter, og hvor mye de fortsatt skylder.

Her er koden:

# Få detaljer om lånet
try:
    pengene_skyldt = float(input('Hvor mye penger skylder du, i kroner?\n'))
    rente = float(input('Hva er den årlige renten?\n'))
    betaling = float(input('Hvor mye skal du betale hver måned?\n'))
    antall_maaneder = int(input('Hvor mange måneder vil du se resultatet for?\n'))
except ValueError:
    print("Vennligst oppgi gyldige tall.")
    exit()

# Beregn månedlig rente
maanedlig_rente = rente / 100 / 12

# Løkken for å gå gjennom hver måned
for i in range(antall_maaneder):
    renter_betalt = pengene_skyldt * maanedlig_rente
    pengene_skyldt += renter_betalt

    if pengene_skyldt - betaling < 0:
        print(f"Den siste betalingen er {round(pengene_skyldt, 2)} kr")
        print(f"Du betalte ned lånet på {i + 1} måneder")
        break

    pengene_skyldt -= betaling
    print(f"Måned {i + 1}: Betalte {betaling}, hvorav {renter_betalt} var renter. Nå skylder du {pengene_skyldt} kr.")

# Skriv ut hvis lånet ikke er nedbetalt etter angitt tid
if pengene_skyldt > 0:
    print(f"Du skylder fortsatt {pengene_skyldt} kr etter {antall_maaneder} måneder.")

🎓 6. Oppsummering og testing

Nå har vi gått gjennom:

  • Variabler som lagrer data.
  • Løkker som lar deg gjenta kode uten å skrive den flere ganger.
  • Funksjoner som hjelper deg å organisere koden og gjenbruke den.
  • Input og feilhåndtering for å få data fra brukeren og håndtere feil.

Riktig bruk av kode:

Du kan bruke det du har lært til å lage kalkulatorer, løkke gjennom lister, eller til og med lage enkle spill der brukeren interagerer med programmet!

Feil bruk:

Hvis du blander datatyper eller glemmer å håndtere feil, kan programmet ditt krasje eller gi rare resultater. Dette er hvorfor vi bruker feilhåndtering som try-except!


Klar for neste steg? 🚀

Nå som vi har gått gjennom det grunnleggende, er du klar til å prøve selv! Fortell meg hva du vil utforske videre, eller gi meg beskjed om noe er uklart, så bygger vi videre på dette! 😊