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 20. 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

  1. Dane są pomiary Irysów:

    Listing 102. 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. Stwórz słownik values: Dict[str, list]

  3. Klucze w słowniku mają być rekordami z nagłówka zbioru DATA

  4. Iterując po danych dodawaj wartości do odpowiednich kluczy

  5. Każdy z kluczy słownika, ma mieć przyporządkowaną listę z wszystkimi wartościami danego parametru,

    Listing 103. Ta struktura danych ma generować się automatycznie
    values = {
        'Sepal length': [5.8, 5.1, ...],
        'Sepal width': [2.7, 3.5, ...],
        'Petal length': [5.1, 1.4, ...],
        'Petal width': [1.9, 0.2, ...],
        'Species': ['virginica', 'setosa', ...],
    }
    
  6. Stwórz funkcję average(), która będzie liczyła średnią dla dowolnej ilości argumentów

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

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

  9. Iterując po słowniku values wypisz nazwę parametru oraz wyliczoną średnią

The whys and wherefores
  • Korzystanie z funkcji wbudowanych

  • Iterowanie po kolekcji

  • Wybieranie rekordów