3. Типы данных
Хотя в Python существует множество типов данных, есть среди них наиболее распространенные. Например, следующие:
- int — этот тип данных состоит из целых чисел.
- float — этот тип используется для работы с десятичными числами.
- str — переменная с типом str (от string — строка) хранит данные в виде текстовых строк.
Где используется
- Данные используются в программирования повсеместно, поэтому важно понимать, с какими именно вы сейчас работаете, и какие последствия это накладывает на процесс взаимодействия. Существует множество типов данных, но только некоторые из них используются каждым программистом.
- int — тип данных для работы с целыми числами, а float — для работы с числами с плавающей точкой. str хранит данные в строковом формате и может включать буквы, символы и цифры. В то же время в int и float использовать символы нельзя — только числа.
- тип bool состоит всего из двух значений: True или False . Важно отметить, что при инициализации или присваивании значения типа bool True или False нужно вводить без кавычек. Строковые же значения наоборот всегда заключены в кавычки.
Рекомендации по работе с типами данных
- Нужно всегда помнить о следующих особенностях типов данных: их форматах, областях применения и возможностях.
- Строковые значения всегда заключены в кавычки, тогда как int , float или bool записываются без них.
Примеры работы с разными типами данных
В этом примере были созданы переменные двух типов данных, после чего они были выведены на экран. my_сars_number — это целое число ( int ), а my_сars_color — строка ( str ).
Рассмотрим порядок выполнения этого года:
- В первой строке создается переменная my_сars_number , и ей присваивается значение 3. Это внутренний процесс, поэтому увидеть результат этой операции не выйдет, только если не попробовать вывести значение переменной.
- На второй строке создается еще одна переменная, которой присваивается свое значение.
- На 3 и 4 строках ранее созданные переменные выводятся на экран.
Советы:
А зачем типы данных вообще нужны в Python? Этот вопрос наверняка будет интересовать в первую очередь начинающих программистов.
- Если подумать о внутреннем устройстве компьютера, то память в нем занимается распределением, а центральный процессор отвечает за вычисления. Благодаря типам данных компьютер знает, как распределять память, для чего ее использовать и какие операции выполнять с каким типом данных.
- Отличное сравнение в данном случае — контейнеры для продуктов. Типы данных можно воспринимать как разные контейнеры. В зависимости от типа еды, ее нужно размещать в соответствующих емкостях.
- С другой стороны, если конкретные данные — это целое число, то компьютер может не думать о конвертации их в нижний или верхний регистр, поиске гласных и так далее. Если строка — то здесь уже арифметические операции, поиск квадратного корня, конвертация и прочие команды становятся нерелевантными.
Создадим число с плавающей точкой.
В этом примере создаем число с плавающей точкой и выводим его на экране.
Продвинутые концепции
В Python есть и много других типов данных, например:
- байты;
- комплексные числа;
- булевые значения.
Есть даже и другие значения в других областях: дата, время, GPS-координаты и так далее. В будущем полезно использовать их особенно в крупных проектах. Но пока что остановимся на базовых.
Посмотрим на булевый тип. Это довольно простая концепция, но более сложный тип данных. Основная сложность в том, что мы не сталкиваемся с таким типом в реальном мире, и поэтому порой его сложновато воспринимать. Булевый тип можно воспринимать как переключатель. Он может быть либо включенным, либо выключенным. В Python это либо True , либо False .
Важно запомнить, что значения этого типа не должны быть заключены в кавычки. Это их основное отличие от строк. По сути, True и «True» — это два разных типа данных в Python: булевое и строка.
В более продвинутых примерах булевые типы окажутся очень полезными.
В следующем примере может показаться, что используется строка, но на самом деле это значение булевого типа. Оно может быть либо True , либо False .
Числа Python — int, float и complex
Комплексное число состоит из двух частей — действительной и мнимой. Мнимая часть обозначается суффиксом «j».
Как узнать тип числа?
Мы можем узнать тип числа с помощью функции type().
1. Целое число
Целые числа — это целые числа. Они могут быть положительными или отрицательными. Они должны быть без десятичных значений.
Мы можем использовать функцию int(), чтобы получить целочисленное представление объекта. В объекте должен быть реализован метод __int __(), который возвращает целое число.
Давайте рассмотрим несколько примеров.
Класс String предоставляет метод __int __(), поэтому мы можем легко преобразовать строку в int с помощью метода int().
Если объект не реализует метод __int __(), функция int() выдает ошибку TypeError.
Обычно целые числа определяются на основе 10. Но мы также можем определять их в двоичном, восьмеричном и шестнадцатеричном формате.
2. Число с плавающей запятой
Число с плавающей запятой содержит десятичные точки. Он может быть положительным или отрицательным.
Мы можем использовать функцию float(), чтобы получить представление объекта с плавающей запятой. В объекте должен быть реализован метод __float __(), который возвращает число с плавающей запятой.
String обеспечивает реализацию метода __float __(). Вот почему мы можем легко преобразовать строку в float.
Если объект не реализует метод __float __(), мы получаем сообщение об ошибке как:
Если метод объекта __float __() не возвращает число с плавающей запятой, мы получаем сообщение об ошибке как:
Мы также можем определить число с плавающей запятой в экспоненциальной нотации, используя «e» или «E». Здесь число после «E» обозначает степень до 10.
Пояснение: 10,5E2 = 10,5 * pow (10, 2) = 10,5 * 100 = 1050,0
3. Комплексное
Комплексное число состоит из двух частей — действительной и мнимой. Мнимая часть пишется с суффиксом «j».
Мы также можем использовать функцию complex() для создания комплексного числа. Мы можем передать два аргумента типа int или float в функцию complex(). Первый аргумент — действительная часть, а второй аргумент — сложная часть.
Мы также можем получить представление комплексного числа объекта, определив метод __complex __(). Этот метод должен возвращать комплексное число.
Мы также можем преобразовать строку в комплексное число. Между реальной и мнимой частью не должно быть пробелов.
Мы можем получить действительную часть комплексного числа, используя свойство «real». Мы можем получить мнимую часть комплексного числа, используя свойство «imag».
Некоторые другие методы комплексных чисел:
- conugate(): возвращает комплексное сопряженное число. Знак мнимой части меняется на противоположный.
- abs(): возвращает величину комплексного числа.
Преобразование типов чисел Python
Мы можем преобразовать int в float с помощью функции float(). Точно так же мы можем использовать функцию int() для преобразования числа с плавающей запятой в int.
Мы можем использовать функцию complex() для преобразования int или float в комплексное число, мнимая часть будет 0j.
#4 – Переменные и типы данных в Python
Переменные невероятно важны, так как позволяют хранить информацию и использовать её в дальнейшем. Вначале может быть не совсем понятно зачем вообще что-то записывать в переменную, если можно просто оперировать значениями без них. Понимание переменных придет немного позже, когда мы начнем создавать более сложные программы и нам потребуется хранить информацию в каком-либо месте.
Типы переменных в языке Python не объявляются очевидно, тем не менее они присутствуют. Интерпретатор понимает что записывается в переменную и на основании этого добавляет тип к этой переменной.
Во время выполнения программы есть возможность перезаписывать переменные, а также менять их тип. Если вначале переменна была с типом float, то потом её можно преобразовать в другой тип, к примеру, в string.
Переменная в языке программирования это название для зарезервированного места в памяти компьютера, предназначенное для хранения значений. Это означает, что когда вы создаете переменную, вы на самом деле резервируете определенное место в памяти компьютера.
Основываясь на типе данных переменной, интерпретатор выделяет необходимое количество памяти и решает, что может находится в зарезервированной области памяти.
Для понимания, можете думать о переменной как о коробке, в которую можно положить любую вещь, но только определенного размера. Размер в данном примере будет типом переменной. Это не совсем верное определение, но оно дает общее представление о картине в целом.
Присвоение значения переменной:
В Python вам не нужно объявлять тип переменной вручную (как, например в С++). Объявление происходит автоматически (это называется динамическая типизация), когда вы присваиваете значение переменной. Знак равенства ( = ) используется для присвоения значения переменной.
Операнд по левую сторону от знака равно ( = ) это имя переменной, операнд по правую сторону — значение присвоенное этой переменной.
При выполнении, данный код выведет:
Множественное присвоение значений:
В Python возможно присваивать одно значение нескольким переменным сразу. Например:
В данном создается объект со значением 1, и все 3 переменные указывают на область в памяти, в которой он находится.
Встроенные типы данных в Python:
Информация, сохраненная в памяти может быть разных типов данных. Например, возраст человека может быть числовым значением, а его адрес — буквенно-числовым. В Python существует множество стандартных типов данных, которые используются для хранения определенных значений и обладают своими специфическими методами.
К стандартным типам данных в Python относят:
- Числа (Numbers)
- Строка (String)
- Список (List)
- Кортеж (Tuple)
- Словарь (Dictionary)
- Сет (Set)
Числовой тип данных в Python:
Числовой тип данных в Python предназначен для хранения числовых значений. Это неизменяемый тип данных, что означает, что изменение значения числового типа данных приведет к созданию нового объекта в памяти (и удалению старого)
Числовые объекты создаются, когда вы присваиваете им значение. Например:
Также вы можете удалять числовой объект при помощи ключевого слова del. Синтаксис команды del следующий:
В Python есть четыре вида числового типа данных:
- int (целое число)
- long (длинное целое число [может быть представлено в восьмеричной или шестнадцатеричной системе исчисления])
- float (число с плавающей точкой: -0.2, 0.0, 3.14159265 и т.д.)
- complex (комплексное число)
Примеры видов числового типа данных:
int | long | float | complex |
---|---|---|---|
1 | 51924361L | 0.0 | 3.14j |
102 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
0 | 0xDEFABCECBDAECBFBAEl | 32.3+e18 | .876j |
0b10 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2-E12 | 4.53e-7j |
Строки в Python:
Под строками в Python подразумевается набор символов между кавычками. В Python можно использовать пары одинарных либо двойных кавычек. Из строк можно взять подстроку используя оператор нарезки ( [ ] и [ : ] ) с индексами от нуля для первого символа строки и до последнего. Так же можно использовать обратную индексацию от -1 для последнего символа до начала.
Оператор плюс ( + ) для строк соединяет две строки в одну, звездочка ( * ) оператор повторения. Например:
В результате вы увидите следующее
Списки в Python:
Списки, пожалуй, самый универсальный составной тип данных в Python. Список состоит из элементов, разделенных запятыми, находящихся между квадратными скобками ( [ ] ). В определенной мере, списки подобны массивам в C. Единственной разницей является то, что элементы одного списка могут иметь разные типы данных.
Получить доступ к элементам, сохраненным в списке можно, точно так же, как и в строках, при помощи оператора нарезки ( [ ] и [:] ) и индексов, начиная с нуля и до конца. Знак плюс ( + ) объединяет два списка, а звездочка ( * ) — оператор повторения для списка. Например:
В результате вы увидите :
Кортежи в Python:
Кортеж это еще один составной тип данных, похожий на список. Кортеж состоит из ряда значений, разделенных запятыми, заключенными в круглые скобки ( ( ) ). Основным различием между списками и кортежами является то, что элементы кортежей не могут быть изменены. То есть, кортежи можно рассматривать как списки доступные только для чтения.
Если у вас нет необходимости изменять элементы списка, то для экономии места в памяти лучше использовать тип данных кортеж.
В результате вы получите:
При этом, следующие действия доступны для списков и недоступны для кортежей:
Словари в Python:
Словари в Python это неотсортированная колекция элементов, доступ к которым осуществляется по ключу. То есть, каждому ключу словаря соответствует определенное значение. Ключом может быть любой неизменяемый тип данных (число, строка, кортеж), значением — любой тип данных.
Пары ключ, значение словаря заключаются в фигурные скобки ( < >). Есть несколько способов создания словарей:
Данный код выведет следующее:
Обратите внимание, что ключи и значения выводятся не в том порядке, в котором мы их задавали.
Сеты в Python:
Сет в Python это еще один изменяемый, коллекционный тип данных, отличительной чертой которого является то, что он хранит только уникальные значания.
Создать сеты можно следующими способами:
Для добавление элемента в сет используется метод add, для удаления — pop или remove. Добавление в сет уже существующего элемента не повлияет на сет. Сеты обладают множеством методов для работы с уникальными элементами, например difference — возвращает элементы сета отсутствующие в другом сете, intersection — наоборот, возвращает елементы сета присутствующие в другом сете.
Преобразование типов данных:
Иногда может возникнуть необходимость преобразовать один тип данных в другой. Для этого существуют специальные встроенные функции Python. Вот некоторые из них:
Преобразовывает х в целое число. Например, int(12.4) -> 12
Преобразовывает х в long. Например, long(20) -> 20L
Преобразовывает х в число с плавающей точкой. Например float(10) -> 10.0
Создает комплексное число. Например complex(20) -> (20+0j)
Преобразовывает х в строку. Например str(10) -> ’10’
Преобразовывает s в кортеж. Например tuple(«hello») -> ( «h»,»e»,»l»,»l»,»o» )
Преобразовывает s в список. Например list(«Python») -> [ «P»,»y»,»t»,»h»,»o»,»n» ]