Logga in för att kunna spara vad du har gjort.
Hem
Nästa >>
VARNING! Fönstret är för smalt för att använda pythonlabbet.se fullt ut. Använd en enhet med tangentbord!

Funktioner

I det här avsnittet kommer du att lära dig att

Vad är en funktion?

En funktion är ett block kod som utför en viss uppgift. Funktionen kan, men behöver inte, ta emot ett antal parametrar som indata. Funktionen kan också, men behöver inte, returnera något värde som kan användas där funktionen anropades.

I programmering vill vi undvika att skriva samma kod på flera ställen. Med funktioner kan du skriva koden på en plats och sedan använda den om och om igen. I många situationer kan det också vara bra med funktioner även om de inte ska användas på flera ställen för att göra koden mer läsbar. Funktioner gör också att koden blir enklare att testa så att den fungerar korrekt.

En bra funktion är en funktion som har endast en tydligt definierad uppgift. Det gör att den är enkel att förstå och enkel att testa. Funktionen ska inte hämta information utifrån mer än vad som anges i parametrarna.

Definiera och anropa en enkel funktion

Vi börjar med att definiera en enkel funktion som bara skriver ut en sträng. Det görs med det reserverade ordet def (förkortning av engelskans define). Vi skriver def funktionens_namn(): för att definiera en funktion som inte tar emot några parametrar (kallas också argument). Vi ska senare se hur vi använder utrymmet inom parentesen för att få funktionen att ta emot data. Indentering används sedan för att visa vilka rader som tillhör funktionen.

Var som helst i koden efter att funktionen är definierad, kan vi anropa funktionen så här funktionens_namn(). Viktigt att komma ihåg att funktionen måste vara definierad först, annars känner Python inte igen namnet.

Exempel

En enkel funktion som skriver en rad text. Funktionen anropas på sista raden.

def enkel_funktion():
    print('hej från funktionen')
    
enkel_funktion()

Logga in eller skapa konto för att spara dina framsteg och din kod.

En enkel funktion

Definiera en funktion med namn min_funktion som skriver ut Hej! på en rad. Avsluta med att anropa funktionen.

-- Programmets utskrifter --

Parameter och returvärde

De flesta funktioner tar emot värden, så kallade parametrar eller argument. Dessa argument bearbetas i funktionen, exempelvis för att räkna ut något. Därefter är det vanligt att funktionen returnerar något värde. Att ett värde returneras betyder att det skickas tillbaka dit där anropet gjordes. Det reserverade ordet return är till för att returnera värden. I exemplet nedan tittar vi på en funktion som tar emot ett värde (en radie) och returnerar ett bearbetat värde (en area).

Exempel

Funktionen nedan tar emot en radie på en cirkel och räknar sedan ut arean. Klicka på testa för att se hur funktionen kan användas.

def area_cirkel(radie):
    area = 3.14 * radie * radie
    return area

Variablerna radie och area ovan existerar bara inuti funktionen, därför skulle det inte vara ett problem att använda dessa variabelnamn utanför funktionen utan att de påverkar varandra.

Logga in eller skapa konto för att spara dina framsteg och din kod.

Ändra i koden

Vi vill ha ett program som tar en cirkels omkrets från användaren och skriver ut radien på cirkeln. Just nu kan funktionen bara räkna ut radien på en cirkel med omkrets = 10 och det spelar ingen roll vad användaren skriver in. Ändra i programmet så att det gör vad det ska.

-- Programmets utskrifter --

Flera parametrar

Det går utmärkt att definiera en funktion som tar emot flera argument. En funktion med tre argument definieras på följande sätt:

def funktionens_namn(arg_1, arg_2, arg_3):

där arg_1, arg_2 och arg_3 är olika parametrar. De kan vara av olika datatyper och i Python kan ett argument vara av olika typer vid olika anrop, till exempel float vid ett tillfälle och int vid ett annat. Notera att argumenten separeras med kommatecken.

Exempel

Funktionen avstånd beräknar avståndet mellan två punkter, (x1, y1) och (x2, y2). Argumenten till funktionen är x1, y1, x2 och y2. Klicka på testa för att se hur funktionen kan användas.

def avstånd(x1, y1, x2, y2):
    avstånd_i_kvadrat = (x1 - x2)**2 + (y1 - y2)**2 
    return avstånd_i_kvadrat ** 0.5

Logga in eller skapa konto för att spara dina framsteg och din kod.

Omkretsen på en rektangel

Skriv en funktion med namn omkrets_rektangel som har två argument, bredden och höjden på en rektangel. Returnera omkretsen på rektangeln. Obs! När du tycker kör ska programmet inte skriva ut något eftersom du inte ska anropa funktionen.

-- Programmets utskrifter --

Till skillnad från många andra programmeringsspråk går det att anropa en funktion med argumenten i en annan ordning än den i definitionen. Det går att göra om funktionen anropas med argumenten namngivna. Se exemplet nedan.

Exempel

Anropa en funktion med argumenten i en annan ordning genom att namge dem vid anrop.

def funktion(a, b):
  print('a = ' + str(a))
  print('b = ' + str(b))

funktion('ett', 'två')
funktion(b = 'ett', a = 'två')

Slutligen, även om det går att skriva program utan funktioner är de ändå en fundamental del av programmering. Ett större program utan funktioner går inte att överskåda. Funktioner behövs för att göra det läsbart och hanterbart.

Status
Du har inte gjort klart någon uppgift än (0 st).