5. Builtin functions

5.1. range()

  • Tworzy iterator, który zwraca liczby w sekwencji.

for liczba in range(0, 5):
    print(liczba)


for liczba in range(0, 5, 2):
    print(liczba)
numbers_generator = range(0, 5)
print(numbers_generator)
# range(0, 5)
numbers_generator = range(0, 5)
numbers = list(numbers_generator)

print(numbers)  # [0, 1, 2, 3, 4]

5.2. Sprawdzanie typów

5.2.1. isinstance()

  • Sprawdza czy dany obiekt jest instancją danej klasy

  • Jeżeli jest więcej niż jeden typ to musi być tuple a nie list lub set

isinstance(10, int)           # True
isinstance(10, float)         # False
isinstance(10, (int, float))  # True

5.2.2. issubclass()

5.2.3. type()

5.3. Działania na kolekcjach

5.3.1. any()

5.3.2. all()

5.3.3. sum()

5.3.4. len()

5.4. Konwersje typów

5.4.1. bin()

  • Konwertuje liczbę na binarną

  • Nie stosuje kodu uzupełnień do dwóch

0b101111    # 47
bin(3)      # '0b11'
bin(-3)     # '-0b11'

5.4.2. hex()

  • Konwertuje liczbę na heksadecymalną

  • Konwersja kolorów w HTML

  • Shellcode

hex(99)  # '0x63'

5.4.3. oct()

  • Konwertuje liczbę na octalną

  • Przydatne do uprawnień w systemie operacyjnym

oct(33261)  # '0o100755'

5.4.4. ord()

Zwraca kod ASCII jednoznakowego stringa.

ord('a')  # 97

5.4.5. chr()

Z pozycji w tablicy ASCII konwertuje kod na znak Unicode.

chr(97)  # 'a'

5.4.6. eval()

eval('name="José Jiménez"; print(name)')
# José Jiménez

5.5. Other builtin functions

Table 5.3. Most used Built-in functions

Name

Description

__import__

abs()

all()

any()

ascii()

bin()

bool()

bytearray()

bytes()

callable()

chr()

classmethod()

compile()

complex()

delattr()

dict()

dir()

divmod()

enumerate()

eval()

exec()

filter()

float()

format()

frozenset()

getattr()

globals()

hasattr()

hash()

help()

hex()

id()

input()

int()

isinstance()

issubclass()

iter()

len()

list()

locals()

map()

max()

memoryview()

min()

next()

object()

oct()

open()

ord()

pow()

print()

property()

range()

repr()

reversed()

round()

set()

setattr()

slice()

sorted()

staticmethod()

str()

sum()

super()

tuple()

type()

vars()

zip()

5.6. Assignments

5.6.1. Average

  • Filename: builtin_average.py

  • Lines of code to write: 12 lines

  • Estimated time of completion: 15 min

  1. Dane są pomiary Irysów:

    Listing 5.21. Sample Iris databases
    DATA = [
        ('Sepal length', 'Sepal width', 'Petal length', 'Petal width', 'Species'),
        (5.8, 2.7, 5.1, 1.9, 'virginica'),
        (5.1, 3.5, 1.4, 0.2, 'setosa'),
        (5.7, 2.8, 4.1, 1.3, 'versicolor'),
        (6.3, 2.9, 5.6, 1.8, 'virginica'),
        (6.4, 3.2, 4.5, 1.5, 'versicolor'),
        (4.7, 3.2, 1.3, 0.2, 'setosa'),
        (7.0, 3.2, 4.7, 1.4, 'versicolor'),
        (7.6, 3.0, 6.6, 2.1, 'virginica'),
        (4.9, 3.0, 1.4, 0.2, 'setosa'),
        (4.9, 2.5, 4.5, 1.7, 'virginica'),
        (7.1, 3.0, 5.9, 2.1, 'virginica'),
        (4.6, 3.4, 1.4, 0.3, 'setosa'),
        (5.4, 3.9, 1.7, 0.4, 'setosa'),
        (5.7, 2.8, 4.5, 1.3, 'versicolor'),
        (5.0, 3.6, 1.4, 0.3, 'setosa'),
        (5.5, 2.3, 4.0, 1.3, 'versicolor'),
        (6.5, 3.0, 5.8, 2.2, 'virginica'),
        (6.5, 2.8, 4.6, 1.5, 'versicolor'),
        (6.3, 3.3, 6.0, 2.5, 'virginica'),
        (6.9, 3.1, 4.9, 1.5, 'versicolor'),
        (4.6, 3.1, 1.5, 0.2, 'setosa'),
    ]
    
  2. Na podstawie nagłówka stwórz dict z pustymi list dla każdego z parametrów”

    values = {
        'Sepal length': [],
        'Sepal width': [],
        'Petal length': [],
        'Petal width': [],
        'Species': [],
    }
    
  3. Stwórz funkcję average(), która będzie liczyła średnią dla dowolnej ilości argumentów

    def average(args: List[float]) -> float:
        pass
    
  4. Do wyliczenia średniej, wykorzystaj wbudowane funkcje

  5. Funkcja ma wyliczać średnią tylko dla parametrów typu float, w przeciwnym wypadku zwróć None

  6. Do averages: Dict[str, float] wpisz wyliczone wartości dla każdego z parametrów

    averages = {
        'Sepal length': average(...),
        'Sepal width': average(...),
        'Petal length': average(...),
        'Petal width': average(...),
        'Species': average(...),
    }
    
  7. Wypisz na ekranie values oraz averages

The whys and wherefores
  • Korzystanie z funkcji wbudowanych

  • Iterowanie po kolekcji

  • Wybieranie rekordów