1. Builtin functions

1.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]

1.2. Sprawdzanie typów

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

1.2.2. issubclass()

1.2.3. type()

1.3. Działania na kolekcjach

1.3.1. any()

1.3.2. all()

1.3.3. sum()

1.3.4. len()

1.4. Konwersje typów

1.4.1. bin()

  • Konwertuje liczbę na binarną

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

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

1.4.2. hex()

  • Konwertuje liczbę na heksadecymalną

  • Konwersja kolorów w HTML

  • Shellcode

hex(99)  # '0x63'

1.4.3. oct()

  • Konwertuje liczbę na octalną

  • Przydatne do uprawnień w systemie operacyjnym

oct(33261)  # '0o100755'

1.4.4. ord()

Zwraca kod ASCII jednoznakowego stringa.

ord('a')  # 97

1.4.5. chr()

Z pozycji w tablicy ASCII konwertuje kod na znak Unicode.

chr(97)  # 'a'

1.4.6. eval()

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

1.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()

1.6. Assignments

1.6.1. Average

English
  1. For given INPUT (see below)

  2. Separate header and data

  3. Define dict OUTPUT, keys are column names from header

  4. For each row in data, add values to proper lists in OUTPUT

  5. Define function mean(), calculating mean for arbitrary number of arguments

  6. Return None if any argument to the function is not float or int

  7. To calculate mean use built-in functions

  8. Iterating over OUTPUT print column name and calculated average

Polish
  1. Dla danych INPUT (patrz poniżej)

  2. Odseparuj nagłówek od danych

  3. Zdefiniuj słownik OUTPUT: Dict[str, list], klucze to nazwy kolumn z nagłówka

  4. Dla każdego wiersza w danych, dodawaj wartości do odpowiednich list w OUTPUT

  5. Zdefiniuj funkcję mean(), liczącą średnią dla dowolnej ilości argumentów

  6. Zwróć None jeżeli którykolwiek z argumentów do funkcji nie jest float lub int

  7. Do wyliczenia średniej wykorzystaj wbudowane funkcje

  8. Iterując po OUTPUT wypisz nazwę kolumny oraz wyliczoną średnią

Input
INPUT = [
    ('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'),
]
Output
OUTPUT = {
    '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', ...],
}
The whys and wherefores