Rozdział 13 · Automatyzacja z funkcjami

Odpowiedz

return przekazuje wynik funkcji z powrotem tam, z którego została wywołana — a funkcja bez return nadal zwraca coś: None.

Jak dotąd nasze funkcje drukowały tylko tekst. Ale często nie trzeba drukować wyniku, aby ekran, oraz powrót go wykorzystać dalej w programie. Słowo kluczowe return robi dokładnie to:

return.py
def summa(a, b):
    return a + b

result = summa(5, 7)
print(result)         # 12
print(summa(2, 3) * 10)  # wynik funkcji można użyć natychmiast – 50
10, 20(argumenty)calculate()działanie funkcji30 (return)
Funkcja → wejście→ wynik wraca do lokalizacji połączenia
print() wewnątrz funkcji — to nie to samo co return
Funkcja, która tylko drukuje wynik, nic nie zwroty — próba zapisania wyniku do zmiennej skutkuje None:
print_vs_return.py
def summa_pechataet(a, b):
    print(a + b)   # wyświetla się, ale nie wraca

x = summa_pechataet(5, 7)  #12 pojawi się na ekranie
print(x)                    # Ale x jest None!
print(...) wewnątrz funkcjireturn ... wewnątrz funkcji
Rezultattekst na ekranieobiekt przechodzi w miejsce wywołania
x = f(...)x stanie się Nonex stanie się wartością obliczoną

Ukryte None

Jeśli funkcja osiąga koniec ciała, nie wykonując jej nigdy return, Python sam ją odwzajemnia None:

implicit_none.py
def hello():
    print("Hello")

result = hello()
print(result)
Hello
None
hello() nic nie return- robi — Python sam wstawia None
None jest rzeczywistym obiektem, a nie „pustką”
None jest konkretnym dopełnieniem Python oznaczającym brak znaczenia w danym kontekście (Rozdział 9). Funkcja bez return nie „niczego nie zwraca” w sensie całkowitego braku wyniku — zwraca właściwie obiekt None.

Nagi return

return bez wyrażenia po tym, jak również zwraca None — i natychmiast kończy funkcję. Przydatne na początku Efekt:

bare_return.py
def process(value):
    if value is None:
        return
    print(value)

Wczesne return

early_return.py
def classify_age(age):
    if age < 0:
        return „Nieprawidłowy wiek”

    if age < 18:
        return „Minor”

    return „Dla dorosłych”
ageage < 0?TAKreturn „Niepoprawnywieku"age < 18?TAKreturn„Nieletni"return„Pełnoletni”
Każdy return natychmiast kończy funkcję — kod następujący po niej w tym wywołaniu nie wykona się
return natychmiast kończy funkcję
Jak tylko zostanie wykonane returnfunkcja kończy się natychmiast — kod po niej wewnątrz funkcji nie zostanie wykonany.

Zwracaj wiele wartości

neskolko_znachenij.py
def min_max(numbers):
    return min(numbers), max(numbers)

low, high = min_max([3, 7, 1, 9])
print(low, high)   # 1 9
W rzeczywistości zwraca jedną krotkę
return a, b na poziomie Python tworzy i zwraca JEDEN obiekt — krotkę (a, b) (rozdział 11). Funkcja nie „zwraca dwóch obiektów jednocześnie” — zwraca jeden krotkę, którą następnie można rozpakować na dwie zmienne podczas wywołania, dokładnie jak każdą inną krotkę.
Praktyka: return, implicit None, wczesne return
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →