4 – PYTHON. Stosowanie funkcji
Funkcje w Pythonie to podstawowy sposób porządkowania kodu, który pozwala na jego ponowne użycie. Definiuje się je za pomocą słowa kluczowego def
, a ich struktura wygląda tak:
# Definicja funkcji
def nazwa_funkcji():
# Instrukcje funkcji
# Definicja funkcji z argumentem
def nazwa_funkcji(argument1):
# Instrukcje funkcji
PythonPrzykłady wykorzystania funkcji z użyciem modułu Turtle.
- Funkcja bez argumentów
Poniższa funkcja jest odpowiedzialna za narysowanie kwadratu o boku 100. Nie przyjmuje żadnych parametrów.
import turtle
def kwadrat(): # definicja funkcji
for i in range(4): # instrukcja odpowiedzialna za narysowanie kwadratu
turtle.forward(100)
turtle.left(90)
kwadrat() # wywołanie zdefiniowanej funkcji
Python- Funkcja z argumentami:
Poniższa funkcja służy do rysowania dowolnego wielokąta, gdzie długość każdego boku wynosi 100. Argument liczba_katow
pozwala określić, ile kątów ma mieć figura. W tym przypadku przekazano wartość 5.
Mówiąc prościej: wszędzie tam, gdzie w definicji pojawia się argument liczba_katow
, zostanie wstawiona liczba 5. Python automatycznie wykona potrzebne obliczenia, jeśli będzie to konieczne (np. jak linijce 7).
import turtle
# definicja funkcji rysującej dowolny wielokąt
def wielokat(liczba_katow):
for i in range(liczba_katow):
turtle.forward(100)
turtle.left(360/liczba_katow)
# wywołanie funkcji
wielokat(5)
PythonJeżeli natomiast chcemy mieć dodatkowo kontrolę nad długością boku rysowanej figury, można dodać kolejny parametr.
import turtle
# definicja funkcji rysującej dowolny wielokąt
# dodano dodatkowy argument dl_boku określający długość boku figury
def wielokat(liczba_katow, dl_boku):
for i in range(liczba_katow):
turtle.forward(dl_boku)
turtle.left(360/liczba_katow)
# wywołanie funkcji z dwoma argumentami
wielokat(11, 50)
PythonWykorzystanie definicji figur geometrycznych do narysowania domku:
import turtle
turtle.speed(100)
def kwadrat(bok):
for i in range(4):
turtle.fd(bok)
turtle.rt(90)
def trojkat():
for i in range(3):
turtle.fd(150)
turtle.left(120)
def prostokat(bok1, bok2):
for i in range(2):
turtle.fd(bok1)
turtle.rt(90)
turtle.fd(bok2)
turtle.rt(90)
kwadrat(150)
trojkat()
turtle.penup()
turtle.rt(90)
turtle.fd(20)
turtle.lt(90)
turtle.fd(20)
turtle.pendown()
kwadrat(40)
turtle.penup()
turtle.fd(70)
turtle.pendown()
kwadrat(40)
turtle.penup()
turtle.rt(90)
turtle.fd(60)
turtle.rt(90)
turtle.fd(35)
turtle.rt(180)
turtle.pendown()
prostokat(40,70)
Python