Python Academy · Lektion

Returvärden och räckvidd

Förstå return-satser och variablers räckvidd (lokal kontra global).

Lektion 4 av 414 steg

Returvärden och räckvidd är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Introduktion

Att förstå return-satser och variabelscope är grundläggande för att skriva förutsägbara Python-funktioner utan buggar.

return-satsen

return expr avslutar funktionen och skickar expr tillbaka till den som anropar den. return utan ett värde skickar None.
def double(x):
    return x * 2
print(double(5))

Tidig retur

Det går bra att ha flera return-satser – den första som körs avslutar funktionen. Användbart för guard clauses.
def abs_val(x):
    if x < 0:
        return -x
    return x
print(abs_val(-7))

Lokalt scope

Variabler som skapas inuti en funktion är lokala – de finns inte utanför funktionen.
def f():
    x = 10
    print(x)
f()
# print(x)  # NameError

Globalt scope

Variabler som definieras på modulnivå är globala. Funktioner kan LÄSA globala variabler utan att deklarera dem.
name = 'Alice'
def greet():
    print('Hello', name)  # reads global
greet()

Nyckelordet global

global x inuti en funktion gör att du kan SKRIVA till en global variabel. Använd det sparsamt – det gör koden svårare att förstå.
counter = 0
def increment():
    global counter
    counter += 1
increment()
print(counter)

Nyckelordet nonlocal

nonlocal x i en nästlad funktion gör att du kan skriva till en variabel i ett omslutande scope (men inte det globala scopet).
def make_counter():
    count = 0
    def inc():
        nonlocal count
        count += 1
        return count
    return inc
c = make_counter()
print(c(), c())

LEGB-regeln

Python slår upp namn i följande ordning: Local → Enclosing → Global → Built-in. Detta är LEGB-regeln.
x = 'global'
def outer():
    x = 'enclosing'
    def inner():
        print(x)  # enclosing
    inner()
outer()

Returnera flera värden

def f(): return 1, 2, 3 returnerar en tupel. a, b, c = f() packar upp den.
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)

Returnera funktioner (closures)

En funktion kan returnera en annan funktion. Den inre funktionen kommer ihåg det yttre scopet – detta är en closure.
def make_adder(n):
    def adder(x):
        return x + n
    return adder
add5 = make_adder(5)
print(add5(3))

None kontra utelämnad retur

Returnera alltid None uttryckligen när du signalerar frånvaro. Att förlita sig på implicit None är giltigt, men ett uttryckligt värde är tydligare.
def find(lst, val):
    for i, x in enumerate(lst):
        if x == val:
            return i
    return None
print(find([1,2,3], 9))

Snabbkontroll

Vilket scope kontrolleras sist enligt LEGB-regeln?

Sammanfattning

return avslutar en funktion med ett värde. Lokala variabler läcker inte ut. Använd global/nonlocal för att skriva till yttre scope. LEGB: Local Enclosing Global Built-in.

Fortsätt

Bra jobbat! Gå vidare till nästa lektion för att fortsätta utvecklas.
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Returvärden och räckvidd” gratis?

Ja – hela texten till ”Returvärden och räckvidd” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Returvärden och räckvidd”?

Förstå return-satser och variablers räckvidd (lokal kontra global). Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Returvärden och räckvidd”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Definiera och anropa funktioner
  2. Standardargument och nyckelordsargument
  3. args och kwargs
  4. Returvärden och räckvidd
← Tillbaka till Python Academy