Funkcje Pythona (def): definicja z przykładami

W tym artykule dowiesz się o funkcjach, czym jest funkcja, jej składni, składnikach i typach funkcji. Nauczysz się także tworzyć funkcję w Pythonie.

Wideo: Wprowadzenie do funkcji Pythona

Co to jest funkcja w Pythonie?

W Pythonie funkcja to grupa powiązanych instrukcji, które wykonują określone zadanie.

Funkcje pomagają podzielić nasz program na mniejsze i modułowe fragmenty. W miarę jak nasz program się rozrasta, funkcje sprawiają, że jest on bardziej zorganizowany i łatwiejszy w zarządzaniu.

Ponadto unika powtórzeń i umożliwia ponowne użycie kodu.

Składnia funkcji

 def nazwa_funkcji (parametry): "" "ciąg dokumentów" "" instrukcje

Powyżej pokazano definicję funkcji, która składa się z następujących komponentów.

  1. Słowo kluczowe, defktóre oznacza początek nagłówka funkcji.
  2. Nazwa funkcji jednoznacznie identyfikująca funkcję. Nazewnictwo funkcji podlega tym samym regułom zapisywania identyfikatorów w Pythonie.
  3. Parametry (argumenty), przez które przekazujemy wartości do funkcji. Są opcjonalne.
  4. Dwukropek (:) oznaczający koniec nagłówka funkcji.
  5. Opcjonalny ciąg dokumentacji (docstring) opisujący, co robi funkcja.
  6. Jedna lub więcej prawidłowych instrukcji Pythona, które tworzą treść funkcji. Instrukcje muszą mieć ten sam poziom wcięcia (zwykle 4 spacje).
  7. Opcjonalna returninstrukcja zwracająca wartość z funkcji.

Przykład funkcji

 def greet(name): """ This function greets to the person passed in as a parameter """ print("Hello, " + name + ". Good morning!")

Jak wywołać funkcję w Pythonie?

Po zdefiniowaniu funkcji możemy ją wywołać z innej funkcji, programu lub nawet z zachęty Pythona. Aby wywołać funkcję, po prostu wpisujemy nazwę funkcji z odpowiednimi parametrami.

 >>> greet('Paul') Hello, Paul. Good morning!

Uwaga: Spróbuj uruchomić powyższy kod w programie w języku Python z definicją funkcji, aby zobaczyć dane wyjściowe.

 def greet(name): """ This function greets to the person passed in as a parameter """ print("Hello, " + name + ". Good morning!") greet('Paul')

Docstrings

Pierwszy ciąg po nagłówku funkcji nazywany jest ciągiem dokumentacyjnym i jest skrótem od ciągu dokumentacji. Jest krótko używany do wyjaśnienia, co robi funkcja.

Chociaż opcjonalna, dokumentacja jest dobrą praktyką programistyczną. Jeśli nie pamiętasz, co jadłeś na obiad w zeszłym tygodniu, zawsze dokumentuj swój kod.

W powyższym przykładzie mamy ciąg dokumentacyjny bezpośrednio pod nagłówkiem funkcji. Zwykle używamy potrójnych cudzysłowów, aby ciąg dokumentów obejmował wiele wierszy. Ten ciąg jest dostępny dla nas jako __doc__atrybut funkcji.

Na przykład :

Spróbuj uruchomić następujące polecenie w powłoce Pythona, aby zobaczyć dane wyjściowe.

 >>> print(greet.__doc__) This function greets to the person passed in as a parameter

Aby dowiedzieć się więcej o ciągach dokumentów w Pythonie, odwiedź stronę Python Docstrings.

Instrukcja return

returnOświadczenie jest używany, aby zakończyć funkcję i wrócić do miejsca, z którego została wywołana.

Składnia zwrotu

 return (lista_wyrażeń)

Ta instrukcja może zawierać wyrażenie, które jest oceniane i zwracana jest wartość. Jeśli w instrukcji nie ma wyrażenia lub returnsamej instrukcji nie ma wewnątrz funkcji, funkcja zwróci Noneobiekt.

Na przykład:

 >>> print(greet("May")) Hello, May. Good morning! None

Tutaj Nonejest zwracana wartość, ponieważ greet()bezpośrednio drukuje nazwę i nie returnjest używana żadna instrukcja.

Przykład zwrotu

 def absolute_value(num): """This function returns the absolute value of the entered number""" if num>= 0: return num else: return -num print(absolute_value(2)) print(absolute_value(-4))

Wynik

 2 4

Jak działa funkcja w Pythonie?

Działanie funkcji w Pythonie

Zakres i czas życia zmiennych

Zakres zmiennej to część programu, w której zmienna jest rozpoznawana. Parametry i zmienne zdefiniowane wewnątrz funkcji nie są widoczne z zewnątrz funkcji. Dlatego mają zasięg lokalny.

Czas życia zmiennej to okres, przez który zmienna pozostaje w pamięci. Czas życia zmiennych wewnątrz funkcji jest tak długi, jak długo funkcja jest wykonywana.

Są niszczone, gdy wrócimy z funkcji. Dlatego funkcja nie pamięta wartości zmiennej z jej poprzednich wywołań.

Oto przykład ilustrujący zakres zmiennej wewnątrz funkcji.

 def my_func(): x = 10 print("Value inside function:",x) x = 20 my_func() print("Value outside function:",x)

Wynik

 Value inside function: 10 Value outside function: 20

Here, we can see that the value of x is 20 initially. Even though the function my_func() changed the value of x to 10, it did not affect the value outside the function.

This is because the variable x inside the function is different (local to the function) from the one outside. Although they have the same names, they are two different variables with different scopes.

On the other hand, variables outside of the function are visible from inside. They have a global scope.

We can read these values from inside the function but cannot change (write) them. In order to modify the value of variables outside the function, they must be declared as global variables using the keyword global.

Types of Functions

Basically, we can divide functions into the following two types:

  1. Funkcje wbudowane - funkcje wbudowane w Python.
  2. Funkcje zdefiniowane przez użytkownika - funkcje zdefiniowane przez samych użytkowników.

Interesujące artykuły...