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 variabelalder
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 funksjonenskriv_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 funksjonenendre_alder
for å endre verdien til den globale variabelenalder
. Utenglobal
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' dersomalder
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."
and
, or
og not
🧠
Logiske Utsagn med 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 erSara
. 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
ognot
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:
- while-løkker
- 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 avteller
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ærebreak
."
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 medcontinue
, 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 ogcontinue
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!