Типы данных
- 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}"