Разберем какие бывают типы данных, как с ними работать, какие бывают особенности и где это может пригодиться.
В питоне, как и в других языках, есть множество типов данных. В зависимости от того к какому типу принадлежит объект, будет зависеть как мы к нему обращаем и как производим манипуляции.
Здесь мы поговорим о базовых типах данных, с которыми придётся познакомиться любому новичку. Начнем по порядку.
Числовой тип данных
1. Целочисленные, тип int() пример: -2, 0, 1
В других языках, на размер числа существуют ограничения соответствующие этому типу, но в случае с Python целое число в Python может быть сколь угодно большим. Единственное ограничение — это объем оперативной памяти компьютера (разрядность).
В случае слишком тяжелых вычислений будьте готовы следить за объемом оперативной памяти.
2. Числа, с плавающей точкой, тип float() пример: -2.1, 0.2223, 887.4
Важно понимать, что из-за особенностей представления чисел в машинном виде (двоичная система счисления), все операции с типом float() ведут к накоплению погрешностей.
Это особенно критично при научных и банковских вычислениях, поэтому применение типа float() не подходит для ответственных вычислений
3. Числа, с плавающей точкой с настраиваемой точностью Decimal()
Проблемы вычислений с типом float в питоне решаются применением специального типа decimal, для этого необходимо импортировать специальный модуль.
Обратите внимание, что при представлении чисел не в виде строки, все равно сохраняет ошибку, просто увеличивается хранимое количество знаком после запятой.
Для точного вычисления используйте формат строки либо специальные научные модули Python.
4. Комплексные числа, тип complex() пример: 1+1j
Строковый тип данных
- Строки, тип str() пример: 'hello, World!', '18'
Строки - это объекты, состоящие из последовательности элементов. Каждый элемент строки имеет свой индекс, начиная отсчет с нуля. То есть первый элемент на самом деле - нулевой.
Со строками можно работать так же как и с массивами:
строка[индекс элемента].
Более подробно на работе со строками мы остановимся в другой статье, здесь рассмотрим только базовый инструментарий.
Обратите внимание, в питоне существует такое понятие как срез [3:8] - это набор элементов с 3-его по 8 (восьмой элемент уже не входит в срез)
Упорядоченный тип данных
- Списки, тип list() пример: [1, 2, 'ss', -1, 0, '2']
Список - это упорядоченный и изменяемый набор объектов.
- Кортежи, тип tuple() пример: (4, 'Aa', 3, 2.1)
Кортеж - это неизменяемый список. Работа с кортежами происходит быстрее, чем со списками, а также кортежи могут быть использованы как ключи в словарях.
Важная особенность - кортеж является неизменяемым, но вы можете изменять элементы кортежа если они являются изменяемыми
- Множество, тип set() пример: {-4, 2, '2s', 3}
Множество состоит из различных элементов в неопределенном порядке.
- Неизменяемое множество frozenset()
По свойствам аналогично множеству set() за исключением невозможности изменения элементов
- Словари, тип dict() пример: {'dictionary': {7007 :'agent', 'key': 'value'}, 11: '1', 22: '2', 33: '3'}
Словарь - это неупорядоченный набор пар [ключ : значение]
В качестве ключей можно применять как строки, так и числа
Логический, или булевый тип данных
- Булевы или логические True и False, тип bool
Булев тип данных принимает значения истинны (True) и лжи (False). Или же 1 и 0. Булева логика используется для реализации выполнения условий.
Все эти типы объектов разные, в том числе одни изменяемые, а другие - нет. Изменяемый объект может менять свое состояние или содержимое, а неизменяемый – не может.
Как узнать тип данных.
Для определения типов данных существует специальная функция type().
Она принимает в себя переменную, чей тип нужно определить и возвращает объект типа данных.
Преобразование типов данных
Для преобразования одного типа в другой применяются специальный функции - генераторы типов данных. Таким образом строку можно преобразовать в число, а число в строку.
Обратите внимание, что выбор того, в какой тип данных требуется проводить преобразование лежит на плечах программиста. При попытке преобразовать строку с десятичной дробью через функцию int() пайтон выдает ошибку т.к. число не является целым.
Ну и на последок, преобразование строки.