Типы данных
- Non-iterable − переменные, состоящие из 1 элемента
- int − целочисленный (неизменяемый):
a = 1
- float − дробный (неизменяемый):
a = 0.1
- bool − логический (неизменяемый):
a = True/False или a = 1 < 2
- Операторы сравнения:
<, <=, >, >=, ==, !=
- Логические операторы:
and, or, not
- complex − комплексный (неизменяемый):
a = 1 + 2.j
- NoneType − пустой тип: имеет только одно значение:
None
- Iterable − контейнеры, содержащие несколько переменных
- list − массив (изменяемый):
a = [1, 2, 3]
- str − строка (неизменяемый):
a = "bcd" или a = 'bcd'
- tuple − кортеж (неизменяемый):
a = 1, 2, 3 или a = (1, 2, 3)
- dict − словарь (неизменяемый):
a = {'b': 1, 'd': 2}
- set − множество (изменяемый):
a = {1, 1, 2, 3}
- frozenset − множество (неизменяемый):
a = frozenset([1, 1, 2, 3])
Преобразование типов данных
- Преобразование типа выполняется функцией, одноимённой своему типу. Примеры:
a = int("123")
a = str(123)
- Преобразование в bool (делается каждый раз, когда переменная проверяется как условие)
- int, float −
True, если отлично от нуля; иначе False
- str, list, tuple, dict, set −
True, если непустое; иначе False
- None − всегда
False
- Non-iterable не преобразовываются в iterable
Контейнеры
- Контейнеры − объекты, которые содержат другие объекты (как правило, любые). Примеры:
- Массив из массивов:
a = [[1], [1,2], [1,2,3]]
- Словарь:
a = {'a': 1, 'b': [2,3], 'c': '456'}
- Индексация через квадратные скобки
a[0]
- Элементы контейнера длины N имеют индексы
0, ... (N-1)
- Обращение к элементам с конца контейнера − через отрицательные индексы:
a[-1] − последний элемент
- Срез контейнера от N по (M−1) обозначается двоеточием:
a[N:M]
- Может отсутствовать N или M
- Пример:
a[:5] → от 0 по 4 элементы
- Пример:
a[5:] → от 5 по последний элементы
- Шаг индексации h записывается через второе двоеточие:
a[N:M:h]
- Пример:
a[: :2] → от 0 по последний элементы c шагом 2
range создаёт специальный контейнер c арифметической последовательностью
- range(N): от 0 до (N−1):
range(5) → [0, 1, 2, 3, 4]
- range(M:N): от M до (N−1):
range(2,7) → [2, 3, 4, 5, 6]
- range(M:h:N): от M до (N−1) с шагом h:
range(1,10,2) → [1, 3, 5, 7, 9]
- Можно проверить наличие элемента в контейнере функцией
in:
- Пример:
1 in [1,2,3] → True
- Пример:
'b' in 'abcd' → True
Числовые литералы в Python
- Двоичное представление числа:
a = 0b100 → 4
- Восьмеричное представление числа:
a = 0o100 → 64
- Шестадцатеричное представление числа:
a = 0xA0 → 160
- Экспоненциальное представление числа:
a = 1e4 → 10000
Нечисловые литералы в Python
- Байтовые литералы:
a = b"hello" # Неизменяемые байты
- Форматированные строки:
a = f"sum = {1 + 2}"