Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski
W Pythonie tworzenie własnych funkcji jest bardzo proste. Funkcje są używane do grupowania kodu w celu wykonania określonych operacji, które mogą być wywoływane wielokrotnie w programie. Dla osób, które rozpoczynają przygodę z programowaniem, tworzenie własnych funkcji może być nie do końca uzasadnione i potrzebne, dlatego postaram się krótko wyartykułować sens tworzenia własnych funkcji.
Wyobraź sobie, że pewną czynność, np. narysowanie jakiejś postaci, wykonujesz wielokrotnie. Nagle okazało się, że ta postać będzie miała inny wygląd. Jeśli utworzyłeś funkcję, która rysuję tę postać, to poprawiasz wygląd postaci tylko w jednym miejscu, natomiast, jeśli tego nie zrobiłeś, tylko za każdym razem, gdy potrzebowałeś tej postaci, wklejałeś cały jej kod w odpowiednie miejsce programu, to teraz będziesz musiał wejść w każde miejsce kodu z tą postacią i ją naprawić — obyś niczego nie pominął.
Nie od dziś wiadomo, że aby rozwiązać duży problem, warto podzielić go na małe problemy, następnie każdy z nich rozwiązać niezależnie i w ten sposób uzyskamy rozwiązanie całego problemu. I dlatego wyobraź sobie program do napisania, który dzielisz na mniejsze programy, czyli funkcje, rozwiązując je niezależnie, a następnie łączysz rozwiązania w całość, otrzymując w ten sposób kompletny program.
Dobrze napisaną funkcję możesz wykorzystywać w innych programach.
Oto kilka przykładów tworzenia funkcji w Pythonie.
Napisz program, który wyznaczy sumę dwóch liczb całkowitych.
#początek funkcji suma
def suma(a, b): #
return a + b # zwrócenie wyniku sumy dwóch liczb
#koniec funkji suma
# ---------program główny----------
# Wywołanie funkcji i drukowanie wyniku
print(dodaj(3, 5)) # Wynik: 8
Napisz program, który wyznaczy wartość bezwzględną z liczby rzeczywistej.
#początek funkcji modul
def modul(a):
if a < 0:
return -a # jeśli warunek (a < 0) jest prawdziwy
else:
return a # jeśli warunek (a < 0) jest nieprawdziwy
#koniec funkcji modul
# ---------program główny----------
a = float(input("Podaj liczbę: ")) # np. -4.7
# Wywołanie funkcji i drukowanie wyniku
print(modul(a)) # Wynik: 4.7
Napisz program, który wypisze n kolejnych liczb naturalnych.
# początek funkcji wypisz
def wypisz(n):
for i in range(n):
print(i)
# koniec funkcji wypisz
# ---------program główny----------
n = int(input("Podaj liczbę: "))
# wywołanie funkcji wypisz
wypisz(n)
Możesz wstawiać parametry z wartością domyślną. Jeśli przy wywołaniu funkcji nie podasz dla takich parametrów wartości, to obowiązywać będzie wartość domyślna, w przeciwnym razie ta, która zostanie przekazana jako argument.
Napisz program, który wczyta liczbę całkowitą jako tekst i potrakuje ją jako liczbę zapisaną w systemie dziesiętnym, następnie w dwójkowym oraz piątkowym.
# algorytm.edu.pl
def int_(n, b = 10): #funkcja zamienia tekst będący liczbą na liczbę typu int
# domyślnie podajemy ją w systemie dziesiętnym
w = 0
for i in n:
# wykorzystujemy schemat Hornera
w = w*b + ord(i) - 48 # ord - uzyskujemy kod ASCII, dla zera jest to 48
return w
# ---------program główny----------
n = input("Podaj liczbę w systemie dzisiętnym: ") # 101000
print(f"Tekst na liczbę w systemie dziesiętnym: ", int_(n)) # domyślnie
print(f"Z dwójkowego na dziesiętny: ",int_(n, 2)) # musimy ustawić drugi parametr
print(f"Z piątkowego na dziesiętny: ",int_(n, 5)) # musimy ustawić drugi parametr
Pamiętaj, że jeśli przekazujesz zmienne typu int, float, string, bool
, to tworzone są ich kopie, co oznacza, że zmiany ich wartości nie będą widoczne w głównej części programu:
# ----------algorytm.edu.pl-----------
def funkcja(a): # zmienna "a" jest kopią zmiennej przekazanej jako argument
a = 90 # działamy na kopii
# głowna część programu
a = 100
funkcja(a)
print(a) # zostanie wypisane 100
Możesz tworzyć zmienne, które będą miały zasięg w całym programie używając słowa kluczowego global
przed nazwą zmiennej. Staraj się tworzyć zmienne tego typu tylko w uzasadnionych przypadkach, ponieważ łatwo jest stracić kontrolę nad działaniem naszego programu.
# ----------algorytm.edu.pl-----------
def funkcja():
global a # zmienna globalna jest widoczna w całym programie
a = 90
# głowna część programu
a = 100
funkcja()
print(a) # zostanie wypisane 90
lambda
Funkcja lambda w Pythonie jest funkcją anonimową, co oznacza, że nie ma ona nazwy. Jest to mała funkcja, która może zawierać tylko jedno wyrażenie. Funkcje lambda są zwykle używane w miejscach, gdzie potrzebujemy przekazać krótki blok kodu do innej funkcji, na przykład funkcji map()
, filter()
, lub sorted()
.
Składnia funkcji lambda wygląda tak:
lambda argumenty: wyrażenie
Oto kilka przykładów użycia funkcji lambda:
dodawanie = lambda x, y: x + y
wynik = dodawanie(3, 5) # wynik będzie równy 8
liczby = [1, 4, 2, 7, 5]
posortowane = sorted(liczby, key=lambda x: -x) # posortowane będzie [7, 5, 4, 2, 1]
liczby = [1, 2, 3, 4, 5, 6]
parzyste = list(filter(lambda x: x % 2 == 0, liczby)) # parzyste będzie [2, 4, 6]
Funkcje lambda są użyteczne, gdy potrzebujesz krótkiej funkcji do jednorazowego użycia, ale dla bardziej skomplikowanych funkcji zazwyczaj lepiej jest używać pełnych funkcji definiowanych słowem kluczowym "def".
def nazwa_funkcji():
# Ciało funkcji, czyli
# tutaj umieszczamy operacje, które funkcja ma wykonać
def nazwa_funkcji(parametr1, parametr2):
# Ciało funkcji, czyli
# tutaj umieszczamy operacje, które funkcja ma wykonać
def nazwa_funkcji(parametr1, parametr2):
# Ciało funkcji
wynik = parametr1 + parametr2
print("Wynik dodawania:", wynik)
def nazwa_funkcji(parametr1, parametr2):
# Ciało funkcji
wynik = parametr1 + parametr2
return wynik
# Wywołanie funkcji
nazwa_funkcji(2, 3)
To są podstawowe kroki do tworzenia funkcji w Pythonie. Pamiętaj, że możesz tworzyć funkcje z dowolnymi parametrami i dowolnym ciałem funkcji, w zależności od potrzeb. Funkcje są przydatne do uporządkowania kodu, zwiększania czytelności i wielokrotnego wykorzystania określonych operacji w programie.