Funkcje wbudowane w Pythonie
Python

Funkcje wbudowane w Pythonie

Funkcje wbudowane w Pythonie są dostępne od razu po uruchomieniu interpretera Pythona, bez konieczności importowania dodatkowych bibliotek. W artykule opisuję zastosowanie funkcji wbudowanych oraz prezentuję przykłady ich użycia w programach.

Postaram się przy okazji odpowiedzieć na często zadawane pytania o przydatne funkcje w Pythonie, które otrzymujemy na naszym blogu.

Źródła dostępnych w Pythonie funkcji

Niektóre funkcje w Pythonie są wbudowane w interpreter i można ich używać od razu. Inne z kolei znajdują się w modułach, które przed użyciem trzeba zaimportować. Poniżej znajdziesz informacje, w jakich przestrzeniach znajdują się funkcje Pythona:

  • Funkcje wbudowane – są dostępne globalnie i nie wymagają importowania. Znajdują się w module builtins, który jest ładowany automatycznie podczas uruchamiania programu.
  • Funkcje z biblioteki standardowej – zorganizowane są w moduły tematyczne, takie jak math, random, czy os. Aby ich używać, należy zaimportować odpowiedni moduł.
  • Funkcje z modułów zewnętrznych – znajdują się w bibliotekach, które nie są częścią biblioteki standardowej np. numpy, pandas, requests. Wymagają wcześniejszej instalacji bibliotek.
  • Funkcje zdefiniowane przez użytkownika – są tworzone przez programistów. Informacje, w jaki sposób definiować funkcje znajdziesz w artykule Tworzenie funkcji w Pythonie
  • Funkcje we frameworkach i aplikacjach – Python jest używany we frameworkach np. Django, Flask oraz aplikacjach np. Blender, GIMP. Takie środowiska dostarczają swoich własnych API z funkcjami specyficznymi dla ich zastosowań np. django.shortcuts.render() w Django, bpy.ops.object.select_all() w Blenderze.

Zrozumienie, gdzie szukać odpowiednich funkcji i jak je wykorzystać, ułatwia pracę i pozwala na lepsze wykorzystanie możliwości Pythona w projektach.

Czym są funkcje wbudowane w Pythonie?

Funkcje wbudowane w Pythonie (ang. built-in functions) to:

  • zestaw funkcji, które są zdefiniowane w module builtins – moduł ten jest automatycznie ładowany przez interpreter Pythona i funkcje są dostępne od razu po uruchomieniu interpretera
  • obejmują podstawowe operacje, takie jak print(), len(), abs(), type() czy max(), które są bardzo przydatne w codziennym programowaniu

Funkcje wbudowane podzieliłem na kilka kategorii, które przedstawiam poniżej. Można je jednak uporządkować zupełnie inaczej, w zależności od potrzeb lub w ogóle nie tworzyć kategorii.

Listę funkcji wbudowanych znajdziesz w dokumentacji Pythona.

Pełny spis wbudowanych funkcji możemy uzyskać w Pythonie poleceniem dir().

Funkcje do operacji na danych

W poniższej tabeli przedstawiam funkcje, które są często wykorzystywane do analizowania i manipulowania danymi w Pythonie

Nazwa funkcjiOpis
len()Zwraca liczbę elementów w obiekcie np. długość listy, ciągu tekstowego, krotki. Przykład: len([1, 2, 3]) zwróci 3.
sum()Zwraca sumę wszystkich elementów w iterowalnym obiekcie np. liście liczb. Przykład: sum([1, 2, 3]) zwróci 6.
max()Zwraca największy element w iterowalnym obiekcie. Działa dla liczb oraz innych obiektów, które mogą być porównywane. Przykład: max([1, 2, 3]) zwróci 3.
min()Zwraca najmniejszy element w iterowalnym obiekcie. Działa dla liczb oraz innych obiektów, które mogą być porównywane. Przykład: min([1, 2, 3]) zwróci 1.
type()Zwraca typ obiektu np. typ zmiennej int, str, list. Przykład: type(5) zwróci <class 'int'>.
id()Zwraca unikalny identyfikator obiektu w pamięci. Przykład: id(5) zwróci numer reprezentujący lokalizację obiektu w pamięci tj. 140726450455592.
zip()Łączy elementy z dwóch lub więcej iterowalnych obiektów w pary lub n-tuples, tworząc nową iterację. Przykład: print(list(zip([1, 2, 3], ['a', 'b', 'c']))) zwróci [(1, 'a'), (2, 'b')].

Funkcja zip() zwraca obiekt typu zip, który jest iteratorem (pozwala na sekwencyjne przechodzenie przez kolejne elementy). Aby zobaczyć wyniki np. w postaci listy musimy go przekonwertować na listę. Dlatego w przykładzie w tabeli używamy funkcji list(zip()).

Poniżej przykład programu, który analizuje dane o sprzedaży produktów w sklepie: 

produkty = ['łóżko', 'szafa', 'stół', 'krzesło', 'komoda'] # produkty
ceny = [1500, 1200, 800, 200, 500] # ceny produktów
ilosc= [50, 30, 70, 120, 40] # liczba sprzedaży

# 1. Całkowita liczba sprzedanych produktów
calkowita_liczba_produktow = sum(ilosc)
print('calkowita_liczba_produktow:', calkowita_liczba_produktow)

# 2. Całkowity przychód ze sprzedaży
calkowity_przychod = sum(cena * ilosc for cena, ilosc in zip(ceny, ilosc))
print('calkowity_przychod:', calkowity_przychod)

# 3. Cena najdroższego sprzedanego produktu
najdrozszy_produkt = max(ceny)
print('najdrozszy_produkt', najdrozszy_produkt)

# 4. Cena najtańszego sprzedanego produktu
najtanszy_produkt = min(ceny)
print('najtanszy_produkt', najtanszy_produkt)

# Wynik
# calkowita_liczba_produktow: 310
# calkowity_przychod: 211000
# najdrozszy_produkt 1500
# najtanszy_produkt 200

W przykładzie: 

  • tworzymy trzy listy – lista z produktami, cenami i ilością sprzedanych produktów
  • wyliczamy całkowitą liczbę sprzedanych produktów sumując wartości z listy ilosc
  • wyliczamy całkowity przychód ze sprzedaży. Funkcja zip() łączy elementy z listy ceny i ilosc w pary. Dla każdej pary (cena, ilosc), obliczamy wartość sprzedaży produktu (czyli cena pomnożona przez ilość) i sumujemy te wartości.
  • za pomocą funkcji max() zwracamy największą wartość na liście ceny, która jest ceną najdroższego produktu
  • za pomocą funkcji min() zwracamy najmniejszą wartość na liście ceny, która jest ceną najtańszego produktu
  • za pomocą funkcji print() wyświetlamy wyniki
klienci = ['Anna', 'Jan', 'Kasia', 'Tomasz', 'Anna', 'Kasia']
liczba_zamowien = len(klienci)
print(liczba_zamowien)

W przykładzie funkcja len() oblicza, ile elementów znajduje się na liście klienci. W tym przypadku funkcja zwróci 6, gdyż lista zawiera 6 elementów. 

liczba = 5
print("Typ zmiennej 'liczba':", type(liczba))
print("Identyfikator zmiennej 'liczba':", id(liczba))

# Wynik
# Typ zmiennej 'liczba': <class 'int'>
# Identyfikator zmiennej 'liczba': 140726450455592

W przykładzie:

  • funkcja type() zwróci typ zmiennej np. int dla liczby
  • id() zwróci unikalny identyfikator reprezentujący lokalizację zmiennej w pamięci

Funkcje do konwersji typów

Funkcje do konwersji typów w języku Python umożliwiają zmianę typu danych, co jest niezbędne w pracy z różnymi formatami.

Dzięki nim możemy dostosować obiekt do wymaganego typu np. zrobić konwersję na typ całkowity, zmiennoprzecinkowy, łańcuch znaków (napis), listę czy krotkę.

Nazwa funkcjiOpis
int()Konwertuje wartość na typ całkowity. Przykład: int('10') zwróci 10.
float()Konwertuje wartość na typ zmiennoprzecinkowy. Przykład: float('10.5') zwróci 10.5.
str()Konwertuje obiekt na łańcuch znaków. Przykład: str(10) zwróci '10'.
list()Tworzy listę z iterowalnego obiektu. Przykład: list((1, 2, 3)) zwróci [1, 2, 3].
tuple()Tworzy krotkę z iterowalnego obiektu. Przykład: tuple([1, 2, 3]) zwróci (1, 2, 3).
format()Formatuje łańcuch zgodnie z określonym wzorem. Przykład: '{0} jest liczbą'.format(10) zwróci '10 jest liczbą'.
cena = '1200.50' # Cena jako string
cena = float(cena) # Konwertujemy na float
if cena > 1000:
    cena = cena - (cena* 0.10)  # 10% rabatu
print(cena)

W przykładzie:

  • za pomocą funkcji float konwertujemy ciąg znaków na liczbę zmiennoprzecinkową
  • za pomocą instrukcji warunkowej if obliczamy cenę z uwzględnieniem rabatu – jeśli cena jest wyższa niż 1000 obniżamy cenę o 10% i przypisujemy wynik do zmiennej cena
  • wyświetlamy wynik za pomocą funkcji print()

Informacje na temat instrukcji warunkowych znajdziesz w artykule Python instrukcje warunkowe. Z kolei zmienne opisaliśmy w artykule Python zmienne

wiek = input("Podaj swój wiek: ")
wzrost = input("Podaj swój wzrost w metrach: ")
wiek = int(wiek) # Konwertujemy wiek na int
wzrost = float(wzrost) # Konwertujemy wzrost na float
print(wiek,wzrost)

W przykładzie:

  • użytkownik podaje wiek i wzrost
  • konwertujemy wiek na liczbę całkowitą za pomocą funkcji int() i przypisujemy wynik do zmiennej wiek
  • konwertujemy wzrost na liczbę zmiennoprzecinkową za pomocą funkcji float i przypisujemy wynik do zmiennej wzrost
  • wyświetlamy wiek i wzrost

Jeśli używamy funkcji funkcji input() w Pythonie, dane wprowadzone przez użytkownika są zawsze zwracane jako ciąg znaków (typ str), niezależnie od tego, czy użytkownik wprowadził liczbę czy tekst. Dlatego w przykładzie dokonujemy konwersji.

# Użytkownik wprowadza imiona pracowników oddzielone przecinkami
imiona = input("Podaj imiona pracowników, oddzielając je przecinkami: ")

# Konwertujemy ciąg tekstowy na listę imion
lista_imion = list(imiona.split(','))

# Wyświetlamy listę imion
print("Lista imion pracowników:", lista_imion)

W przykładzie:

  • za pomocą funkcji input() – użytkownik wprowadza dane w formie tekstu, np. „Anna, Paweł, Jan”
  • funkcja split(’,’) dzieli ciąg tekstowy na elementy, używając przecinka jako separatora (wynik: [’Anna’, ’ Paweł’, ’ Jan’])
  • funkcja list() konwertuje wynik split() na listę – w tym przypadku wynik split() już jest listą
# Dane o produkcie
cena = 1999.99

# Określony wzór formatowania
wzór = "Cena: {:.2f} PLN"

# Formatowanie ceny
sformatowana_cena = wzór.format(cena)

# Wyświetlanie sformatowanej ceny
print(sformatowana_cena)

W przykładzie:

  • w zmiennej cena mamy informację o cenie produktu
  • w zmiennej wzór określamy format, w jakim cena ma być wyświetlana  „{:.2f}” – to wzór formatowania, który oznacza, że liczba będzie wyświetlana z dwoma miejscami po przecinku
  • format(cena) – wstawia wartość zmiennej cena do łańcucha tekstowego w miejscu {:.2f}.

Funkcje do pracy z tekstem

Python oferuje zestaw funkcji, które umożliwiają konwersję obiektów na łańcuchy znaków, tworzenie sformatowanego tekstu oraz manipulację kodami znaków w systemach ASCII i Unicode. Poniżej funkcje, które umożliwiają pracę z tekstem w języku programowania Python.

Nazwa funkcjiOpis
str()Konwertuje obiekt na łańcuch znaków. Przykład: str(10) zwróci '10'.
repr()Zwraca techniczną reprezentację obiektu jako łańcuch znaków. Przykład: repr('tekst') zwróci "'tekst'".
format()Formatuje łańcuch zgodnie z określonym wzorem. Przykład: '{0} jest liczbą'.format(10) zwróci '10 jest liczbą'.
ord()Zwraca kod ASCII/Unicode znaku. Przykład: ord('A') zwróci 65.
chr()Zwraca znak na podstawie kodu ASCII/Unicode. Przykład: chr(65) zwróci 'A'.
# Numer zamówienia
nr_zam = 12345

# Tworzenie wiadomości e-mail
wiadomosc = "Potwierdzamy zamówienie nr " + str(nr_zam) + "."

# Wyświetlenie wiadomości
print(wiadomosc)

W przykładzie funkcja str() konwertuje numer zamówienia (typ int) na tekst. Dzięki temu możliwe jest  jego połączenie z innymi łańcuchami. 

x = 'tekst'

print(str(x))   # Zwraca: tekst
print(repr(x))  # Zwraca: 'tekst'

W przykładzie funkcja repr()  generuje techniczną reprezentację obiektu. 

Techniczna reprezentacja obiektu odnosi się do takiej formy obiektu, która jest bardziej szczegółowa i przeznaczona dla programisty, a nie użytkownika końcowego. Jest to zapis, który pokazuje dokładne odwzorowanie obiektu w Pythonie w taki sposób, aby można było go odtworzyć w kodzie. Może to być przydatne do debugowania, testów lub zapisywania obiektów w formie gotowej do odtworzenia przez interpreter Pythona.

Funkcje do pracy z iteracjami

Iteracje to proces powtarzalnego wykonywania zestawu instrukcji lub operacji na zbiorze danych. Funkcje do pracy z iteracjami w Pythonie pozwalają na przetwarzanie danych, które można iterować, takich jak listy, zbiory, krotki czy słowniki.

Iteracje są realizowane za pomocą specjalnych konstrukcji, takich jak pętle (np. for, while) lub funkcji operujących na iterowalnych obiektach. Kluczowym elementem iteracji jest iterator – obiekt, który umożliwia przechodzenie przez kolejne elementy kolekcji

Poniżej znajdziesz informacje na temat kilku funkcji przydatnych do pracy z iteracjami:

Nazwa funkcjiOpis
map()Zastosowuje podaną funkcję do każdego elementu iterowalnego obiektu. Przykład: list(map(lambda x: x**2, [1, 2, 3])) Wynik: [1, 4, 9]. Funkcja map() zwraca obiekt map. Aby podejrzeć wyniki musimy dodatkowo użyć funkcji list()
filter()Filtruje elementy iterowalnego obiektu na podstawie podanej funkcji warunkowej. Przykład: list(filter(lambda x: x > 2, [1, 2, 3, 4])) zwróci [3, 4].
zip()Łączy elementy z dwóch lub więcej iterowalnych obiektów, tworząc krotki. Przykład: list(zip([1, 2, 3], ['a', 'b', 'c'])) zwróci [(1, 'a'), (2, 'b'), (3, 'c')].
enumerate()Zwraca iterowalny obiekt, który dla każdego elementu kolekcji zwraca indeks i wartość. Przykład: list(enumerate(['a', 'b', 'c'])) zwróci [(0, 'a'), (1, 'b'), (2, 'c')].
iter()Tworzy iterator z iterowalnego obiektu. Przykład: list(iter([1, 2, 3])) zwróci iterator listy [1, 2, 3].
next()Zwraca kolejny element z iteratora lub wartość domyślną, jeśli iterator się zakończył. Przykład: next(iter([1, 2, 3])) zwróci 1.
ceny = [15, 30, 5, 60, 25]
wynik = filter(lambda cena: cena > 20, ceny)
print(list(wynik))

W przykładzie:

  • tworzymy listę z cenami i przypisujemy ją do zmiennej ceny
  • za pomocą funkcji lambda() sprawdzamy, czy cena jest większa niż 20
  • za pomocą funkcji filter() filtrujemy elementy i pozostawiamy tylko te, które spełniają warunek określony w funkcji lambda
  • funkcją print() wyświetlamy wynik. W funkcji filter(), wynik zwracany jest jako obiekt typu filter, który jest iterowalny (można go przejść w pętli lub używać w innych strukturach, które przyjmują iteratory). Aby zobaczyć wyniki w postaci listy, musimy przekonwertować ten obiekt na listę przy pomocy funkcji list(). Dlatego w funkcji print() zagnieżdzona jest funkcja list())

Funkcje do zarządzania operacjami wejścia i wyjścia

W Pythonie istnieje kilka funkcji, które umożliwiają interakcję z użytkownikiem oraz manipulowanie danymi wejściowymi i wyjściowymi.

Nazwa funkcjiOpis
print()Wyświetla dane na standardowym wyjściu. Przykład: print("Witaj świecie!") zwróci Witaj świecie!.
input()Pozwala na wprowadzenie danych przez użytkownika. Przykład: imie = input("Podaj swoje imię: "), jeśli użytkownik wpisze „Jan”, wynik: Jan.
eval()Wykonuje kod Python zawarty w łańcuchu znaków. Przykład: x = 10; eval("x + 5") zwróci 15.
assert()Sprawdza warunek i podnosi wyjątek, jeśli nie jest spełniony. Przykład: assert 5 > 3 (nic się nie dzieje, jeśli warunek jest prawdziwy, jeśli fałszywy, zgłasza wyjątek).
dir()Zwraca listę atrybutów obiektu. Przykład: dir(int)
wyrazenie = input("Wpisz wyrażenie matematyczne (np. 2 + 3): ")
wynik = eval(wyrazenie)
print(wynik)

W przykładzie:

  • pobieramy wyrażenie od użytkownika
  • obliczamy wynik używając funkcji eval()
  • za pomocą funkcji print() wyświetlamy wynik

Uwaga! Funkcja eval() może stwarzać niebezpieczeństwo w aplikacjach, które przyjmują dane od użytkowników, gdyż może ona wykonać dowolny kod Pythona np. usunięcie plików, dostęp do wrażliwych danych. Dlatego należy zachować ostrożność przy jej stosowaniu i unikać jej w aplikacjach, które przyjmują dane wejściowe z nieznanych źródeł.

wiek = 15
assert wiek >= 18, "Nieprawidłowy wiek"
print("Rejestracja możliwa")

W przykładzie:

  • do zmiennej wiek przypisujemy wartość 15
  • sprawdzamy, czy wiek jest większy lub równy 18
    • jeśli wiek jest większy lub równy 18 wyświetli się napis „Rejestracja możliwa”
    • jeśli wiek nie jest większy lub równy 18 lat wyświetlony zostanie błąd: Python assert error przykład
napis = "Python"
print(dir(napis))

W przykładzie:

  • do zmiennej napis przypisujemy słowo „Python”
  • wyświetlamy atrybuty i metody dostępne dla obiektu napis

Funkcje pomocnicze do zarządzania pamięcią i obiektami

W Pythonie dostępne są funkcje wbudowane, które umożliwiają zarządzanie zmiennymi, obiektami i operacjami w kodzie. Niektóre z nich są szczególnie przydatne w kontekście manipulowania obiektami, kontrolowania przestrzeni nazw oraz dynamicznego tworzenia funkcji.

Nazwa funkcjiOpis
del()Usuwa obiekt lub jego elementy. Przykład: lista = [1, 2, 3]; del lista[1] usunie element o indeksie 1, czyli 2. Wynik: [1, 3].
globals()Zwraca słownik globalnych zmiennych. Przykład: x =10; print(globals()) zwróci słownik z globalnymi zmiennymi w programie. x = 10 ma na celu wprowadzenie zmiennej x do zakresu globalnego, aby funkcja globals() mogła ją wyświetlić.
locals()Zwraca słownik lokalnych zmiennych. Przykład: x = 10; print(locals())
callable()Sprawdza, czy obiekt jest wywoływalny np. funkcja lub metoda. Przykład: callable(print) zwróci True, gdyżprint jest funkcją, a callable(10) zwróci False, gdyż liczba całkowita nie jest wywoływalna.
lambda()Pozwala na tworzenie anonimowych funkcji w jednej linii. Przykład: dodaj = lambda a, b: a + b; dodaj(2, 3) zwróci 5
dodaj = lambda a, b: a + b
# Wywołanie funkcji lambda i wyświetlenie wyniku
print(dodaj(2, 3))

W przykładzie:

  • lambda a, b: a + b tworzy anonimową funkcję, która przyjmuje dwa argumenty (a i b) i zwraca ich sumę
  • dodaj(2, 3) wywołuje tę funkcję z argumentami 2 i 3
  • print() wyświetla wynik, czyli 5

Funkcje pomocnicze do pracy z obiektami

W Pythonie istnieje szereg funkcji wbudowanych, które pozwalają na interakcję z obiektami w czasie działania programu. Dzięki nim programista ma możliwość uzyskiwania informacji o obiektach, modyfikowania ich właściwości, a także zarządzania nimi w sposób dynamiczny.

Nazwa funkcjiOpis
id()Zwraca unikalny identyfikator obiektu. Przykład: print(id("Python")) zwróci unikalny identyfikator dla obiektu tj. 2104674668384
getattr()Zwraca wartość atrybutu obiektu o podanej nazwie. Przykład: getattr(obj, "nazwa") zwróci wartość atrybutu nazwa obiektu obj, jeśli taki istnieje. Jeśli obiekt nie istnieje funkcja zwraca błąd
setattr()Ustala wartość atrybutu obiektu o podanej nazwie. Przykład: setattr(obj, "wiek", 30) ustawi atrybut wiek obiektu obj na wartość 30. Jeśli obiekt nie istnieje zwraca błąd.
hasattr()Sprawdza, czy obiekt ma określony atrybut. Przykład: hasattr(obj, "wiek") zwróci True, jeśli obiekt obj ma atrybut wiek, w przeciwnym razie zwróci False.
delattr()Usuwa atrybut obiektu o podanej nazwie. Przykład: delattr(obj, "wiek") usunie atrybut wiek z obiektu obj.
# Tworzymy klasę z atrybutami
class Osoba:
    def __init__(self, imie, wiek):
        self.imie = imie
        self.wiek = wiek
 
# Tworzymy instancję klasy
osoba = Osoba("Jan", 30)
 
# Używamy getattr() do pobrania atrybutu obiektu
imie = getattr(osoba, "imie")  # Pobiera atrybut 'imie'
wiek = getattr(osoba, "wiek")  # Pobiera atrybut 'wiek'
 
print(imie)  # Jan
print(wiek)  # 30


# Pobieramy atrybut, jeśli istnieje, lub zwracamy wartość domyślną
wiek = getattr(osoba, "wiek", "Atrybut nie istnieje")
print(wiek)  # 30
 
# Jeśli odwołamy się do nieistniejącego atrybutu, zwróci wartość domyślną
adres = getattr(osoba, "miasto", "Atrybut nie istnieje")
print(adres)  # Atrybut nie istnieje

W przykładzie:

  • Tworzymy klasę Osoba:
  • Klasa Osoba ma metodę __init__, która przyjmuje dwa argumenty: imie i wiek, i przypisuje je jako atrybuty obiektu
  • Tworzymy instancję klasy Osoba:
  • Tworzymy obiekt osoba klasy Osoba i przekazujemy argumenty „Jan” i 30, które są przypisane do atrybutów imie i wiek
  • Używamy getattr() do pobrania atrybutów:
    • Funkcja getattr() pozwala pobrać wartość atrybutu o nazwie podanej w drugim argumencie. Pierwsze wywołanie getattr(osoba, „imie”) zwróci wartość „Jan”. Drugie wywołanie getattr(osoba, „wiek”) zwróci wartość 30
    • Jeśli podamy atrybut, który nie istnieje zwrócona zostanie informacja „Atrybut nie istnieje

W artykule przedstawiam kluczowe funkcje wbudowane w Pythonie. W trakcie naszego kursu Python poziom podstawowy funkcje te wykorzystujemy w praktycznych ćwiczeniach. Zapraszamy do wspólnego ćwiczenia na szkoleniu.

Piotr Kubiata

Programista Python
Udostępnij wpis: udostępnij Facebook udostępnij Linkedin udostępnij e-mail
Podobne artykuły z kategorii: Python

Może Cię zainteresować