FUNKCJE W PYTHON
FUNKCJE W PYTHON
Wyobraź sobie, że chcesz upiec ciasto. Masz przepis, w którym dokładnie opisane są składniki i kolejność czynności. W programowaniu taką "instrukcją" jest funkcja.
Co to jest funkcja?
Funkcja to taki mały programik wewnątrz większego programu (jeden z wielu algorytmów). Ma swoją nazwę i wykonuje określone zadanie. Dzięki funkcjom możemy:
Podzielić duży program na mniejsze, łatwiejsze do zrozumienia części.
Wielokrotnie wykorzystać ten sam kod.
Uporządkować nasz program.
Jak działa funkcja?
Definicja: Tworzymy funkcję, nadając jej nazwę i określając, jakie dane będzie przyjmowała (argumenty) oraz co będzie zwracała (wynik).
Wywołanie: Kiedy chcemy skorzystać z funkcji, wywołujemy ją po nazwie, podając potrzebne argumenty.
Wykonanie: Funkcja wykonuje swoje zadanie i zwraca wynik (jeśli jest zdefiniowany).
Modularność: Dzielenie kodu na funkcje ułatwia jego organizację i czytelność.
Wielokrotne użycie: Raz napisaną funkcję można wywołać wiele razy w różnych miejscach programu.
Abstrakcja: Funkcje pozwalają ukryć złożone obliczenia, udostępniając tylko ich wynik.
Testowanie: Łatwiej jest testować pojedyncze funkcje niż cały program.
def nazwa_funkcji(argument1, argument2, ...):
# instrukcje, które wykonuje funkcja
return wynik
def: Słowo kluczowe, które rozpoczyna definicję funkcji.
nazwa_funkcji: Wymyślona przez Ciebie nazwa funkcji.
argument1, argument2, ...: Opcjonalne argumenty, które funkcja przyjmuje.
return wynik: Zwraca wynik działania funkcji. Jeśli nie ma instrukcji return, funkcja zwraca wartość None.
def powitanie(imie):
print(f"Witaj, {imie}!")
powitanie("Jan") # Wywołanie funkcji
Argumenty: Wartości przekazywane funkcji podczas jej wywołania.
Parametry: Zmienne zdefiniowane w nagłówku funkcji, które przyjmują wartości argumentów.
Funkcja może zwrócić dowolny typ danych: liczby, łańcuchy znaków, listy, a nawet inne funkcje.
Instrukcja return kończy wykonywanie funkcji i zwraca określoną wartość.
def wypisz_hello():
print("Hello!")
def podnies_do_potegi(podstawa, wykladnik=2):
return podstawa ** wykladnik
W powyższym przykładzie, jeśli nie podamy wartości dla wykladnik, zostanie użyta wartość domyślna 2.
Funkcja może wywołać samą siebie, tworząc rekurencję. Jest to przydatne w rozwiązywaniu problemów, które można podzielić na mniejsze podproblemy tego samego typu.
def silnia(n):
if n == 0:
return 1 # Silnia z 0 to 1
else:
return n * silnia(n-1)
Zmienne zdefiniowane wewnątrz funkcji mają lokalny zakres, co oznacza, że są dostępne tylko wewnątrz tej funkcji. Zmienne zdefiniowane poza funkcją mają globalny zakres.
Są to anonimowe funkcje, które są często używane jako argumenty innych funkcji. Mają prostą składnię i są przydatne do krótkich wyrażeń.
Składnia:
lambda argumenty: wyrażenie
lambda: Słowo kluczowe, które oznacza, że definiujemy funkcję lambda.
argumenty: Lista argumentów, które funkcja przyjmuje.
wyrażenie: Jedno wyrażenie, które określa wartość zwracaną przez funkcję.
Przykład:
# Funkcja lambda, która kwadratuje liczbę
kwadrat = lambda x: x**2
# Wywołanie funkcji lambda
wynik = kwadrat(5)
print(wynik) # Wyświetli: 25
Kiedy używać funkcji lambda?
Sortowanie:
lista = [5, 2, 8, 1, 4]
lista_posortowana = sorted(lista, key=lambda x: x % 2) # Sortuje według parzystości
Filtrowanie:
lista = [1, 2, 3, 4, 5]
parzyste = list(filter(lambda x: x % 2 == 0, lista)) # Filtruje parzyste liczby
Przetestuj kod w edytorze poniżej