Pierwsze funkcje

Preview Mode

You're viewing this material in preview mode. Sign up to track your progress and access all features.

Pierwsze funkcje
Required In Progress

Python • kurs podstawowy • lekcja 16

Pierwsze funkcje

W programie kilka razy pojawia się ten sam nagłówek.

Twój cel: Wydzielisz powtarzalne instrukcje do funkcji i odróżnisz definicję od wywołania.

Bloki z wcięciami i kolejność wykonania.

Zbuduj model działania

Kopiowanie linii utrudnia późniejsze poprawki. Funkcja nadaje nazwę fragmentowi zachowania: zmieniasz definicję w jednym miejscu, a każde wywołanie korzysta z nowej treści.

def rozpoczyna definicję. Po nazwie zapisujemy nawiasy i dwukropek. Wcięte instrukcje tworzą ciało funkcji. Wykonanie def tworzy funkcję i wiąże ją z nazwą; nie uruchamia jej ciała. Wywołanie z nawiasami uruchamia instrukcje, a potem program wraca do miejsca po wywołaniu.

W tej lekcji funkcje nie pobierają danych i tylko wyświetlają tekst. Nie potrzebujesz jeszcze parametrów ani return. Definicja musi być wykonana, zanim program dotrze do wywołania. Zapisanie samej nazwy bez nawiasów nie wykonuje ciała.

Przewidź przed uruchomieniem

def show_header():
    print("=== GRA ===")
    print("Witaj!")

print("Przed")
show_header()
print("Po")
show_header()
Porównaj wynik i prześledź mechanizm
Definicja przygotowuje zachowanie. Wywołanie wykonuje je i pozwala wrócić do dalszego programu.
Definicja przygotowuje zachowanie. Wywołanie wykonuje je i pozwala wrócić do dalszego programu.

Witaj! pojawi się dwa razy, a pierwszym wierszem będzie Przed. Definicja nie drukuje nagłówka; robią to dopiero dwa wywołania show_header().

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

Przed
=== GRA ===
Witaj!
Po
=== GRA ===
Witaj!
Krok Miejsce wykonania
def show_header Utwórz funkcję
print("Przed") Program główny
show_header() Ciało funkcji → powrót
print("Po") Program główny
show_header() Ciało funkcji → powrót
Model do prześledzenia: porównaj każdy etap z kodem. Etykiety opisują znaczenie danych, nie tylko ich wygląd.

Zmień działający program

Wywołaj funkcję trzy razy w pętli, zamiast kopiować trzy wywołania.

Pierwsza wskazówka

Zachowaj działający punkt wyjścia. Zlokalizuj konstrukcję wskazaną w poleceniu i zmień tylko ten etap. Przed uruchomieniem zapisz oczekiwany efekt.

Porównaj swoją modyfikację
def show_header():
    print("=== GRA ===")
    print("Witaj!")

for repeat in range(3):
    show_header()

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

=== GRA ===
Witaj!
=== GRA ===
Witaj!
=== GRA ===
Witaj!

Znajdź przyczynę problemu

Celowo błędny przykład diagnostyczny. Najpierw postaw hipotezę. Nie kopiuj tej wersji jako poprawnego rozwiązania.

Zamierzone działanie: Wyświetl menu przez wywołanie funkcji.

def show_menu():
    print("1. Start")

show_menu
Trop do diagnozy

Porównaj zamierzony rezultat z typami, nazwami i kolejnością instrukcji. Wskaż pierwsze miejsce, w którym zachowanie odbiega od celu.

Zastosuj w nowej sytuacji

Wskazówka do rozpoczęcia

Definicja przygotowuje zachowanie. Wywołanie wykonuje je i pozwala wrócić do dalszego programu.

Zacznij od przygotowania danych. Pierwsza instrukcja przykładowego rozwiązania:

def show_separator():
Rozwiązanie do samodzielnej kontroli
def show_separator():
    print("----------")

show_separator()
print("Wynik: 12")
show_separator()

Wynik kontrolny dla danych z przykładu. Wpisane odpowiedzi użytkownika nie są tutaj powtarzane:

----------
Wynik: 12
----------

Porównaj dane wejściowe, wynik i powód użycia konstrukcji. Inna wersja kodu jest poprawna, jeśli realizuje te same wymagania.

Co zabierasz do kolejnego programu?

Definicja przygotowuje zachowanie. Wywołanie wykonuje je i pozwala wrócić do dalszego programu.

Bez zaglądania do przykładu wyjaśnij własnymi słowami, jak główna konstrukcja prowadzi od danych do wyniku. Potem sprawdź wyjaśnienie, uruchamiając swój program.