Podcast Praktisk Python – Din Lydguide til Python Programmering 2 - itnett/FTD02H-N GitHub Wiki

Podcast Praktisk Python – Episode 10: Variabelomfang og Lokale/Globale Variabler 🔄💡


Introduksjon til Variabelomfang (Scope) 🌍

I denne episoden skal vi ta en titt på et veldig viktig konsept i Python – variabelomfang eller scope på engelsk. Når vi jobber med variabler i Python, er det avgjørende å forstå hvor variabler lever, altså hvor i koden de kan brukes. Dette kalles variabelens "livssyklus".

Det finnes to typer variabelomfang:

  • Lokalt omfang: Variabler som er opprettet inne i en funksjon, og bare kan brukes der.
  • Globalt omfang: Variabler som er opprettet utenfor funksjoner og kan brukes hvor som helst i koden.

Lokale Variabler 🏠

En lokal variabel er en variabel som defineres inne i en funksjon. Denne variabelen eksisterer kun inne i funksjonen og kan ikke brukes utenfor den.

Eksempel på en lokal variabel:

def skriv_alder():
    alder = 25
    print(f"Jeg er {alder} år gammel.")

🎙️ Lest opp:

  • def skriv underscore alder parentes start parentes slutt kolon alder lik 25 print parentes start f anførselstegn start jeg er krøll parentes start alder krøll parentes slutt mellomrom år gammel anførselstegn slutt parentes slutt
  • "Her har vi en funksjon skriv_alder som har en lokal variabel alder inne i funksjonen. Denne variabelen eksisterer kun når funksjonen kjører, og kan ikke brukes andre steder i programmet."

Hvis vi prøver å bruke alder utenfor funksjonen, vil det føre til en feil.

Feil ved bruk av lokal variabel utenfor funksjonen:

skriv_alder()
print(alder)  # Dette vil gi en feil

🎙️ Lest opp:

  • skriv underscore alder parentes start parentes slutt print parentes start alder parentes slutt hashtag dette vil gi en feil
  • "Her ser vi at vi får en feil fordi alder er definert inne i funksjonen og ikke eksisterer utenfor."

Globale Variabler 🌐

En global variabel er en variabel som er definert utenfor alle funksjoner. Disse variablene kan brukes hvor som helst i programmet, både inne i og utenfor funksjoner.

Eksempel på en global variabel:

alder = 30

def skriv_global_alder():
    print(f"Jeg er {alder} år gammel.")

🎙️ Lest opp:

  • alder lik 30 def skriv underscore global underscore alder parentes start parentes slutt kolon print parentes start f anførselstegn start jeg er krøll parentes start alder krøll parentes slutt mellomrom år gammel anførselstegn slutt parentes slutt
  • "Her har vi en global variabel alder som er definert utenfor funksjonen skriv_global_alder. Vi kan bruke denne variabelen både inne i og utenfor funksjonen."

Vi kan nå bruke alder både i funksjonen og utenfor den.

Bruk av global variabel:

skriv_global_alder()
print(alder)

🎙️ Lest opp:

  • skriv underscore global underscore alder parentes start parentes slutt print parentes start alder parentes slutt
  • "Koden skriver ut 'Jeg er 30 år gammel' fra funksjonen og deretter '30' fra utskriften utenfor funksjonen."

Endre Globale Variabler inne i Funksjoner 🔄

Selv om globale variabler kan brukes inne i funksjoner, kan du ikke endre dem direkte fra en funksjon uten å spesifisere at du vil bruke den globale versjonen.

For å gjøre dette, bruker vi nøkkelordet global.

Eksempel på endring av en global variabel:

alder = 30

def endre_alder():
    global alder
    alder = 35

endre_alder()
print(alder)

🎙️ Lest opp:

  • alder lik 30 def endre underscore alder parentes start parentes slutt kolon global alder alder lik 35 endre underscore alder parentes start parentes slutt print parentes start alder parentes slutt
  • "Her bruker vi nøkkelordet global inne i funksjonen endre_alder for å endre verdien til den globale variabelen alder. Uten global ville Python ha laget en ny lokal variabel inne i funksjonen i stedet for å endre den globale."

Oppsummering av Variabelomfang (Scope) 🔁

For å oppsummere:

  • Lokale variabler er variabler som defineres inne i funksjoner, og de kan kun brukes inne i den funksjonen.
  • Globale variabler defineres utenfor funksjoner, og kan brukes både inne og utenfor funksjoner.
  • For å endre en global variabel inne i en funksjon, må vi bruke nøkkelordet global.

Å forstå variabelomfang hjelper deg med å skrive mer strukturert og lettforståelig kode. Det gjør også at du kan unngå unødvendige feil når du prøver å bruke variabler på feil sted i programmet.


Neste Episode: Betingelser og Logiske Utsagn 🎧

Podcast Praktisk Python – Episode 11: Betingelser og Logiske Utsagn 🤔🔄


Introduksjon til Betingelser og Logiske Utsagn (If-statements) 📜💡

I dag skal vi dykke inn i et veldig viktig konsept i programmering: betingelser eller if-setninger. Dette lar oss lage programmer som tar beslutninger basert på bestemte kriterier eller data.

Med if-setninger kan vi instruere datamaskinen til å utføre forskjellige handlinger basert på om en betingelse er "sann" eller "usann". La oss se nærmere på dette.


Hva er en If-setning?

En if-setning sjekker om en påstand er sann eller ikke. Hvis den er sann, utføres koden inne i if-blokken. Hvis den ikke er sann, hopper Python videre uten å utføre noe.

Eksempel på en if-setning:

alder = 18
if alder >= 18:
    print("Du er myndig.")

🎙️ Lest opp:

  • alder lik 18 if alder større enn eller lik 18 kolon print parentes start anførselstegn start du er myndig anførselstegn slutt parentes slutt
  • "Her sjekker vi om alder er større enn eller lik 18. Hvis det er sant, skriver vi ut 'Du er myndig'."

Her vil koden skrive ut "Du er myndig", fordi betingelsen alder >= 18 er sann. Hvis alder hadde vært mindre enn 18, ville ikke noe blitt skrevet ut.


Else: Hva om If ikke er sann? 🙅‍♂️

Vi kan også bruke else for å spesifisere hva som skal skje hvis betingelsen i en if-setning ikke er sann.

Eksempel på if-else-setning:

alder = 16
if alder >= 18:
    print("Du er myndig.")
else:
    print("Du er ikke myndig.")

🎙️ Lest opp:

  • alder lik 16 if alder større enn eller lik 18 kolon print parentes start anførselstegn start du er myndig anførselstegn slutt parentes slutt else kolon print parentes start anførselstegn start du er ikke myndig anførselstegn slutt parentes slutt
  • "Her har vi lagt til en else-blokk som sier 'Du er ikke myndig' dersom alder er mindre enn 18."

Nå vil koden skrive ut "Du er ikke myndig", fordi betingelsen alder >= 18 er usann.


Elif: Flere Betingelser 🤔➡️🤔

Når vi har flere mulige betingelser å sjekke, kan vi bruke elif (som står for "else if"). Med elif kan vi legge til flere sjekkpunkter.

Eksempel på if-elif-else-setning:

alder = 15
if alder >= 18:
    print("Du er myndig.")
elif alder >= 16:
    print("Du kan snart ta førerkort.")
else:
    print("Du er for ung.")

🎙️ Lest opp:

  • alder lik 15 if alder større enn eller lik 18 kolon print parentes start anførselstegn start du er myndig anførselstegn slutt parentes slutt elif alder større enn eller lik 16 kolon print parentes start anførselstegn start du kan snart ta førerkort anførselstegn slutt parentes slutt else kolon print parentes start anførselstegn start du er for ung anførselstegn slutt parentes slutt
  • "Nå har vi tre muligheter: Er du myndig, kan du snart ta førerkort, eller er du for ung? Python sjekker disse betingelsene i rekkefølge, og utfører handlingene basert på den første sanne betingelsen."

Sammenligne Verdier med Relasjonsoperatorer ⚖️

Når vi bruker if-setninger, må vi ofte sammenligne verdier. Python har flere relasjonsoperatorer som hjelper oss å gjøre dette:

  • == : sjekker om verdier er like (likhet).
  • != : sjekker om verdier er ulike (ulikhet).
  • > : sjekker om en verdi er større enn en annen.
  • < : sjekker om en verdi er mindre enn en annen.
  • >= : sjekker om en verdi er større enn eller lik en annen.
  • <= : sjekker om en verdi er mindre enn eller lik en annen.

🎙️ Eksempel på bruk av == og !=:

brukernavn = "admin"
if brukernavn == "admin":
    print("Velkommen, administrator.")
else:
    print("Velkommen, bruker.")

🎙️ Lest opp:

  • brukernavn lik anførselstegn admin anførselstegn slutt if brukernavn dobbel likhetstegn admin kolon print parentes start anførselstegn start velkommen komma mellomrom administrator punktum anførselstegn slutt parentes slutt else kolon print parentes start anførselstegn start velkommen komma mellomrom bruker punktum anførselstegn slutt parentes slutt
  • "Her sjekker vi om brukernavnet er admin. Hvis ja, skriver vi ut en melding for administrator. Hvis ikke, får brukeren en annen velkomstmelding."

Logiske Utsagn med and, or og not 🧠

Vi kan kombinere flere betingelser ved å bruke de logiske operatorene and, or og not.

  • and : begge betingelsene må være sanne.
  • or : minst én av betingelsene må være sann.
  • not : inverterer sannheten til en betingelse.

🎙️ Eksempel med and og or:

alder = 20
navn = "Sara"
if alder >= 18 and navn == "Sara":
    print("Velkommen, Sara.")

🎙️ Lest opp:

  • alder lik 20 navn lik anførselstegn Sara anførselstegn if alder større enn eller lik 18 and navn dobbel likhetstegn anførselstegn Sara anførselstegn kolon print parentes start anførselstegn start velkommen komma mellomrom Sara punktum anførselstegn slutt parentes slutt
  • "Her sjekker vi om alder er minst 18 og om navnet er Sara. Begge betingelsene må være sanne for at meldingen skal skrives ut."

Oppsummering av Betingelser og Logiske Utsagn 🔁

For å oppsummere:

  • Vi bruker if-setninger til å sjekke betingelser.
  • Hvis betingelsen er sann, utfører Python koden i if-blokken.
  • Vi kan bruke else for å definere hva som skal skje hvis betingelsen ikke er sann.
  • Med elif kan vi sjekke flere betingelser i rekkefølge.
  • Vi bruker relasjonsoperatorer som ==, >, <, != for å sammenligne verdier.
  • Logiske operatorer som and, or og not hjelper oss med å kombinere flere betingelser.

Nå har du en god forståelse av hvordan Python kan ta beslutninger basert på data, og hvordan du kan bruke betingelser for å kontrollere flyten i programmene dine.


Neste Episode: Løkker og Gjentakelser 🎧

Podcast Praktisk Python – Episode 12: Løkker og Gjentakelser 🔄🎧


Introduksjon til Løkker 🔁

Velkommen tilbake! I denne episoden skal vi snakke om løkker, som er en essensiell del av programmering. Løkker lar oss gjenta en del av koden flere ganger uten å måtte skrive samme kode om igjen og om igjen. Dette gjør programmene våre mer effektive og mindre repeterende.

Det finnes to hovedtyper av løkker i Python:

  1. while-løkker
  2. for-løkker

La oss dykke rett inn i hva disse løkkene er og hvordan de fungerer!


While-løkker 🌀

En while-løkke fortsetter å kjøre så lenge en betingelse er sann. Når betingelsen blir usann, stopper løkken.

Eksempel på while-løkke:

teller = 1
while teller <= 5:
    print(f"Dette er runde {teller}")
    teller += 1

🎙️ Lest opp:

  • teller lik 1 while teller mindre enn eller lik 5 kolon print parentes start f anførselstegn start dette er runde start krøllparantes teller slutt krøllparantes anførselstegn slutt parentes slutt teller pluss lik 1
  • "Denne løkken fortsetter å skrive ut meldingen så lenge teller er mindre enn eller lik 5. Etter hver runde øker vi verdien av teller med 1."

Her vil Python skrive ut følgende:

Dette er runde 1
Dette er runde 2
Dette er runde 3
Dette er runde 4
Dette er runde 5

Løkken stopper etter at teller blir 6, fordi betingelsen teller <= 5 ikke lenger er sann.


Evige løkker ♾️

En evig løkke (infinite loop) oppstår når betingelsen i en while-løkke aldri blir usann. Dette kan krasje programmet, så det er viktig å passe på at løkken stopper.

🎙️ Eksempel på evig løkke:

while True:
    print("Denne løkken stopper aldri!")

🎙️ Lest opp:

  • while true kolon print parentes start anførselstegn start denne løkken stopper aldri anførselstegn slutt parentes slutt
  • "Denne løkken vil kjøre for alltid fordi betingelsen True alltid er sann."

For å unngå evige løkker, må vi sørge for at det er en betingelse som kan bli usann eller legge til en måte å bryte ut av løkken på.


For-løkker 🔄

En for-løkke er perfekt når du vet hvor mange ganger du vil gjenta en del av koden. Ofte brukes for-løkker til å iterere over lister, strenger eller andre sekvenser.

🎙️ Eksempel på for-løkke:

for tall in range(1, 6):
    print(f"Tallet er {tall}")

🎙️ Lest opp:

  • for tall in range parentes start 1 komma 6 parentes slutt kolon print parentes start f anførselstegn start tallet er start krøllparantes tall slutt krøllparantes anførselstegn slutt parentes slutt
  • "Her går vi gjennom tallene fra 1 til 5 ved hjelp av range-funksjonen og skriver ut hver verdi."

Denne koden skriver ut:

Tallet er 1
Tallet er 2
Tallet er 3
Tallet er 4
Tallet er 5

Bruke For-løkker med Lister 🗂️

En vanlig bruk av for-løkker er å gå gjennom lister og gjøre noe med hvert element.

🎙️ Eksempel:

navn_liste = ["Anna", "Sara", "Jonas"]
for navn in navn_liste:
    print(f"Hei, {navn}!")

🎙️ Lest opp:

  • navn understrek liste lik klamme start anførselstegn Anna anførselstegn komma anførselstegn Sara anførselstegn komma anførselstegn Jonas anførselstegn klamme slutt for navn in navn understrek liste kolon print parentes start f anførselstegn start hei komma mellomrom start krøllparantes navn slutt krøllparantes utropstegn anførselstegn slutt parentes slutt
  • "Vi itererer gjennom listen navn_liste, og for hvert navn skriver vi ut en hilsen."

Denne koden skriver ut:

Hei, Anna!
Hei, Sara!
Hei, Jonas!

break og continue: Kontrollere Flyten i Løkker 🛑➡️

Vi kan bruke break og continue for å styre flyten i en løkke.

  • break avslutter hele løkken umiddelbart.
  • continue hopper over resten av koden i denne runden og fortsetter til neste runde.

🎙️ Eksempel med break:

for tall in range(1, 10):
    if tall == 5:
        break
    print(tall)

🎙️ Lest opp:

  • for tall in range parentes start 1 komma 10 parentes slutt kolon if tall dobbel likhetstegn 5 kolon break print parentes start tall parentes slutt
  • "Her stopper løkken når tall blir 5, takket være break."

Koden skriver ut:

1
2
3
4

🎙️ Eksempel med continue:

for tall in range(1, 6):
    if tall == 3:
        continue
    print(tall)

🎙️ Lest opp:

  • for tall in range parentes start 1 komma 6 parentes slutt kolon if tall dobbel likhetstegn 3 kolon continue print parentes start tall parentes slutt
  • "Når tall er 3, hopper vi over resten av koden i denne runden med continue, og går videre til neste tall."

Koden skriver ut:

1
2
4
5

Nestede Løkker: En Løkke i En Løkke 🔄🔄

En nestet løkke betyr at vi har en løkke inne i en annen løkke. Dette kan være nyttig når vi jobber med flerdimensjonale data, som matriser eller lister i lister.

🎙️ Eksempel på nestede løkker:

for i in range(1, 4):
    for j in range(1, 3):
        print(f"i: {i}, j: {j}")

🎙️ Lest opp:

  • for i in range parentes start 1 komma 4 parentes slutt kolon for j in range parentes start 1 komma 3 parentes slutt kolon print parentes start f anførselstegn start i kolon mellomrom start krøllparantes i slutt krøllparantes komma mellomrom j kolon mellomrom start krøllparantes j slutt krøllparantes anførselstegn slutt parentes slutt

Denne koden vil skrive ut:

i: 1, j: 1
i: 1, j: 2
i: 2, j: 1
i: 2, j: 2
i: 3, j: 1
i: 3, j: 2

Oppsummering av Løkker 📜🔄

For å oppsummere:

  • while-løkker kjører så lenge en betingelse er sann.
  • for-løkker brukes til å iterere over en sekvens, som en liste eller et område av tall.
  • Vi bruker break for å avslutte en løkke tidlig og continue for å hoppe til neste runde av løkken.
  • Nestede løkker er når en løkke er plassert inne i en annen løkke.

Løkker gjør det mulig å skrive effektiv kode og spare mye tid, spesielt når vi må utføre gjentatte oppgaver. Prøv å lage noen egne eksempler for å få god kontroll på løkker!


Neste Episode: Arbeid med Filer i Python 📄