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.
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.
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: