reklama
Funkcje w Pythonie
Funkcja w Pythonie to blok kodu, który działa tylko wtedy gdy jest wywoływana.
W Pythonie funkcję definiuje sie słowem kluczowym
def.
Żeby wywołać
funkcję w Pythonie należy użyć nazwy funkcji (nazwa może być dowolna) po której występują okrągłe nawiasy:
Przykład:
Przykład
def funkcja():
print("ok")
wywołanie funkcji:
funkcja()
ok #wynik
Parametry i argumenty funkcji
W definicji funkcji, w nawiasach wstawiamy
parametry funkcji:
W przykładzie poniżej parametrem jest zmienna /name/.
Podczas wywoływania funkcji w nawiasy funkcji wstawiamy
argumenty funkcji, będące wartością przekazywaną do parametrów funkcji, w naszym przypadku to
argument: "Jan".
Przykład
def funkcja(name):
print(name)
wywołanie funkcji:
funkcja("Jan")
Jan #wynik
Inny przykład, przekazanie argumentu o wartości '5' do parametru funkcji, podczas jej wywołania.
Przykład
def funkcja(liczba):
print(liczba + liczba)
funkcja(5)
10 #wynik
Podsumowując, do funkcji można przekazać dane zwane
parametrami i
argumentami.
a)
parametry to zmienne zawarte w definicji funkcji,
b)
argumenty to wartości przekazane do funkcji podczas jej wywoływania. Jest to wartość/dana przekazana do parametru funkcji.
Domyślnie funkcja musi być wywoływana z odpowiednią ilością argumentów. Jeśli w definicji funkcji zawarte są dwa parametry, to funkcja
w jej wywołaniu również oczekuje dwóch argumentów:
Przykład
def funkcja (miasto, dzielnica):
print("Mieszkam w " + miasto + " na " + dzielnica)
funkcja("Warszawie", "Bielanach") //muszą być dwa argumenty w wywołaniu funkcji
Mieszkam w Warszawie na Bielanach #wynik
funkcja(*parametr)
Ale jeżeli nie znasz liczby argumentów w wywołaniu funkcji, to przed parametrem w definicji funkcji wstaw znak *. Wówczas do funkcji przekazana zostanie krotka,
z której możesz wywołać wybraną pozycję. Pozycję z krotki wybieramy podstawiając pod zmienną np. [2]
Przykład
def funkcja(*name):
print("Mam na imię " + name[2])
wywołanie funkcji:
funkcja("Krzys", "Jola", "Pauli", "Mada")
wynik:
Mam na imię Pauli #wynik
składnia w wywołaniu funkcji (klucz=wartość)
Możesz wysyłać do funkcji argumenty za pomocą składni: klucz = wartość. Wówczas kolejność argumentów nie ma znaczenia.
Przykład
def funkcja(name1, name2, name3):
print("Mam na imię " + name2)
funkcja(name1="Pauli", name2="Jola", name3="Krzys")
Mam na imię Jola #wynik
funkcja(**parametr)
Jeżeli nie znasz liczby argumentów jaka będzie przekazana do twojej funkcji, możesz również przed parametrem w definicji funkcji wstawić **.
Wówczas do funkcji przekazany zostanie słownik argumentów, z którego możesz wywołać wybrany element.
W definicji funkcji, po nazwie parametru, w nawiasy kwadratowe wstawiamy klucz w cudzysłowiu:
Przykład
def funkcja(**name):
print("mam na imie " + name["name2"])
funkcja(name1:"Krzys", name2:"Jola", name3:"Pauli")
SyntaxError: invalid syntax
funkcja(name1="Krzys", name2="Jola", name3="Pauli")
mam na imie Jola #wynik
return
funkcja może od razu zwrócić wynik dzięki słowu kluczowemu return. W poniższym przykładzie funkcja w pętli for wykona tylko jedno działanie, po czym od razu zwróci liczbę 100.
Przykład 1
x=[1,2,3,4]
def function(y):
for i in x:
print(i + y)
return 100
function(2)
3 #wynik
100 #wynik
Po słowie kluczowym return możemy zapisać działania np.(mnożenie), które spowoduje zwrócenie od razu wyniku:
Przykład 2
def funkcja(liczba):
return liczba * 10
funkcja(2)
20
Pętla while w funkcji
W instrukcji funkcji możemy użyć pętli while. W przykładzie poniżej funkcja zwróci słowo "ok" 5 razy, ponieważ pętla wykonała się 5 razy i warunek został
spełniony, czyli x<y:
Przykład
def funkcja():
x=5
y=10
while x<y:
print("ok")
x+=1
wywołanie funkcji:
funkcja()
ok
ok
ok
ok
ok
UWAGA! Pamiętajmy o operatorze przypisania do zmiennej x, czyli x =+ 1, ponieważ inaczej pętla będzie wykonywać się w nieskończoność.
Rekurencja
Rekurencja polega na tym, że funkcja w swojej instrukcji wywołuje samą siebie:
Przykład
def funkcja(x):
if x==0:
print("ok")
else:
print(x)
funkcja(x-1)
funkcja(7)
7
6
5
4
3
2
1
ok
Funkcje zagnieżdżone
Funkcja zagnieżdżona jest to funkcja w obrębie innej funkcji i jest czasami nazywana „funkcją wewnętrzną”.
Żeby utowrzyć funkcję zagnieżdżoną inicjujemy ją w ciele innej funkcji używając słowa kluczowege 'def'.
Przykład
def fun(a):
print(a)
def fun_1():
return 10
print(a + fun_1())
fun(2)
2 #wynik
12 #wynik
reklama