Funkcje
Do tej pory cały nasz kod pisaliśmy w app.py, ale wraz z rozwojem naszych programów potrzebujemy lepszego sposobu na uporządkowanie naszego kodu. Musimy podzielić nasz kod na mniejsze, łatwiejsze w zarządzaniu i łatwiejsze w utrzymaniu części, które nazywamy funkcjami. Funkcja jest pojemnikiem na kilka linijek kodu, które wykonują określone zadanie.
Na przykład znasz już kilka wbudowanych funkcji w Pythonie print()
i input()
. Każda funkcja ma swój cel i wie, jak wykonać określone zadanie. Tak więc, kiedy budujemy duże, złożone programy, powinniśmy podzielić nasz kod na mniejsze, nadające się do ponownego użycia części, tj. funkcje.
Zrozummy tę koncepcję, budując program do drukowania wiadomości powitalnej.
print('Hi there!')
print('Welcome aboard!')
Tutaj mamy prosty program z tylko dwoma liniami kodu. Teraz powiedzmy, że będziemy potrzebować ich w innych programach, aby umieścić je w funkcji, której będziemy mogli ponownie użyć.
Pozwól, że przedstawię zastrzeżone słowo kluczowe def
w Pythonie, co jest skrótem od define i służy do definiowania funkcji.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Teraz ten blok kodu zdefiniuje funkcję „greet_user
” z kolejnymi liniami kodów. Za każdym razem, gdy ta funkcja zostanie wywołana, te dwie linie zostaną wykonane. Użyjmy tego:
print('start')
greet_user()
print('finish')
Program jest wykonywany sekwencyjnie, co oznacza, że musisz zdefiniować funkcję przed wywołaniem jej w programie.
parametry
Zdefiniowane funkcje działają nieco inaczej niż wbudowane funkcje Pythona. Na przykład w przypadku print()
funkcja, pobiera pewne informacje, które chcemy wydrukować, ale nasza funkcja powitania nie pobiera żadnych informacji. Czy nie byłoby ładniej, gdybyś mógł tu podać nazwę użytkownika, a potem zamiast mówić „cześć tam”, mógłbyś wydrukować imię użytkownika?
Możesz to zrobić, dodając parametry w nawiasach zdefiniowanej funkcji. Pokażę ci:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Teraz "name
” wewnątrz nawiasu będzie działać jak zmienna lokalna i możemy przekazać nazwę użytkownika podczas jej wywoływania.
greet_user('Shahbaz')
Teraz parametr name jest ustawiony na „Shahbaz
”. Zmieńmy program, aby z niego skorzystać.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Ważną rzeczą do zapamiętania jest to, że „nazwa” w pierwszym wierszu nazywana jest parametrem, podczas gdy podana nazwa, np. Shahbaz, nazywana jest argumentem.
Przejdźmy dalej i uruchommy ten program.
Dzięki tym parametrom możemy otrzymywać informacje w naszych funkcjach.
Zróbmy teraz coś ciekawego. Załóżmy, że chcesz dodać inną nazwę do powitania. To proste.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Teraz zauważ, że gdy funkcja ma parametr, jesteśmy zobowiązani do przekazania wartości tego parametru. Jeśli usuniesz nazwę z funkcji i uruchomisz program, dostaniemy błąd. Możesz także użyć wielu parametrów w jednej funkcji, oddzielonych przecinkami.
Na przykład, greet_user(first_name, last_name):
. Argumenty również będą sformatowane w podobny sposób.
Argumenty słów kluczowych
Do tej pory nauczyliśmy się, że ilekroć definiujemy parametry naszych funkcji, zawsze powinniśmy podawać wartości, w przeciwnym razie otrzymamy błąd. W ostatnim programie argumenty 'Shahbaz'
i 'Bhatti'
nazywane są argumentami pozycyjnymi, co oznacza, że ich pozycja lub kolejność mają znaczenie w programie.
W Pythonie mamy inny rodzaj argumentu, zwany argumentem słowa kluczowego, dla którego pozycja nie ma znaczenia. Pokażę ci, jak działają.
Spójrz na ostatni program. Możemy to zmodyfikować w ten sposób:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Teraz first_name
i last_name
to parametry słów kluczowych. Możesz zamienić ich miejsca, a wynik będzie taki sam.
Nie oznacza to, że zawsze powinniśmy używać argumentów słów kluczowych. W większości przypadków używamy argumentów pozycyjnych, ale w niektórych sytuacjach te argumenty ze słowami kluczowymi pomagają nam poprawić czytelność naszego kodu.
Jest jeszcze jedna rzecz, którą musisz wiedzieć o argumentach słów kluczowych. Argumenty słów kluczowych powinny zawsze występować po argumentach pozycyjnych.
Instrukcja zwrotu
Do tej pory nauczyliśmy się tworzyć funkcje i przesyłać im informacje za pomocą ich parametrów. Teraz nauczmy się tworzyć funkcje zwracające wartości. Jest to szczególnie przydatne, jeśli wykonujesz jakieś obliczenia i chcesz zwrócić wynik każdemu, kto używa twojej funkcji. Pokażę ci.
Zdefiniujmy funkcję, która obliczy kwadrat liczby.
def square(number):
return number*number
Użyliśmy instrukcji return, aby zwrócić tę liczbę poza funkcją. Teraz, jeśli wywołamy tę funkcję, zwróci ona wartość taką jak input()
funkcjonować. Wydrukujmy to na terminalu.
Możesz argumentować, że ten sam wynik można uzyskać bez użycia instrukcji return. Sprawdźmy to.
Widzimy dwie rzeczy, liczbę 9 i żadną. Co tu się dzieje?
Kiedy interpreter Pythona wykonuje ten kod, najpierw wywoła funkcję square, a kontrola przechodzi do funkcji. Tutaj obliczamy kwadrat tej podanej liczby, a następnie wypisujemy ją na terminalu.
Teraz domyślnie wszystkie funkcje zwracają wartość none. Więc jeśli nie mamy tutaj instrukcji return, domyślnie Python nie zwraca żadnej. Brak jest obiektem reprezentującym brak wartości. To jak nic lub null w C, C++, Javie i JavaScript.
Zakończyć!
Mam nadzieję, że zrozumiałeś znaczenie funkcji.
Są ważnym aspektem uczenia się Pythona, jeśli planujesz pisać duże i złożone programy w trakcie swojej kariery programistycznej.
Dodaj komentarz