Funksjoner i Python Tutor

Python Tutor er et supert verktøy til å utforske funksjoner, parametere og variabler.

Som eksempel skal vi studere kode fra artikkelen om lokale og globale variabler.

Vi har funksjonen kvadrer(), som kvadrerer verdien til parameteren x:

def kvadrer(x):
    x = x**2

I hovedprogrammet oppretter vi en variabel, x, med verdien 4, kaller opp funksjonen med x som argument, og skriver ut verdien til x etterpå.

x = 4
kvadrer(x)
print(x)

Billedserien under viser hva som skjer når vi linje for linje kjører koden i Python Tutor. Husk at det er den grønne pila som peker på den sist kjørte linja.

Vi kjører koden def kvadrer(x). Vi ser at kvadrer nå opprettes som en variabel med verdi lik ei pil som peker til funksjonen. Innholdet i funksjonen kjøres ikke på dette tidspunktet, neste linje som vil bli kjørt, er x = 4.

Første kodelinje kjørt i Python Tutor

Vi kjører koden x = 4. Vi ser at x nå opprettes som en variabel med verdi lik 4.

Andre kodelinje kjørt i Python Tutor

Vi kjører koden kvadrer(x). Vi ser at funksjonen kvadrer() blir opprettet som en blå boks. Dette kan være litt forvirrende, for egentlig burde nok boksen vært der pila peker. Men vi ser at boksen inneholder den lokale variabelen x. Dette er parameteren x som ble gitt verdien 4 gjennom argumentet x fra hovedprogrammet. 

Tredje kodelinje kjørt i Python Tutor

Vi kjører koden x = x**2 i kvadrer(). Vi ser at x inni kvadrer() nå blir 16, og det blir angitt at funksjonens returverdi er None. Det er fordi funksjoner som ikke har angitt returverdi, returnerer None, som det står i artikkelen om å skrive funksjoner. Vi legger merke til at vi nå har to variabler som begge heter x, men som har forskjellig verdi.

Fjerde kodelinje kjørt i Python Tutor

Det neste som skjer, er at den grønne pila markerer at kjøringen av kvadrer() er utført, og boksen med funksjonen kvadrer() forsvinner. Selv om variabelen kvadrer enda eksisterer, er altså selve funksjonen borte. Det betyr blant annet at variabelen x i kvadrer() ikke lenger finnes.

Femte kodelinje kjørt i Python Tutor

Vi kjører koden print(x). Vi ser at tallet 4 dukker opp i feltet «Print Output».

Sjette kodelinje kjørt i Python Tutor

Oppgave 1:

Bildet under viser koden fra oppgave 1 i artikkelen om lokale og globale variabler, lagt inn i Python Tutor. Vi har klikket oss fram så langt at verdien til returvariabelen er beregnet, men funksjonen har enda ikke returnert. Tegn en skisse av hvordan du tror høyre side av bildet i Python Tutor ser ut. Altså hvilke bokser som finnes, hvilke variabler som finnes, og hvilken verdi de har. Sjekk så i Python Tutor om du har rett.

Oppgave i Python Tutor

Se løsningsforslag