len(), range(), input(), print(), type() i inne gotowe narzędzia Pythona.
Funkcje wbudowane (built-in functions) to gotowe narzędzia dostępne w Pythonie bez importowania żadnych modułów. Są zawsze dostępne — wystarczy je wywołać po nazwie.
Funkcję wywołujesz pisząc jej nazwę i podając argumenty w nawiasach okrągłych: nazwa(argument). Funkcja może zwracać wartość (return) lub tylko wykonywać działanie (jak print()).
dir(__builtins__) w konsoli Pythona. Na egzaminie liczy się znajomość tych najczęściej używanych.
# wywołanie bez argumentu
wynik = funkcja()
# wywołanie z jednym argumentem
wynik = funkcja(argument)
# wywołanie z wieloma argumentami
wynik = funkcja(arg1, arg2, arg3)
# wywołanie z argumentem nazwanym
wynik = funkcja(arg1, klucz=wartość)
# wynik można od razu użyć
print(len("Python")) # 6
print(type(3.14)) # <class 'float'>
input(prompt) — wyświetla tekst zachęty i czeka na wpisanie danych przez użytkownika. Zawsze zwraca str.
print(*args, sep, end, file) — wypisuje wartości na ekran.
sep=" " — separator między wartościami (domyślnie spacja)end="\n" — co wypisać na końcu (domyślnie nowa linia)print(a, b, c)f"tekst {zmienna}" — najwygodniejszy sposób formatowania:.2f — dwa miejsca po przecinku:10 — pole szerokości 10 znaków:>10 — wyrównanie do prawej# input — zawsze zwraca str
imie = input("Imię: ")
wiek = int(input("Wiek: "))
cena = float(input("Cena: "))
# print — różne formy
print("Cześć", imie)
print(f"Masz {wiek} lat.")
print(f"Cena: {cena:.2f} zł")
# separator i końcówka
print("a", "b", "c", sep="-") # a-b-c
print("Ładuję", end="")
print("...") # Ładuję...
# formatowanie kolumn
print(f"{'Produkt':<15} {'Cena':>8}")
print(f"{'Jabłko':<15} {2.49:>8.2f}")
print(f"{'Banan':<15} {1.20:>8.2f}")
type(x) — zwraca typ obiektu. Przydatne do debugowania.
Funkcje konwertujące pozwalają zamieniać wartości między typami. Nieudana konwersja powoduje błąd ValueError.
| Funkcja | Co robi | Uwaga |
|---|---|---|
int(x) | zamienia na liczbę całkowitą | obcina część ułamkową |
float(x) | zamienia na liczbę z przecinkiem | przyjmuje też int |
str(x) | zamienia na tekst | działa na każdym typie |
bool(x) | zamienia na True/False | 0, "", [] → False |
type(x) | zwraca typ obiektu | nie konwertuje |
int(3.9) → 3, nie 4. Funkcja int() obcina (nie zaokrągla). Do zaokrąglania używaj round().
print(type(42)) # <class 'int'>
print(type("hello")) # <class 'str'>
print(type(3.14)) # <class 'float'>
print(type(True)) # <class 'bool'>
# Konwersja
print(int(3.9)) # 3 (obcięcie!)
print(int("42")) # 42
print(float("3.14")) # 3.14
print(str(100)) # '100'
print(bool(0)) # False
print(bool("")) # False
print(bool("coś")) # True
# Sprawdzanie typu
x = input("Podaj liczbę: ")
print(type(x)) # <class 'str'> — zawsze!
x = int(x)
print(type(x)) # <class 'int'>
| Funkcja | Działanie | Przykład |
|---|---|---|
abs(x) | wartość bezwzględna | abs(-7) → 7 |
round(x, n) | zaokrąglenie do n miejsc | round(3.567, 2) → 3.57 |
min(a, b, ...) | najmniejsza wartość | min(3,1,4) → 1 |
max(a, b, ...) | największa wartość | max(3,1,4) → 4 |
sum(iterable) | suma elementów | sum([1,2,3]) → 6 |
pow(x, y) | potęgowanie x**y | pow(2,8) → 256 |
divmod(a, b) | iloraz i reszta | divmod(7,2) → (3,1) |
min([5, 2, 8]) i max([5, 2, 8]) — możesz przekazać listę jako jeden argument zamiast wielu osobnych wartości.
print(abs(-15)) # 15
print(abs(7)) # 7
print(round(3.14159, 2)) # 3.14
print(round(2.5)) # 2 (banker's rounding!)
print(round(3.5)) # 4
print(min(10, 3, 7)) # 3
print(max(10, 3, 7)) # 10
oceny = [4, 5, 3, 4, 5]
print(min(oceny)) # 3
print(max(oceny)) # 5
print(sum(oceny)) # 21
print(sum(oceny)/len(oceny)) # 4.2
print(pow(2, 10)) # 1024
iloraz, reszta = divmod(17, 5)
print(iloraz, reszta) # 3 2
len(x) — zwraca długość sekwencji (listy, tekstu, krotki, słownika...).
range(start, stop, step) — generuje sekwencję liczb. Używana głównie w pętlach for.
range(5) → 0, 1, 2, 3, 4range(2, 8) → 2, 3, 4, 5, 6, 7range(0, 10, 2) → 0, 2, 4, 6, 8range(10, 0, -1) → 10, 9, 8, ..., 1enumerate(iterable) — zwraca pary (indeks, wartość). Przydatne gdy potrzebujesz i numeru, i wartości.
zip(a, b) — łączy dwie sekwencje w pary.
range(stop) — wartość stop jest wykluczona. range(5) daje 0–4, nie 0–5.
tekst = "Python"
print(len(tekst)) # 6
lista = [10, 20, 30, 40]
print(len(lista)) # 4
# range w pętli
for i in range(5):
print(i, end=" ") # 0 1 2 3 4
for i in range(1, 6):
print(i, end=" ") # 1 2 3 4 5
# enumerate — indeks i wartość
owoce = ["jabłko", "gruszka", "śliwka"]
for i, owoc in enumerate(owoce):
print(f"{i+1}. {owoc}")
# 1. jabłko 2. gruszka 3. śliwka
# zip — łączenie list
imiona = ["Ala", "Ola", "Ela"]
oceny = [5, 4, 3]
for imie, ocena in zip(imiona, oceny):
print(f"{imie}: {ocena}")
| Funkcja | Działanie | Zwraca |
|---|---|---|
sorted(x) | posortowana kopia sekwencji | lista |
sorted(x, reverse=True) | malejąco | lista |
reversed(x) | odwrócona sekwencja | iterator |
map(func, x) | stosuje funkcję na każdym elemencie | iterator |
filter(func, x) | filtruje elementy spełniające warunek | iterator |
sorted(lista) zwraca nową listę, oryginał bez zmian. Metoda lista.sort() sortuje w miejscu — modyfikuje oryginalną listę i zwraca None.
liczby = [5, 2, 8, 1, 9, 3]
# sorted — nowa lista
posortowane = sorted(liczby)
print(posortowane) # [1, 2, 3, 5, 8, 9]
print(liczby) # [5, 2, 8, 1, 9, 3] bez zmian
malejaco = sorted(liczby, reverse=True)
print(malejaco) # [9, 8, 5, 3, 2, 1]
# reversed — odwrócenie
for x in reversed(liczby):
print(x, end=" ") # 3 9 1 8 2 5
# map — zamiana typów z listy
tekst_liczby = ["1", "2", "3", "4"]
int_liczby = list(map(int, tekst_liczby))
print(int_liczby) # [1, 2, 3, 4]
# filter — tylko parzyste
parzyste = list(filter(lambda x: x % 2 == 0, liczby))
print(parzyste) # [2, 8]
| Funkcja | Działanie | Przykład |
|---|---|---|
chr(n) | znak odpowiadający kodowi ASCII/Unicode | chr(65) → 'A' |
ord(znak) | kod ASCII/Unicode znaku | ord('A') → 65 |
isinstance(x, typ) | czy x jest danego typu | isinstance(5, int) → True |
id(x) | adres obiektu w pamięci | liczba całkowita |
input() | wczytuje tekst od użytkownika | zwraca str |
help(x) | dokumentacja funkcji/obiektu | w konsoli |
# ASCII — znaki i kody
print(ord('A')) # 65
print(ord('a')) # 97
print(chr(65)) # A
print(chr(97)) # a
# Wypisanie alfabetu
for i in range(26):
print(chr(65 + i), end=" ")
# A B C D E F ... Z
# Zamiana litery na wielką bez .upper()
litera = 'k'
wielka = chr(ord(litera) - 32)
print(wielka) # K
# isinstance
print(isinstance(42, int)) # True
print(isinstance("hi", str)) # True
print(isinstance(3.14, int)) # False
print(isinstance(3.14, (int, float))) # True
Wczytaj 5 liczb całkowitych od użytkownika i umieść je na liście. Wypisz: sumę, średnią (2 miejsca po przecinku), minimum i maksimum oraz listę posortowaną rosnąco.
liczby = []
for i in range(5):
n = int(input(f"Liczba {i+1}: "))
liczby.append(n)
suma = sum(liczby)
srednia = suma / len(liczby)
minimum = min(liczby)
maksimum = max(liczby)
print(f"Suma: {suma}")
print(f"Średnia: {srednia:.2f}")
print(f"Min: {minimum}")
print(f"Max: {maksimum}")
print(f"Sorted: {sorted(liczby)}")
[], pętla range(5) wykonuje się dokładnie 5 razy. append() dodaje każdą wczytaną liczbę na koniec listy.
sum(liczby) sumuje wszystkie elementy. Dzielimy przez len(liczby) — długość listy. To standard obliczania średniej arytmetycznej.
sorted(liczby) — zwraca nową posortowaną listę. Oryginalna liczby pozostaje niezmieniona.
Masz dwie listy: imiona uczniów i ich wyniki punktowe (0–100). Wypisz tabelę z numerem, imieniem wyrównanym do lewej (15 znaków) i wynikiem wyrównanym do prawej (5 znaków). Na końcu wypisz najlepszy i najgorszy wynik.
imiona = ["Kasia", "Marek", "Zofia", "Piotr"]
wyniki = [87, 92, 74, 88]
print(f"{'Nr':<4} {'Imię':<15} {'Wynik':>5}")
print("-" * 26)
for i, (imie, wynik) in enumerate(zip(imiona, wyniki), 1):
print(f"{i:<4} {imie:<15} {wynik:>5}")
print("-" * 26)
print(f"Najlepszy wynik: {max(wyniki)}")
print(f"Najgorszy wynik: {min(wyniki)}")
print(f"Średnia: {sum(wyniki)/len(wyniki):.1f}")
{'Imię':<15} — tekst wyrównany do lewej w polu 15 znaków. {'Wynik':>5} — do prawej w polu 5 znaków. Dzięki temu kolumny są równe niezależnie od długości imienia.
zip(imiona, wyniki) łączy obie listy w pary. enumerate(..., 1) dodaje licznik zaczynający od 1. Rozpakowujemy wszystko w jednej pętli: i, (imie, wynik).
"-" * 26 tworzy linię 26 myślników. To szybszy i czytelniejszy sposób niż ręczne wpisywanie znaków.
wyniki — nie potrzeba pętli, funkcje wbudowane robią to automatycznie.
Wczytaj tekst (same małe litery) i liczbę przesunięcia (1–25). Zaszyfruj tekst przesuwając każdą literę o podaną liczbę pozycji w alfabecie. Spacje pozostaw bez zmian. Wypisz zaszyfrowany tekst.
tekst = input("Tekst (małe litery): ")
przesuniecie = int(input("Przesunięcie (1-25): "))
zaszyfrowany = ""
for znak in tekst:
if znak == " ":
zaszyfrowany += " "
else:
kod = ord(znak)
nowy = (kod - ord('a') + przesuniecie) % 26
zaszyfrowany += chr(nowy + ord('a'))
print(f"Zaszyfrowany: {zaszyfrowany}")
ord(znak) daje kod ASCII litery, np. ord('a') = 97. Odejmujemy ord('a') żeby otrzymać pozycję w alfabecie: a=0, b=1, ..., z=25.
% 26 powoduje zawinięcie: po 'z' wracamy do 'a'. Bez tego chr() wychodziłby poza zakres liter.
ord('a') żeby przejść z pozycji alfabetycznej (0–25) na kod ASCII (97–122), a potem chr() zamienia kod na znak.
if znak == " " pomija przetwarzanie spacji. To ważne — szyfrujemy tylko litery.
Każde zadanie da się rozwiązać używając wyłącznie funkcji wbudowanych omówionych na tej stronie.
Długość słów
Wczytaj trzy słowa. Wypisz je w kolejności od najkrótszego do najdłuższego wraz z ich długościami.
len(), sorted() z key=lenZaokrąglenia
Wczytaj liczbę zmiennoprzecinkową. Wypisz ją zaokrągloną do 0, 1, 2 i 3 miejsc po przecinku.
round(x, n)Tabela ASCII
Wypisz tabelę: litera i jej kod ASCII dla wszystkich małych liter (a–z) w 3 kolumnach.
chr(), ord(), range(26)Konwerter listy tekstów
Masz listę: ["3", "1", "4", "1", "5", "9"]. Bez pętli for zamień ją na listę liczb całkowitych i wypisz sumę oraz maksimum.
map(int, lista), list()Numerowana lista zakupów
Masz listę produktów. Wypisz ją jako numerowaną listę (1, 2, 3...) używając enumerate(). Produkty posortuj alfabetycznie przed wypisaniem.
sorted(), enumerate(lista, 1)Deszyfrowanie Cezara
Napisz program odwracający szyfr Cezara — wczytaj zaszyfrowany tekst i przesunięcie, wypisz odszyfrowany tekst. Sprawdź czy działa dla przesunięcia 13 (ROT13).
% 26