Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогТипы данных в Python – особенности разработки
Типы данных в Python
4 994
Время чтения: 13 минут

Типы данных в Python – особенности разработки

4 994
Время чтения: 13 минут
Сохранить статью:
Сохранить статью:

Что такое? Типы данных в Python, как и в любом другом языке программирования, играют важную роль, и их понимание является ключом к написанию эффективного кода. Речь идет про классы и экземпляры (объекты) этих классов.

Какие существуют? В Python есть разные типы данных, каждый из которых обладает своими уникальными характеристиками и возможностями использования. Самые ходовые – числа, списки, кортежи, словари, строки, множества.

В статье рассказывается:

  1. Что такое типы данных в Python
  2. Модель данных
  3. Числа
  4. Списки
  5. Кортежи
  6. Словари
  7. Строки
  8. Множества
  9. Что важно запомнить про типы данных Python
  10. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Что такое типы данных в Python

Типом данных называют большое количество значений и комплекс операций, которые можно использовать на этих значениях. В языке программирования Python к ним относятся числа, строки, списки, словари, кортежи, множества и логический тип данных. Типы данных в Python можно разделить на:

  • изменяемые (множества, списки, словари);
  • неизменяемые (кортежи, строки, числа);
  • упорядоченные (списки, строки, кортежи, словари);
  • неупорядоченные (множества).

Python отличается от других языков своей типизацией – у него она неявная, сильная и динамическая. О чём это говорит? Неявная типизация означает, что нет необходимости при объявлении переменной определять конкретный тип данных, к которому она принадлежит, как это делается, к примеру, в языке С++.

Для примера:

int a = 10

Процесс объявления переменной в Python очень простой:

Например,

a = 10

Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

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

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 27897 pdf иконка

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

Например,

a = «Welcome»

a = 1

Сильная (иначе строгая) типизация говорит о том, что в Python нельзя смешивать типы данных. Если переменная была определена как число, то сложить её со строкой не получится:

К примеру,

a = 10

print(‘Десять = ‘ + a)

Благодаря этому повышается надёжность кода, потому что приходится явно преобразовывать число к строке:

Например,

a = 10

print(‘Десять = ‘ + str(a))

Модель данных

До того, как разобраться с конкретными типами данных, немного поговорим о том, что значит модель данных, как образуются объекты в памяти, о работе процесса присваивания (=).

Модель данных
Модель данных

Для объявления переменной в Python, надо обозначить её имя, разместить знак присваивания (=) и ввести значение, которое сохранится в переменной.

К примеру,

a = 10

Переменная под именем «а» получила число 10. Целочисленное значение 10 представляет собой объект, как всё в языке Python (числа, строки, списки и прочее). Объект – это абстракция данных. Под данными подразумеваются не только объекты, но и отношения между ними. В объект входит три компонента: тип, идентификатор и значение.

Во время создания переменной на уровне интерпретатора формируется целочисленный объект 10, который откладывается где-то в памяти. У этого объекта есть идентификатор, значение 10 и целочисленный тип. Через оператора присваивания (=) генерируется ссылка между переменной a и объектом 10, целочисленного типа.

Название переменной обязательно должно отличаться от ключевых слов Python. Для проверки можно использовать способ iskeyword() из модуля keyword.

К примеру,

import keyword

keyword.iskeyword(«for») # => True

Приведём ещё один пример, чтобы лучше разобраться в операции присвоения в Python:

Например,

a = 5

b = 10

print(id(a)) # => 140732499849616

print(id(b)) # => 140732499849776

a = b

print(id(a)) # => 140732499849776

Здесь используется функцию id для определения идентификатора, с которым связана переменная. Не стоит опираться на конкретные значения, потому что у вас они получатся не такими. Отметим также, что после присвоения изменился идентификатор, на который ссылается переменная.

Для выяснения типа переменной можно использовать опцию type():

К примеру,

a = 5

print(type(a)) # => <class ‘int’>

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

Числа

В группу чисел входят числа целые, с плавающей запятой и комплексные. В языке Python они обозначаются как int, float и complex.

Для выяснения класса переменной или значения можно воспользоваться опцией type(), а функцией isinstance(), чтобы проверить, к какому классу принадлежит объект:

>>> a = 5

>>> print(a, «is of type», type(a))

5 is of type <class ‘int’>

>>> a = 2.0

>>> print(a, «is of type», type(a))

2.0 is of type <class ‘float’>

>>> a = 1+2j

>>> print(a, «is complex number?», isinstance(1+2j, complex))

(1+2j) is complex number? True

У целых чисел может быть любая длина и всё, что их ограничивает, это доступная память.

У чисел с плавающей запятой ограниченная точность. Различить целое число и число с плавающей запятой в консоли можно по внешнему виду (а точнее по точке): 1 – целое число, 1.0 – с плавающей запятой.

Дарим скидку от 60%
на обучение «Веб-разработчик» до 05 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

Для комплексных чисел существует формат записи: x + yj, где х является действительной частью числа, а у – мнимой. Ниже приведены несколько примеров:

>>> a = 1234567890123456789

>>> a

1234567890123456789

>>> b = 0.1234567890123456789

>>> b

0.12345678901234568

>>> c = 1+2j

>>> c

(1+2j)

Как можно заметить, значение переменной b было усечено.

Списки

Список – это организованная последовательность элементов. Составляющие списка могут относиться к разным типам.

Списки
Списки

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

>>> a = [1, 2.2, ‘python’]

Есть вариант воспользоваться оператором [], чтобы извлечь из списка элемент (данный процесс называют «доступ по индексу») либо диапазон элементов (это называется «извлечение среза»).

>>> a = [5,10,15,20,25,30,35,40]

>>> print(«a[2] =», a[2])

a[2] = 15

>>> print(«a[0:3] =», a[0:3])

a[0:3] = [5, 10, 15]

>>> print(«a[5:] =», a[5:])

a[5:] = [30, 35, 40]

Только до 29.04
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Списки относятся к изменяемому типу данных в Python. Это говорит о том, что значения его составляющих можно менять:

>>> a = [1,2,3]

>>> a[2] = 4

>>> a

[1, 2, 4]

Кортежи

Кортежи (tuple) представляют собой такие же списки, но они являются неизменяемым типом данных в Python. С ними можно работать так же, как и со списками, но нельзя производить манипуляции, которые поменяют кортеж:

some_tuple = (‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’)

#крайний элемент кортежа

last_element = some_tuple[-1]

print(last_element)

#срез кортежа с первого по третий элемент

tuple_slice = some_tuple[0:3]

print(tuple_slice)

#изменяем значение первого компонента

some_tuple[0] = ‘c’

Во время попытки поменять элемент «р» на «с» Python выдаёт ошибку:

TypeError: ‘tuple’ object does not support item assignment

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

Словари

Словарь (dict) является неупорядоченной коллекцией пар «ключ – значение». Ключами могут быть любые постоянные объекты: числа, строки и даже кортежи.

Пользоваться элементами, удалять и генерировать новые достаточно легко:

#словарь с данными об ученике GeekBrains

some_dict = {‘first_name’:’Алексей’,

‘age’:35, ‘is_paid’:True,

‘courses’:[‘python’, ‘javascript’, ‘html/css’], }

print(some_dict)

#элемент с ключом ‘last_name’

print(some_dict[‘first_name’]) # ‘Алексей’

#создать элемент, присвоив значение несуществующему ключу

some_dict[‘second_name’] = ‘Петров’

print(some_dict)

#{‘first_name’: ‘Алексей’, ‘age’: 35, ‘is_paid’: True, ‘courses’: [‘python’, ‘javascript’, ‘html/css’], ‘second_name’: ‘Петров’}

del some_dict[‘is_paid’]

print(some_dict)

#{‘first_name’: ‘Алексей’, ‘age’: 35, ‘courses’: [‘python’, ‘javascript’, ‘html/css’], ‘second_name’: ‘Петров’}

Значениями в словаре могут быть объекты, относящиеся к разным типам (в том числе и другие словари). Лимита вложенности нет.

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

Строки

Строка – ещё один тип данных в программировании Python, который представляет собой последовательность символов. Чтобы создать строку, используют одинарные или двойные кавычки. Для обозначения многострочных кавычек можно пользоваться тройными кавычками, »’ либо «»»:

>>> s = «Простая строка»

>>> s = »’Многострочная

строка»’

К строкам, как и к спискам, а также картежам, можно применять оператор []. Обратите внимание, что строки в языке Python являются неизменяемой последовательностью. Это значит, что все функции и методы могут только формировать новую строку.

Множества

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

>>> a = {5,2,3,1,4}

#вывод переменной множества

>>> print(«a =», a)

a = {1, 2, 3, 4, 5}

#тип данных переменной а

>>> print(type(a))

<class ‘set’>

К множествам можно применять такие процессы, как объединение и пересечение. Из-за обязательной уникальности элементов множества, дубликаты автоматически удаляются:

>>> a = {1,2,2,3,3,3}

>>> a

{1, 2, 3}

Так как множество – это неупорядоченная последовательность, воспользоваться оператором извлечения не получится:

>>> a = {1,2,3}

>>> a[1]

Traceback (most recent call last):

File «<stdin>», line 1, in <module>

TypeError: ‘set’ object does not support indexing

Что важно запомнить про типы данных Python

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

Язык программирования Python является объектно-ориентированным, то есть в его основе находятся объекты и классы. Объектом называют область хранения информации в компьютере, которую описывают через тип (иначе класс) и значение. В то же время тип влияет на область значений объекта, процессы и методы, которые на нём можно использовать. У Python есть большое количество встроенных типов данных. Это позволяет программисту реже писать собственные классы во время решения простых задач.

Хотите стать мастером универсального языка программирования? Узнайте, как создавать сайты, приложения и нейросети с курсом Python-разработчика. Станьте востребованным специалистом в IT сфере уже через 9 месяцев обучения. Присоединяйтесь к дружной команде опытных преподавателей и студентов, которые уже достигли успеха в сфере программирования.
Оцените статью
Рейтинг: 5
( голосов 2 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
  1. Аноним

    С версии 3.7 множества стали упорядочены

    0
    0
    Ответить
До конца акции осталось
0 дней 00:00:00
Дарим скидку 64% на обучение «Разработчик»
  • Получите новую профессию с гарантией трудоустройства
  • Начните учиться бесплатно, 3 месяца обучения в подарок
Забронировать скидку на обучение
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...