Argument

I förra avsnittet såg vi en funktion som ett sätt att återanvända kod, t.ex. för att genomföra en hälsning.

Om detta är en mer komplicerad hälsning och vi gör den till flera personer kan vi fortfarande använda en och samma funktion. Det ska vi undersöka här.

Argument

Tänk på print-funktionen: Den gör samma uppgift varje gång, men den kan skriva ut olika meddelanden varje gång. På samma sätt kan vi variera vår kod med hjälp av ett eller flera argument. Dessa skrivs inuti parenteserna i funktionshuvudet såhär:

def hälsa(namn):
    print("Välkommen, " + namn)

När vi anropar funktionen måste vi nu ange ett namn:

hälsa("Marcus")
hälsa("Janne")

Argumentet namn är en variabel som bara existerar inuti den funktionen, och värdet bestäms när funktionen anropas.

Vi kan även ha flera argument:

Returvärde

En funktion kan också producera ett resultat som den returnerar. Tänk på random.randint, dels ger vi den två argument, minsta och största värde, och vi får tillbaka - ett slumpmässigt tal som vi kan spara i en variabel.

Vi säger då att funktionen returnerar eller ger ett returvärde. Nyckelordet är return.

Här är ett exempel från matematiken: Medelvärdet av två tal \(a\) och \(b\) räknar vi ut som \(\frac{a+b}{2}\). Detta kan vi hålla reda på i en funktion:

def medelvärde(a, b):
    return (a+b)/2

Och sedan använda i vårt program t.ex. såhär:

print("Skriv in din och en kompis ålder:")
ålder_1 = int(input("Ålder 1: "))
ålder_2 = int(input("Ålder 2: "))
resultat = medelvärde(ålder_1, ålder_2)
print(resultat)

Prova! Kan du också skapa en funktion som returnerar medelvärdet av tre tal?

Datatypen None

Om vi försöker ta emot från en funktion som inte returnerar, eller om vi glömde return-nyckelordet, kan vi se värdet None:

def hälsa():
    print("Hej hej!")
resultat = hälsa()
print(resultat)

Python kommer anropa funktionen hälsa(), som skriver ut "Hej hej!" till skärmen. Sedan skapas variabeln resultat och den sparar det som returneras från hälsa där. Men inget returneras ju! Då är variabeln istället tom. Det markerar vi med "None", som är en särskild datatyp som bara betyder "tomt".

Har du en fråga du vill ställa om Argument? Ställ den på Pluggakuten.se
Har du hittat ett fel, eller har du kommentarer till materialet på den här sidan? Mejla matteboken@mattecentrum.se
Läs sidan på andra språk

I den här videon skapar vi mer avancerade funktioner med hjälp av argument och returvärden, och kan därför simulera tärningskast med valfritt antal sidor.

  • Argument: En eller flera variabler som måste inkluderas när en funktion anropas. En funktion måste inte ha några argument.
  • Returvärde: Ett värde som den som anropar en funktion får tillbaka när den är klar. Randint är exempel på en funktion som ger ett returvärde.
  • None: En speciell datatyp som bara har ett värde och betyder ingenting.
  • Funktionshuvud: Beskriver vad funktionen heter och hur den kan användas.
Svårighetsgrad