154
Rozdział 4.
Dodaj argument
Funkcje przyjmują argumenty
Zamiast pozwalać funkcji
search4vowels
prosić użytkownika o podanie słowa do przeszukania,
lepiej byłoby przekazywać jej odpowiednie słowo jako argument wywołania. Wprowadźmy więc
odpowiednią zmianę.
Dodanie argumentu jest bardzo prostą sprawą. Wystarczy wpisać jego nazwę w nawiasie
widocznym w wierszu rozpoczynającym się słowem
def
. Ta nazwa argumentu zacznie następnie
odgrywać rolę zmiennej w zestawie funkcji. To łatwy krok.
Usuńmy również wiersz kodu proszący użytkownika o podanie słowa, które ma być
przeszukiwane. To również prosta sprawa.
Przypomnijmy sobie, jak wygląda w tej chwili nasz kod.
Pamiętaj,
że „zestaw”
to używana
w Pythonie
nazwa „bloku”.
Tutaj jest
widoczna
nasza
oryginalna
funkcja.
Umieść nazwę
argumentu
w nawiasie.
Pozbyliśmy się stąd
wywołania funkcji input
(ponieważ ten wiersz
kodu nie jest nam już
do niczego potrzebny).
Ten wiersz nie jest już
do niczego potrzebny.
Po wprowadzeniu dwóch zmian, o których była mowa powyżej, nasza funkcja wygląda już nieco
inaczej w oknie edycji środowiska IDLE, o czym możesz się przekonać poniżej. (Zauważ, że
zaktualizowaliśmy też tekst dokumentujący, co jest
zawsze wskazane w takich sytuacjach).
Pamiętaj, aby zapisywać swój kod po każdej dokonanej zmianie, zanim jeszcze naciśniesz klawisz
F5
w celu wypróbowania działania programu.
jesteś tutaj
155
Ponowne użycie kodu
Aktualny
kod funkcji
search4vowels
Choć wywołaliśmy tu funkcję search4vowels trzykrotnie, jedynym wywołaniem, które się powiodło, było
wywołanie, w którym został przekazany jeden argument będący łańcuchem znakowym. Pozostałe dwa zakończyły się
porażką. Poświęć chwilę i przeczytaj zwrócone przez interpreter komunikaty błędów, aby dowiedzieć się, dlaczego
poszczególne wywołania się nie powiodły.
Jazda próbna
Jeśli Twój kod jest już widoczny w oknie edycji środowiska IDLE (i zapisany w pliku), naciśnij klawisz
F5
, a następnie
wywołaj swoją funkcję kilka razy i zobacz, jaki przynosi to efekt.
P
: Czy tworząc funkcję z Pythonie, mogę używać wyłącznie jednego argumentu?
O
:
Nie, możesz korzystać z dowolnej liczby argumentów, która powinna być uzależniona od możliwości zapewnianych przez Twoją
funkcję. Celowo zaczynamy tu od bardzo prostego przykładu, ponieważ zamierzamy przejść do bardziej zaawansowanych wraz
z rozwojem niniejszego rozdziału. Z argumentami funkcji da się zrobić w Pythonie wiele ciekawych rzeczy. Większość tych możliwości
planujemy dokładnie omówić na następnych kilkunastu stronach.
głupie pytania
Nie istnieją
156
Rozdział 4.
Zwróć wartość
Funkcje zwracają wynik
Wyodrębnianie i nadawanie nazw określonym fragmentom kodu to niejedyne powody,
dla których programiści tworzą funkcje i ich używają. Zwykle chcą również, aby ich
funkcja zwracała pewną obliczoną wartość, z której może następnie korzystać kod
wywołujący funkcję. Aby zapewnić możliwość zwracania wartości (jednej lub wielu),
język Python oferuje instrukcję
return
.
Gdy interpreter napotyka instrukcję
return
w zestawie Twojej funkcji, dzieją się dwie
rzeczy: funkcja kończy swoje działanie na tej instrukcji, a dowolna wartość podana obok
słowa kluczowego
return
zostaje zwrócona do kodu, z którego wywołano funkcję.
Jak widać, bardzo przypomina to działanie instrukcji
return
znanej z większości innych
języków programowania.
Zacznijmy od prostego przykładu, w którym nasza funkcja
search4vowels
będzie
zwracać pojedynczą wartość. A konkretnie niech będzie to wartość
True
lub
False
w zależności od tego, czy wartość przekazana za pomocą argumentu
word
zawiera jakieś
samogłoski, czy też nie.
Stanowi to co prawda pewne odejście od możliwości, jakie nasza funkcja zapewniała do
tej pory, ale nie przejmuj się tym i podążaj dalej za nami, ponieważ zamierzamy wkrótce
na tej podstawie zbudować coś bardziej skomplikowanego (i użytecznego). Dzięki
rozpoczęciu od prostego przykładu mamy pewność, że najpierw dobrze opanujesz
podstawy. Dopiero później przejdziesz do bardziej złożonych zagadnień.
Prawda jest taka...
Python oferuje wbudowaną funkcję o nazwie
bool
, która gdy
otrzyma jakąkolwiek wartość, sprowadza do wartości
True
lub
False
i zwraca wynik tego działania.
Funkcja
bool
nie tylko operuje na dowolnych wartościach,
lecz radzi sobie z dowolnymi obiektami języka Python.
Wskutek tego notacja Pythona rozciąga się daleko poza
prostą wartość
1
dla
True
oraz
0
dla
False
, jak ma to miejsce
w innych językach programowania.
Zatrzymajmy się tu na chwilę i przyjrzyjmy się nieco
dokładniej wartościom
True
oraz
False
w Pythonie, zanim
powrócimy do omawiania instrukcji
return
.
To brzmi jak plan, którego
mogę się trzymać. Mam
tylko jedno pytanie: skąd
mam wiedzieć, czy coś jest
prawdą, czy fałszem?

Get Python Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.