Witaj, @name! Dobry badacz nie wykonuje każdej czynności od zera. Ma gotowe narzędzia: jeden ruch maczetą, jeden gest na rozbicie namiotu. W programowaniu takie wielokrotnie używane narzędzie nazywamy funkcją. Funkcja to nazwany blok kodu, który możemy uruchomić, kiedy tylko chcemy.
Funkcję tworzymy słowem kluczowym
def (od "define" - zdefiniować). Podajemy nazwę funkcji, nawiasy i dwukropek, a poniżej - wcięty blok kodu.1def greet_explorer():
2 print("Witaj na Safari!")
3 print("Darwin życzy udanej ekspedycji.")
4
5# Wywołanie funkcji - uruchamiamy ją po nazwie
6greet_explorer()Samo zdefiniowanie funkcji jej nie uruchamia - to jak napisanie instrukcji obsługi narzędzia. Aby narzędzia użyć, musimy je wywołać, pisząc nazwę z nawiasami:
greet_explorer(). Możemy ją wywołać wiele razy!Narzędzie staje się potężniejsze, gdy możemy mu coś przekazać. Parametry to dane, które funkcja przyjmuje w nawiasach.
1def greet_explorer(name):
2 print(f"Witaj, {name}, na Safari!")
3
4greet_explorer("Darwin") # Witaj, Darwin, na Safari!
5greet_explorer("Ania") # Witaj, Ania, na Safari!Funkcja może przyjmować wiele parametrów:
1def describe_animal(species, weight):
2 print(f"{species} waży {weight} kg.")
3
4describe_animal("Słoń", 5000)
5describe_animal("Lew", 190)Do tej pory funkcje tylko wyświetlały tekst. Ale często chcemy, aby funkcja obliczyła coś i oddała nam wynik. Do tego służy słowo
return.1def calculate_speed(distance, time):
2 speed = distance / time
3 return speed
4
5# Wynik możemy zapisać do zmiennej
6result = calculate_speed(30, 4)
7print(f"Prędkość: {result} km/h") # Prędkość: 7.5 km/h
8
9# Albo użyć od razu
10print(f"Prędkość: {calculate_speed(60, 3)} km/h")Różnica jest ważna:
print() tylko pokazuje tekst na ekranie, a return oddaje wartość, którą możemy dalej wykorzystać w obliczeniach. Po wykonaniu return funkcja natychmiast się kończy.Funkcje mogą zawierać wszystko, czego się nauczyłeś/aś - warunki, pętle, operatory:
1def is_dangerous(weight):
2 if weight > 1000:
3 return True
4 else:
5 return False
6
7print(is_dangerous(5000)) # True (słoń)
8print(is_dangerous(190)) # False (lew)Napisz funkcję, która oblicza, ile dni zajmie przejście zadanego dystansu. Uzupełnij kod w edytorze:
W tej lekcji stworzyłeś/aś własne narzędzia badacza:
def - definiuje funkcję (nazwany blok kodu)nazwa()return - zwraca wynik, który można dalej wykorzystaćprint() (wyświetla) a return (oddaje wartość)Gratulacje! Znasz już fundamenty Pythona: zmienne, typy, operatory, warunki, pętle i funkcje. Czas połączyć tę wiedzę w wielkim projekcie ekspedycji!