Funkcja to, najprościej mówiąc, kawałek kodu, który odpowiada za wykonanie konkretnego zadania, napisany w taki sposób, aby łatwo można było go ponownie użyć. Funkcje stanowią, kolejny kluczowy w procesie nauki Python, element, natomiast my przyjrzymy się jak je stosować w praktyce, oraz wykonamy kilka ćwiczeń w celu ich opanowania. Zaczynajmy!

Przykład1 zastosowania funkcji w Python

Aby zrozumiem potrzebę funkcji, przyjrzyjmy się prostemu problemowi. Wykorzystując wcześniej nabytą wiedzę na temat pętli for, chcemy przeszukać łańcuch po kątem występowania konkretnego znaku. Tak jak poniżej:

  1. definiujemy zmienne łańcuch oraz szykany znak
  2. przy użyciu pętli for, pobieramy literka, po literce
  3. przy użyciu wyrażenia warunkowego if, sprawdzamy czy pobrany znak jest tym, którego szukamy. Jeżeli tak to kończymy zadanie.

Nasz piękno kod, działa bez zarzutu. Teraz powiedzmy że mamy do przeszukania 10 różnych łańcuchów. Tak to zrobić?

Jedna z opcji to 10krotne powtórzenie powyższego kodu. Możliwe? Możliwe. Jednak jest to klasyczny przekład kiedy powinniśmy użyć funkcji. Czyli zmienić nasz kod, w taki sposób, aby łatwo można było go użyć ponownie, bez potrzeby jego ciągłego powielania. Najpierw spójrzmy jak by to mogło wyglądać, a potem krok po kroku wytłumaczymy, jak to działa:

Dużo nowych rzeczy. Spójrzmy na to krok po kroku.

  1. użyliśmy specjalnej instrukcji def, która jest poleceniem dla Python, że kod który się za nią znajduje jest funkcją. Python tego kodu nie wykona, a jedynie „nauczy” się naszej funkcji
  2. za def, jest nazwa funkcji. My nasza nazwaliśmy naszaFunkcja
  3. za nazwą funkcji jest lista parametrów, które ta funkcja przyjmuje. U nas jest ich 2 – jeden parametr to łańcuch, który chcemy przeszukać, a drugi, to znak którego szukamy
  4. po parametrach, jest znak ‚:’ dwukropka, co oznacza że poniżej będzie kod funkcji
  5. Kod jest bardzo podobny do tego z wcześniejszego przykładu. Różni się tym że odwołujemy się w nim do naszych parametrów – lancuch oraz znak, oraz zamiast polecenie break, używamy polecenia return. Jest to informacja dla Python, że należy zakończyć działanie funkcji
  6. Na samym dole kodu, wywołujemy nasza funkcję 3-krotnie. Za każdym razem podajemy ten sam łańcuch, ale każemy szukać innego znaku

I w ten oto sposób, stworzyliśmy naszą pierwsza funkcję. Gratulacje! Teraz trochę teorii, i znowu przejdziemy do przykładów.

Struktura funkcji w Python

Struktura funkcji w Python, zawsze wyglada podobnie:

def nazwaFunkcji (prametr1, parametr2, parametr3):
    # wykonujemy operacje 
    return

parametry

Funkcja może przyjmować 0 parametrów lub kilka

# przykład funkcji bez parametrów
def f1:
    return

# jeden parametr
def f2 (parametr):
    return

Jako parametr możemy podawać, dowolną ‚rzecz’. Liczbę, łańcuch, listę, znak, itd

p1 = 5
p2 = 'Cześć'
p3 = [21,3,5]

# ta funkcja nic nie robi :) Pokazuje tylko ze możemy
# przekazać jako parametr różne obiekty 

def funkcjaPrzykladowa (liczba, lancuch, lista):
    return

# Wywołujemy naszą funkcję podając jako parametry, zmienne, które zdefiniowaliśmy

funkcjaPrzykladowa(p1,p2,p3)

Przykład2 zastosowania funkcji w Python

Czas na naszą drugą funkcję w Python. Tym razem, dodamy funkcję, która dodaje 2 liczby 🙂 Nie jest to szczyt naszych ambicji, ale takie proste funkcje są najlepsze do nauki.

Nasza funkcja działa, ale….. Wynik dodawania, chcielibyśmy wykorzystać po za funkcją. W obecnej postaci funkcja dodaje liczby oraz je drukuje. My natomiast, chcieli byśmy aby funkcja nam zwróciła wynik dodawania. I tutaj z pomocą przyjdzie polecenie return.

return

Do tej pory używaliśmy polecenia return, tylko do tego, aby zakończyć wykonywanie funkcji. Natomiast return może przyjmować również parametr, i ten parametr zostanie zwrócony po zakończeniu działania funkcji na zewnątrz. Spójrzmy na przykład, który to ilustruje:

Nasza funkcja, nie drukuje wyniku dodawania, a przekazuje je na zewnątrz za pomocą polecenie return. Ten sam przykład jeszcze raz:

Przykład3 zastosowania funkcji w Python

W naszych programach, nie musimy ograniczać się do jednej funkcji. W praktyce będziemy ich pisać wiele. Poniższy przykład pokazuje dwie proste funkcje, gdzie jedna zwraca pierwszą literę w łańcuchu, a druga, ostatnią:

Podsumowując. Zdefiniowaliśmy nasze pierwsze zmienne w Python. Nauczyliśmy się struktury funkcji, ale przede wszystkim zobaczyliśmy że umożliwia nam pisanie kodu w taki sposób, aby można było go łatwo wykorzystywać ponownie. Aby utrwalić nowo nabytą wiedzę, zachęcamy do samodzielnego wykonana kilku prostych ćwiczeń jak te, podane poniżej:

W następnej lekcji, zrobimy podsumowanie naszej nowo nabytej wiedzy oraz pokarzemy jak możemy pogłębiać nasze umiejętności programowania w języku Python. Zapraszamy!

Ćwiczenie funkcji w Python

Ćwiczenie1 . Należy napisać funkcję, która zamienia przekazany w parametrze tekst, na wielkie litery i go zwraca. Do tego celu można użyć funkcji input() która czyta tekst podany przez użytkownika, oraz funkcji upper(), która zamienia tekst na wielkie litery

def zamianaNaWielkie(lancuch):
        return lancuch.upper()
    
x = input()
print (zamianaNaWielkie(x))

Ćwiczenie2. Należy napisać funkcję, która, przyjmie jako parametr listę liczb, a zwrócić listę z usuniętymi liczbami parzystymi.

def usunParzyste (lista):
    
    # definiujemy nową listę, do przechowywania licz nieparzystych
    nowaLista = []
    
    # w pętli for, sprawdzamy każdy element z listy przekazanej poprzez paramert
    for i in lista:
        
        # sprawdzamy czy reszta z dzielenia przez 2 jest różna od 0
        if i%2 != 0:
            # jezeli tak, to liczba jest nieparzysta i dodajemy ją do nowej list
            nowaLista.append(i)
            # w ten sposób nowa lista będzie zawierać tylko nieparzyste liczby
            
    return nowaLista


ll = [1,2,3,4,5,7,9,12]

print (usunParzyste(ll))

Kurs Python, dla początkujących

  1. Wstęp do kursu
  2. Instalacja Python 3
  3. Hello World
  4. Polecane edytory tekstu
  5. Jupyter Notebook
  6. Typy danych i zmienne
  7. Operacje na zmiennych
  8. Wyrażenia warunkowe
  9. Pętle for oraz while
  10. Funkcje <– obecna lekcja
  11. Podsumowanie oraz dalsze kroki