Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Типы данных Python

4066
8 минут чтения
Средний рейтинг статьи: 5

Python — это полностью объектно-ориентированный язык программирования. Отсюда и возникает довольно известный факт, который гласит, что в нем все данные — это объекты, которые могут быть встроены на уровне языка или объявлены вручную. 

Объекты — это экземпляры класса и основные строительные блоки любой программы, которым отводится некоторая область памяти для хранения в них данных. Так, например, когда мы пишем в коде «x = 5», мы создаем экземпляр класса int со значением 5 и присваиваем его переменной x. Теперь x — это объект типа int.

На картинке ниже наглядно видно структуру программ, написанных на Python.

Типы Данных2

Все объекты имеют свои уникальные типы данных (int, string, list и т.д.) и создаются с использованием конструкторов соответствующих классов. Классы, в свою очередь — это механизмы, определяющие поведение объектов благодаря уникальным атрибутам и методам. Их еще можно назвать макетами для создания объектов. 

В данной статье мы рассмотрим, какие типы данных есть в Python, и поговорим об особенностях каждого из них.

Переменные

Переменные в Python — это названия для области памяти вычислительной машины, в которых впоследствии будут храниться самые разные значения. У каждой переменной в коде обязательно есть свой тип данных, который указывает интерпретатору на то, что можно хранить в этой переменной, и какое количество памяти нужно выделить для нее.

Объявление переменной выглядит следующим образом:

    

В первую очередь мы указываем имя переменной, затем ставим знак равенства, а после него передаем значение, которое и будет присвоено указанной переменной.

У каждой переменной есть свой адрес в памяти. Определить его можно, используя функцию id():

    

Для переменной x из примера выше будет вот такой адрес:

Image2

Также в Python существует функция type(), благодаря которой мы можем узнать тип данных, выбранный для конкретной переменной:

    

Как видно по картинке ниже, для x был определен целочисленный тип данных.

Image1

Процесс определения типа данных называется типизацией. Она бывает двух видов: статическая и динамическая. В Python используется второй вариант. Именно поэтому при использовании одной и той же переменной она может представлять объекты совершенно разных типов данных. Например:

    

Во всех случаях вызова print, мы увидим разный результат. Он показан на картинке ниже.

Image3

Встроенные типы данных

В данном разделе мы рассмотрим все основные типы данных в языке программирования Python. Их можно разделить на две группы: неизменяемые и изменяемые объекты.

Неизменяемые объекты — это те объекты, чье состояние и содержимое нельзя изменить. При попытке изменить значение подобных объектов будет создаваться новый объект с указанным значением и тем же именем. К неизменяемым относятся объекты типа число, строка или кортеж.

Изменяемые объекты — это те объекты, которые возможно изменить после их создания. К данной группе относятся объекты типа список, словарь или множества.

Чтобы проверить изменяемость объектов, воспользуемся функцией id(), которую мы рассматривали немного ранее, и сравним адреса в памяти до внесения изменений и после:

    

Результат работы программы продемонстрирован на картинке ниже.

Image5

Здесь видно, что при выполнении операции сложения с переменной типа int, создается новый объект, имя которого сохраняется, а вот значение адреса в памяти нет. При добавлении нового значения в объект типа список, адрес в памяти не меняется, что подтверждает его изменяемость.

Данные свойства объектов необходимо учитывать, например, при работе с функциями. В качестве аргументов функции лучше использовать копии изменяемых объектов, чтобы не повредить оригинал.

В следующих подразделах мы рассмотрим типы данных в языке Python более детально.

Числа и логика

В первую очередь рассмотрим тип данных «числа» в Python. 

Ниже представлена таблица, содержащая название и описание числового типа данных, а также его обозначение и примеры. Кроме того, сюда был добавлен логический тип данных.

Тип данных

Описание

Обозначение

Пример

Целые числа

Положительные и отрицательные числа без дробной части.

int

example1 = 5

example2 = -1234

Числа с плавающей точкой

Положительные и отрицательные числа с дробной частью.

float

example3 = 3.14

example4 = -43.4132

Комплексные числа

Числа в формате:

a + bj, 

где a и b — вещественные числа, а j — мнимая единица.

Передача комплексных чисел происходит с использованием функции complex().

Чтобы отобразить вещественную часть, используется синтаксис:

имя_переменной.real

Чтобы отобразить мнимую часть, используется синтаксис:

имя_переменной.imag

complex

example5 = complex(5,4)

Логический

Логический тип данных принимает всего 2 значения: True и False. Используется он зачастую для реализации ветвлений или установки флажков.

bool

example7 = True

example8 = False

Строки

Строковый тип данных предназначен для хранения текстовой информации или последовательности байтов. Чтобы объявить строку, необходимо воспользоваться одинарными, двойными либо тройными кавычками, как это показано в примере ниже:

    

Как мы уже говорили раньше, строки относятся к неизменяемым объектам.

Списки

Списки в Python — это упорядоченные коллекции элементов, которые могут быть представлены различными типами данных. Они могут быть изменяемыми, что означает, что вы можете добавлять, удалять и изменять элементы в списке.

Объявление списка происходит за счет перечисления через запятую его элементов внутри квадратных скобок, как это показано в примере ниже:

    

Извлечение элементов из списка выполняется с использованием его индексов. Это может быть как один элемент, так и целый срез. Пример:

    

Результат работы кода показан на картинке ниже.

Image8

Кортежи

Кортежи в Python — это те же списки, однако они в свою очередь неизменяемы. Их преимущество заключается в том, что интерпретатор работает с ними гораздо быстрее. Поэтому, если вам важно, чтобы ваша программа работала быстрее, а данные оставались неизменными — используйте кортежи.

Объявление кортежа происходит за счет перечисления через запятую его элементов внутри круглых скобок, как это показано в примере ниже:

    

Извлечение элементов происходит так же, как и у списков. Однако важно помнить, что изменить их не получится.

Словари

Словари — это неупорядоченная перечень пар в формате ключ-значение. Они предназначены для тех случаев, когда пользователю требуется обеспечить быстрый доступ к данным за счет использования соответствующего ключа.

Чтобы объявить словарь, необходимо перечислить данные в формате ключ-значение в фигурных скобках, как это показано в примере ниже:

    

Важно помнить, что значения могут быть любого типа данных, а ключи только неизменяемыми.

Как мы и говорили, чтобы получить значение, используем соответствующий ключ:

    

Результат работы программы продемонстрирован на картинке ниже.

Image6

Множества

Множество — это набор уникальных и неупорядоченных элементов неизменяемого типа.

Чтобы объявить множество, необходимо перечислить элементы через запятую в фигурных скобках, как это показано в примере ниже:

    

Если мы попробуем передать в множество дублирующиеся элементы, то интерпретатор автоматически удалит их. Например:

    

В итоге, функция print(example_set) выведет следующее:

Image7

Еще одна особенность множеств в том, что над ними можно выполнять ряд математических операций (объединение, разность, пересечение).

Что запомнить

  • Все объекты имеют свои уникальные типы данных (int, string, list и т.д.) и создаются с использованием конструкторов соответствующих классов.
  • Переменные в Python — это названия для области памяти вычислительной машины, в которых впоследствии будут храниться самые разные значения. У каждой переменной в коде обязательно есть свой тип данных, который указывает интерпретатору на то, что можно хранить в этой переменной, и какое количество памяти нужно выделить для нее.
  • Неизменяемые объекты — это те объекты, чье состояние и содержимое нельзя изменить. При попытке изменить значение подобных объектов, будет создаваться новый объект с указанным значением и тем же именем. К неизменяемым относятся объекты типа число, строка или кортеж.
  • Изменяемые объекты — это те объекты, которые возможно изменить после их создания. К данной группе относятся объекты типа список, словарь или множества.
  • К числовому типу данных относятся целые числа, числа с плавающей запятой и комплексные числа.
  • Логический тип данных принимает всего два значения: True или False.
  • Строковый тип данных предназначен для хранения текстовой информации или последовательности байтов.
  • Списки в Python — это упорядоченные коллекции элементов, которые могут быть представлены различными типами данных.
  • Кортежи в Python — это те же списки, однако они в свою очередь неизменяемы.
  • Словари — это неупорядоченная перечень пар в формате ключ-значение.
  • Множество — это набор уникальных и неупорядоченных элементов неизменяемого типа.
4066
8 минут чтения
Средний рейтинг статьи: 5

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server