Python Academy · leksjon

Returverdier og virkefelt

Forstå return-setninger og variablers virkefelt (lokalt kontra globalt).

Leksjon 4 av 414 trinn

Returverdier og virkefelt er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Introduksjon

Å forstå return-setninger og variabelomfang er grunnleggende for å skrive forutsigbare Python-funksjoner uten feil.

return-setningen

return expr avslutter funksjonen og sender expr tilbake til den som kalte funksjonen. return uten en verdi sender None.
def double(x):
    return x * 2
print(double(5))

Tidlig retur

Det er helt greit å ha flere return-setninger — den første som nås, avslutter funksjonen. Dette er nyttig for vaktklausuler.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Lokalt omfang

Variabler som opprettes inne i en funksjon, er lokale — de eksisterer ikke utenfor funksjonen.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Globalt omfang

Variabler som defineres på modulnivå, er globale. Funksjoner kan LESE globale variabler uten å deklarere dem.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

global-nøkkelordet

global x inne i en funksjon lar deg SKRIVE til en global variabel. Bruk dette sparsomt — det gjør koden vanskelig å forstå.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

nonlocal-nøkkelordet

nonlocal x i en nestet funksjon lar deg skrive til en variabel i et omsluttende (men ikke globalt) omfang.
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

LEGB-regelen

Python løser navn i denne rekkefølgen: Local → Enclosing → Global → Built-in. Dette er LEGB-regelen.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Returnere flere verdier

def f(): return 1, 2, 3 returnerer en tuppel. a, b, c = f() pakker den ut.
def stats(lst):
    return min(lst), max(lst), sum(lst)/len(lst)
lo, hi, avg = stats([1,2,3,4,5])
print(lo, hi, avg)

Returnere funksjoner (closures)

En funksjon kan returnere en annen funksjon. Den indre funksjonen husker det ytre omfanget — dette er en closure.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None kontra manglende retur

Returner alltid None eksplisitt når du signaliserer fravær av en verdi. Det er gyldig å stole på implisitt None, men en eksplisitt retur er tydeligere.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Kort sjekk

Hvilket omfang kontrolleres sist i LEGB-regelen?

Oppsummering

return avslutter en funksjon med en verdi. Lokale variabler lekker ikke ut. Bruk global/nonlocal for å skrive til ytre omfang. LEGB: Local Enclosing Global Built-in.

Fortsett

Godt jobbet! Gå videre til neste leksjon for å fortsette fremgangen din.
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Returverdier og virkefelt» gratis?

Ja – hele teksten i «Returverdier og virkefelt» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Returverdier og virkefelt»?

Forstå return-setninger og variablers virkefelt (lokalt kontra globalt). Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Returverdier og virkefelt»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Definere og kalle funksjoner
  2. Standard- og nøkkelordargumenter
  3. args og kwargs
  4. Returverdier og virkefelt
← Tilbake til Python Academy