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:
Gratulacje! Znasz już fundamenty Pythona: zmienne, typy, operatory, warunki, pętle i funkcje. Czas połączyć tę wiedzę w wielkim projekcie ekspedycji! 🎉🌴