Skapa och anropa en funktion i Python

Genom att skapa flera små funktioner i Python, kan dessa användas för att skapa stora program. På så sätt blir det mycket lättare att programmera eftersom man slipper koda samma sak flera gånger. Funktionerna blir byggstenarna i större program. 

Vi ska nu testa skapa olika funktioner och sedan anropa dessa. Vi ska programmera ett program som avgör vad som har störst area av en cirkel eller en kvadrat. Funktionerna kommer vara oberoende av varandra, vilket gör att det är enkelt att anropa funktionerna när man behöver dem.

Skapa och anropa funktioner i Python – Exempel

Vi ska först skapa en funktion som räknar ut arean på en cirkel. Den enda inparametern som funktionen kommer ha är radien. Vi skickar alltså in radien och får tillbaka arean.

import math
def area_cirkel(radie):
    "Returnerar arean på en cirkel"
    return radie*radie*math.pi

Vi kan testa funktionen genom att anropa den. Exempel då radien på cirkeln är 4 eller 8:

print("Arean på cirkeln är", area_cirkel(4))
print("Arean på cirkeln är", area_cirkel(8))

Vilken ger utskriften:

Arean på cirkeln är 50.26548245743669
Arean på cirkeln är 201.06192982974676

På samma sätt skapar vi en funktion som räknar ut arean på en kvadrat. Vi skickar in bredden på kvadraten som inparameter och får tillbaka arean på kvadraten.

def area_kvadrat(x):
    "Returnerar arean på en kvadrat"
    return x*x

Anropar vi funktionen när exempelvis bredden är 2, eller 5:

print("Arean på kvadraten är", area_kvadrat(2))
print("Arean på kvadraten är", area_kvadrat(5))

får vi utskriften:

Arean på kvadraten är 4
Arean på kvadraten är 25

Vi använder oss av dessa två funktioner i en tredje funktion som avgör om kvadraten eller cirkeln har störst area. Vi skickar in bredden på kvadraten och radien på cirkeln som inparametrar.

def largest_area(bredd, radie):
    "Returnerar om kvadraten eller cirkeln har störst area, givet bredden på kvadraten och radien på cirkeln"

    kvadrat = area_kvadrat(bredd)     # Anropar funktionen som räknar ut arean på kvadraten                  
    cirkel = area_cirkel(radie)       # Anropar funktionen som räknar ut arean på cirkeln

    #Avgör om kvadraten eller cirkeln är störst
    if kvadrat == cirkel:
        print("Kvadraten och cirkeln är lika stora!")
    elif kvadrat > cirkel:
        print("Kvadraten har större area än cirkeln")
    else:
        print("Cirkeln har större area än kvadraten")

    print("Arean på kvadraten är", kvadrat, "och arean på cirkeln är", cirkel)

När vi anropar funktionen exempelvis då bredden på kvadraten är 4 och radien på cirkeln är 3:

largest_area(bredd=4, radie=3)

Får vi utskriften:

Cirkeln har större area än kvadraten
Arean på kvadraten är 16 och arean på cirkeln är 28.274333882308138

Nu kan du använda din färdiga funktion hur många gånger du vill, utan att behöva programmera ny kod!

Definera standardparametrar

Om man vill, kan man även definera standardparametrar i en funktion.

def dummy_function(text="Programmera Python"):
    print("Texten som skrivs ut är:", text)

Om man inte anger någon inparameter i detta fall, blir inparametern automatiskt “Programmera Python”.

Anropar man funktionen utan och med inparameter

dummy_function()
dummy_function("Annan inparameter")

blir alltså utskriften:
Texten som skrivs ut är: Programmera Python
Texten som skrivs ut är: Annan inparameter

Bakåt    |    Framåt