Göm menyn

Funktioner

Funktioner

Ni kan läsa mer om funktioner och argument i kursboken Learning Python, kapitel 16, 17, 18 och 19.

Nästa logiska steg efter selektion och upprepningar för att strukturera program är funktioner. Ni har redan sett lite av dessa i tidigare laborationer. Funktioner används för att dela in ett större problem i mindre delproblem. Funktioner i Python returnerar alltid ett värde, None ifall inget explicit returneras. En funktion kan även acceptera ett antal argument. Argument anges som positionella argument eller som nyckelordsargument.

Prova följande:


def my_function(first, second, third, fourth):
   fmtstr = "first = {}, second = {}, third = {}, fourth = {}"
   print(fmtstr.format(first, second, third, fourth))
   return (first + second * fourth) / third

print(my_function(1, 2, 3, 4))
print(my_function(first = 1, second = 2, third = 3, fourth = 4))
print(my_function(second = 2, first = 1, fourth = 4, third = 3))
print(my_function(1, 2, third = 3, fourth = 4))
print(my_function(1, 2, fourth = 4, third = 3))

Positionella argument måste komma i samma ordning som parametrarna i funktionen, ni kan däremot ange nyckelordsargument i en annan ordning men aldrig ange positionella argument efter ett nyckelordsargument. Nyckelordsargument får inte heller upprepa argument som angetts med hjälp av ett positionellt argument tidigare. Slutligen måste alla argument alltid tilldelas ett värde, parametrar som ofta antar samma värde kan däremot ges ett standardvärde. Parametrar med standardvärde måste alltid komma sist i funktionsdefinitionen och inga parametrar utan standardvärde får således föregås av parametrar med standardvärde.

Prova följande:


def std_function(first, second, third = 3, fourth = 4):
   fmt = "first = {}, second = {}, third = {}, fourth = {}"
   print(fmt.format(first, second, third, fourth))
   return (first + second * fourth) / third

print(std_function(1, 2))
print(std_function(1, 4, fourth = 2))
print(std_function(5, 0, 5))

Sidansvarig: Pontus Haglund
Senast uppdaterad: 2024-08-14