Funktioner

Funktioner er brugbare til at samle koder på det samme sted: funktionen.

Funktioner, siger jeg også er “programmer i programmet”. Andre har jeg hørt kalde dem for “små sorte bokse”, hvor indholdet er samlet.

print er en funktion, og det samme er input. De gør noget for os. Print skriver fx en string, mens input tager imod input fra os. Funktioner kan altså genbruges, og det er smart, så vi kan koncentrere os om andre ting, end at skrive den samme kode om og om igen.

Først skriver man altså sin funktion.

def fortæller Python at vi deffinerer en funktion.

def hej():
    print("Hejsa")

Vi kalder på funktionen ved at skrive:

hej()

Og vi ser “Hejsa” blive printet ud til os.

# def fortæller Python at vi deffinerer en funktion

# Funktionen deffineres som hej og printer "Hejsa"
def hej():
    print("Hejsa")
# Vi kalder på funktionen
hej()

# Funktion med argumentet navn - inde i parentesen skriver du dit navn
def navn(navn):
    print("Hej", navn)
# husk, at print-funktionen tror der er tale om en string, når du benytter tegn som ikke er tal. 
# navn(Atle) virker ikke
navn("Atle") #<- husk gåseøjne

# funktion kan indeholder flere argumenter
# denne funkton skriver dine data
def data(navn, by, postnummer):
    # læg mærke til at jeg bytter om på by og postnummer
    print("Hej", navn, "du bor i", postnummer, by)
data("Atle", 2100, "Købehavn Ø")

# Funktioner er fantastiske til matematik
# Vi laver her nogle formler

# funktion som returnerer 2 * x
def f(x):
	return 2 * x
	
f(2) # 4
f(5) # 10

# Retvinklet trekant
# 0.5 * h * g = 0.5 * a* b
def trekant(h, g):
    return 0.5 * h * g
trekant(10, 5) # 25 
trekant(10, 7) # 35
trekant(288.48, 70.837) # 10217.5289

    

# Funktion som siger om x er et heltal og går op med Y
def faktor(x, y):
    if y % x == 0:
        return True
    else:
        return False
faktor(4, 1000) #True
faktor(3, 200)

Prøv at se om du selv kan lave en funktion, som indeholder en formel.

Turtle Grafik

Vi eksperimenterer meget ofte med den samme kode, når vi laver turtle grafik. Det hjælper selvfølgelig på det, hvis vi bare skal forholde os til en simpel funktion, som beder os om antal loop, vinkel osv.

# Turtle Grafik med outer og inner loop samt grader

# import af modul
import turtle

# t som object for turtle
t = turtle

# function definition
def min_turtle(outer, inner, angle):
    # outer for loop i
    for i in range(outer):
        # 1 px per loop
        t.forward(i)
        # inner for loop
        for j in range(inner):
            # circle
            t.circle(i + j * 0.15)
            # angle
            t.right(angle)