Programowanie w Pythonie (5): Funkcje

Programując, jesteśmy w stanie sobie wyobrazić sytuację, w której chcielibyśmy wielokrotnie używać pewnego fragmentu kodu. Jedyne co, to zmienialibyśmy wartości, z których korzystałby skrypt. Zamiast przepisywania tego kodu – nauczymy się stosować funkcje. Sprawi to, że nasz kod będzie krótszy oraz łatwiejszy do odczytywania – a to wszystko bez potrzeby przepisywania wielu linijek kodu.

Definiowanie funkcji

Funkcję tworzymy z trzech komponentów:

  1. Nagłówek ma zawierać frazę def, po której ma wystąpić nazwa funkcji oraz powinny być umieszczone opcjonalne parametry.
  2. Opcjonalny komentarz, opisujący to, czym zajmuje się funkcja. Komentarz umieszczamy pomiędzy trzema cudzysłowami np. """Tu komentarz""".
  3. Instrukcje, które mają być wykonywane w ramach działania funkcji. Należy pamiętać, aby były one umieszczone razem ze wcięciami w linijkach.

Przykład:

1
2
3
4
5
def witaj():
    """Funkcja napisze coś w konsoli"""
    print("Witaj!")

witaj()

Wywołanie funkcji

Po dobrym zdefiniowaniu funkcji, trzeba też umieć ją wywoływać. W przykładzie powyżej za to zadanie odpowiada instrukcja witaj().

Ćwiczenie: Poniższy kod to funkcja podnosząca wybraną liczbę naturalną do kwadratu. Wywołaj ją z argumentem 10.

1
2
3
4
5
def kwadrat(n):
    """Zwraca kwadrat liczby naturalnej"""
    kwadrat = n ** 2
    print("%d do kwadratu to %d." % (n, squared))
    return kwadrat

Parametry i argumenty

Zerknijmy jeszcze raz na funkcję kwadrat z poprzedniego ćwiczenia:

1
def kwadrat(n):

Zmienna n jest tutaj parametrem. Mówi on funkcji coś takiego: „Użytkownik będzie mógł wpisać w moje miejsce dowolną wartość liczbową, ale na razie będziemy zamiast jej pisać  n„. Funkcje mogą mieć wiele parametrów.

Konkretne wartości, zapisywane podczas wywoływania funkcji są nazywane argumentami. Oto wywołanie naszej funkcji z argumentem 10:

1
def kwadrat(10):

Należy pamiętać, że wywołując funkcję (zazwyczaj) trzeba podać tyle samo argumentów, ile było podanych parametrów.

Ćwiczenie: Zmień kod funkcji kwadrat(n) tak, by nazywała się ona potega(a,b) i obliczała wartość wyrażenia $a^b$. Funkcja powinna przedstawiać na ekranie zdanie: Liczba a do potęgi b jest równa … .

Funkcje wywołujące funkcje

Widzieliśmy, że funkcje potrafią zapisywać tekst na ekranie konsoli lub wykonywać proste operacje arytmetyczne, ale ich możliwości są znacznie większe niż to. Mogą one bowiem wywoływać wewnątrz swojego kodu wywołać inną funkcję:

Przykład:

1
2
3
4
5
def f_jeden(n):
    return n + 100

def f_dwa(m):
    return f_jeden(m) * 2

Ćwiczenie: Stwórz funkcję szescian(liczba), która będzie zwracała wartość podaną przez użytkownika podniesioną do trzeciej potęgi. Następnie stwórz drugą funkcję przez_trzy(liczba), która sprawdzi czy liczba jest podzielna przez trzy i na tej podstawie wywoła funkcję szescian(liczba) – jeśli podzielność będzie albo zwróci False, jeśli nie będzie podzielności.

Nauczyciel matematyki i przedmiotów informatycznych w Dwujęzycznych Szkołach im. Władysława Kopalińskiego w Bielsku-Białej. Autor wielu publikacji poświęconych nauce podstaw programowania, w tym „Scratch. Nauka programowania przez zabawę”, wydanej drukiem przez wydawnictwo Komputer Świat. Entuzjasta wykorzystywania nowych nowoczesnych narzędzi w czasie lekcji. Prywatnie miłośnik koszykówki i aktywnego wykorzystywania czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.