В Python существует несколько основных типов данных, которые можно разделить на несколько категорий:
1. Числовые типы
* Целые числа неограниченной длины **int**:\
Примеры: 0, -42, 0b1000 (двоичное число), 0x1F (шестнадцатеричное), 0o23 (восьмеричное), 100_000_000
* Числа с плавающей точкой **float**:\
Примеры: 0.0, 3.1415926, 1.2E25 (`1.2*10^{25}`), -1.5e-2 (`-1.5*10^{-2}= -0.015`)
* Комплексные числа **complex**:\
Примеры: 1+2j, -4.2j, 5.5e10 + 0j, complex(1.5,2.1)
2. Логический тип **bool**:\
Два значения: True, False
3. Пустой объект **NoneType**:\
Одно значение: None
4. Последовательности
* Строки из символов Unicode **str**:\
Примеры:\
"Hello, world!"\
'Python'\
``"\t\"\n\\"`` # здесь ``\t`` табуляция, ``\n`` новая строка, ``\\`` символ ``\``, ``\"`` символ ``"``\
``"A\u00df\u26F5"`` # с символами Unicode: "Aß⛵"\
``r"\"`` # без обработки ``\``\
``f"1+2={1+2}"`` # c подстановками значений выражений в ``{}``\
``"A" 'a"' r'\'`` # интерпретируется как одна строка ``Aa"\``\
``"""Много``\
``строчный``\
``текст"""``
* Строки из байтов **bytes**:\
Примеры:\
``b"abc\n\177\xF8"`` # ``\xAA`` шестнадцатеричный код, \123 восьмеричный код\
``br"abc\2"`` # без обработки ``\``
* Массив байтов **bytearray**:\
Пример:\
bytearray(10) # 10 байтов, первоначально все 0
* Списки **list**:\
Примеры:\
``[]`` # пустой\
``[1,2,"abc"]``\
``[x*x for x in range(1,6)]`` # список квадратов чисел: [1,4,9,16,25]
* Кортежи **tuple**:\
Примеры:\
``()`` # пустой\
``(1,2,"abc")``\
``1,2,3``
* Диапазоны (арифметические прогрессии) **range**:\
Примеры:\
``range(5)`` # от 0: 0,1,2,3,4 \
``range(6,10)`` # от заданного числа: 6,7,8,9\
``range(1,10,3)`` # с шагом 3: 1,4,7
5. Генераторы **generator** (конечные и бесконечные одноразовые последовательности)\
Примеры:\
``(x*x for x in range(1,6))`` # квадраты чисел: 1,4,9,16,25\
``(x for x in [11,2,4,7,9] if x>5)`` # числа больше 5 из списка: 11,7,9
6. Коллекции (порядок элементов не важен)
* Множества **set**:\
Примеры:\
``set()`` # пустое\
``{1,2,"abc"}``\
``{x for x in range(10)}`` # числа от 0 до 9
* Неизменяемые множества **frozenset**:\
Пример:\
``frozenset({1,2,"abc"})``
* Словари (ассоциативные массивы) **dict**:\
Примеры:\
``{}`` # пустой\
``{7:1,'x':2,'third':"abc"}``\
``{x*x:x for x in range(1,11)}`` # квадраты чисел от 1 до 10 -> числа: {1:1, 4:2, ..., 100:10}
7. Определяемые пользователем типы, производные от **object**
8. Функции **function**
9. Модули **module**
Некоторые типы данных являются изменяемыми (list, bytearray, set и dict можно изменять после их создания), остальные -- нет (операции "изменения" порождают новое значение, но старое сохраняется)
Комментарии в Python начинаются с символа ``#``, также в качестве многострочного комментария используются строки:
```run-python
# Пример программы
print(25) # print 25
print('Hello, world!') # print Hello, world!