2: Funkcje

Poznaliśmy już jedną funkcję print(), która wysyła wiadomość (drukuje na ekranie). Aby użyć funkcji, zawsze piszemy jej nazwę, a następnie w nawiasach () jej argumenty. Słowo argument w zasadzie oznacza wejście do funkcji. Następnie, funkcja działa w zależności od jej argumentów. Jeśli istnieje wiele argumentów funkcji, oddzielasz je przecinkami (,). Na przykład, możesz dla funkcji print podać wiele argumentów; wydrukuje ona wtedy w tej samej kolejności wszystkie argumenty z odstępami oddzielającymi je. Pokazujemy to w poniższym przykładzie.

Przykład
Drukowanie trzech liczb
Zauważ, że dodatkowe spacje w powyższym programie w poleceniu print nie miały wpływu na wyjście (sposób drukowania). Dodatkowe spacje nie mają znaczenia w większości innych sytuacji. Należy jednak pamiętać, że dodatkowa przestrzeń na początku linii, zwana wcięciem, ma specjalne znaczenie. Jeśli wcięcia są nieprawidłowe mogą powodować błędy (kliknij na przykład). Zobaczysz przykłady poprawnych wcięć kilka lekcji dalej.

Funkcja może zwrócić wartość (na wyjściu). Na przykład funkcja max() (skrót od maksimum) daje największą liczbę spośród argumentów, które muszą być liczbami.

Przykład
Spróbuj przewidzieć wynik działania następującego programu jeszcze przed jego uruchomieniem.
Określenie return value oznacza wartość, jaką funkcja zwraca. Na przykład dla max(42, 17) mówimy, że "funkcja max zwróciła wartość (return value) 42."

Funkcja max ma przyjaciela, który zachowuje się podobnie: funkcja min zwraca minimum (najmniejszy) z jego argumentów.

Zadanie wielokrotnego wyboru: Min i Max I
Co wyświetli (zwróci) poniższy program?

x = 13
y = 7
a = max(x+y, x*2)
b = min(x, y)
print(a,b)
Bezbłędnie!

Funkcje możemy łączyć, aby budować bardziej skomplikowane wyrażenia.

Zadanie krótkiej odpowiedzi: Min i Max II
Co zwróci poniższy program? Wskazówka

x = min(max(13, 7), 9)
print(x)
Bezbłędnie!

Nie jesteś ograniczony do używania tylko funkcji wbudowanych w Pythonie. Za kilka lekcji dowiesz się, jak definiować nowe, własne funkcje!

Typowe Błędy

Jeśli wywołasz funkcję z nie wystarczającą liczbą argumentów (wejść) lub z zbyt wieloma argumentami, otrzymasz błąd. Na przykład max wymaga co najmniej jednego wejścia (argumentu):

Przykład
Wywołanie funkcji max ze zbyt małą liczbą argumentów.

Bardzo ważne jest uważne czytanie błędów, które otrzymasz, gdy kod nie działa. Python zazwyczaj daje pomocne informacje zwrotne na temat tego, co się nie powiodło. Czasami jednak trzeba trochę się rozejrzeć, aby zdiagnozować problem - oto przykład.

Przykład
Naciśnij Uruchom program i popatrz jaki wystąpił błąd.

Python mówi, że występił błąd składni, co oznacza, że nie rozumie, co próbujesz zrobić:

 Traceback (most recent call last):
   In line 2 of the code you submitted:
     bigger = max(3, 4)
          ^
 SyntaxError: invalid syntax
Komentarz o błędzie wskazuje drugą linię bigger = max(3, 4), ale ona jest w porządku. Problem zaczął się w pierwszej linii, bo zapomnieliśmy dodać nawiasu ) zamykającego smaller = min(14, 99. Python zaczął go szukać w kolejnej linii, ale go tam nie znalazł. Dlatego wskazał drugą linię jako miejsce występowania błędu, choć faktycznie błąd wystąpił w pierwszej.

Ćwiczenie

Jest to dwuczęściowe ćwiczenie z wykorzystaniem funkcji min i max. Istnieją połączenia z kilkoma mostkami między miastami Maxime i Miniac. Dla każdego mostu osobno jest ustalony limit wielkości ciężaru, który może być przez nie transportowany.

Zadanie na kodowanie : Jedna droga
Część 1: Jest droga między dwoma miastami. Droga ma trzy mosty o nośności a, b, c, jak pokazano na rysunku poniżej:

Aby przejechać trasę, samochód musi jechać najpierw przez most o nośności a, następnie o nośności b i przez most o nośności c. Twoja ciężarówka ulegnie wypadkowi, jeśli przekroczysz którykolwiek z limitów wagowych. Napisz program, który wydrukuje maksymalną masę, którą można transportować wzdłuż tej drogi. Twój kod powinien zakładać, że zmienne a, b i c już zawierają określone nośności mostów.

Zadanie na kodowanie : Dwie drogi
Część 2: Teraz opowiem Ci ciąg dalszy tej historii. Jest też druga trasa, na której znajdują się dwa mosty, pierwszy z ograniczeniem ciężaru do d, drugi z ograniczeniem ciężaru do e, jak pokazano poniżej.

Twoja ciężarówka może jechać dowolną trasą. Napisz program, który drukuje maksymalną masę, którą można przetransportować między dwoma miastami. Zakładamy, że zmienne a, b, c, d i e zawierają ograniczenia wagi mostów.Wskazówka 1 Wskazówka 2

Ćwiczenie: Kodowa Układanka

Oto kolejna kodowa układanka, gdzie musisz przeciągać i upuszczać linie, aby je uporządkować w odpowiedni program.

Zadanie na uporządkowanie: Sort of Strangeness

Uporządkuj kod tak, aby wydrukować trzy cyfry x, y i z posortowane rosnąco tak, że najmniejsza jest jako pierwsza drukowana, a następnie średnia, a na końcu największa.

Aby zmienić kolejność linii, za pomocą myszy przeciągaj je i upuszczaj.
  • print(max(x, y, z))
  • print(min(x, y, z))
  • print(x+y+z-min(x, y, z)-max(x, y, z))

Po zakończeniu powyższych ćwiczeń masz dwie możliwości:

  • Możesz przejść bezpośrednio do Lekcji 3, lub
  • możesz wykonać dodatkowe ćwiczenia dotyczące funkcji w Lekcji 2X.