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

Tab. 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:

    Code Listing 5.1. 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