1.5. Funkcje

Informacja

W tym przykładzie poznasz i zastosujesz funkcje.

1.5.1. Zadanie

Wypisz ciąg Fibonacciego aż do n-tego wyrazu podanego przez użytkownika. Ciąg Fibonacciego to ciąg liczb naturalnych, którego każdy wyraz poza dwoma pierwszymi jest sumą dwóch wyrazów poprzednich. Początkowe wyrazy tego ciągu to: 0 1 1 2 3 5 8 13 21.

Dane:

  • n – wyraz, na którym kończymy wypisywanie ciągu, liczba całkowita.

Plik fibonacci.pyKod nr
 1def fib_iter1(n):  # definicja funkcji
 2    """
 3        Funkcja wypisuje kolejne wyrazy ciągu Fibonacciego
 4        aż do wyrazu n-tego.
 5        Wersja iteracyjna z pętlą while.
 6    """
 7    a, b = 0, 1  # przypisanie wielokrotne, rozpakowanie tupli
 8    print(a, end=' ')
 9    while n > 1:
10        print(b, end=' ')
11        a, b = b, a + b  # przypisanie wielokrotne
12        n -= 1
13
14
15def fib_iter2(n):
16    """
17        Funkcja wypisuje kolejne wyrazy ciągu Fibonacciego
18        aż do wyrazu n-tego, który zwraca.
19        Wersja iteracyjna z pętlą for.
20    """
21    a, b = 0, 1
22    print('wyraz 1', a)
23    print('wyraz 2', b)
24    for i in range(1, n - 1):
25        # wynik = a + b
26        a, b = b, a + b
27        print('wyraz', i + 2, b)
28
29    print()
30    return b
31
32
33def fib_rek(n):
34    """
35        Funkcja zwraca n-ty wyraz ciągu Fibonacciego.
36        Wersja rekurencyjna.
37    """
38    if n < 1:
39        return 0
40    if n < 2:
41        return 1
42    return fib_rek(n - 1) + fib_rek(n - 2)
43
44
45def main():
46    n = int(input('Podaj nr wyrazu: '))
47    fib_iter1(n)
48    print()
49    print('=' * 40)
50    fib_iter2(n)
51    print('=' * 40)
52    print(fib_rek(n - 1))
53    return 0
54
55# wywołanie funkcji, od której program rozpoczyna działanie
56main()

Funkcje pozwalają grupować instrukcje realizujące jedno zadanie w nazwanym blok kodu, dzięki czemu można je wielokrotnie wywoływać. Funkcję definiujemy za pomocą słowa kluczowego def:

def nazwa_funkcji(parametry):
    pass

Parametry to przekazywane do funkcji wartości i/lub dane. Parametry są opcjonalne. Po dwukropku od nowego wiersza umieszczamy odpowiednio wcięte instrukcje, które tworzą ciało funkcji. Funkcja może zwracać jakąś wartość za pomocą polecenia return.

Zapis a, b = 1, 2 jest przykładem przypisania wielokrotnego, tzn. zmienne a i b przyjmują wartości kolejnych elementów rozpakowanych z krotki (tupli) po prawej stronie. W taki sam sposób przypisujemy wartości w kodzie a, b = b, b + a. Jak widać, liczba zmiennych z lewej strony musi odpowiadać liczbie wartości rozpakowywanych z krotki.

Algorytmy iteracyjne można implementować za pomocą różnych instrukcji sterujących, w tym wypadku pętli while i for, a także z wykorzystaniem rekurencji.

1.5.1.1. Ćwiczenie

Przyjmij, że dwa pierwsze wyrazy ciągu równe są 1 i zmień funkcje tak, aby wypisywały lub zwracały poprawne wartości.

Pojęcia

funkcja, krotka


Licencja Creative Commons Materiały Python 101 udostępniane przez Centrum Edukacji Obywatelskiej na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.

Utworzony:

2026-05-30 o 19:12 w Sphinx 7.3.7

Autorzy:

Robert Bednarz