От автора

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

Введение

В данной статье разберем как Python работает с переменными и какие типы данных можно использовать в этом языке.
Если подходить к вопросу о типизации языка Python, то можем сказать что он относится к языку с неявно сильной динамической типизацией.
Неявная типизация понимается так, что при объявлении переменной не нужно программисту указывать ее тип. То есть не нужно писать «int a = 1», как это пишется, например, в С++ и многих других языках.

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

Типы данных в Python

К основным встроенным типам относятся…

  1. None (неопределенное значение переменной)
  2. Логические переменные (Boolean Type)
  3. Числа (Numeric Type)
    int – целое число
    float – число с плавающей точкой
    complex – комплексное число
  4. Списки (Sequence Type)
    list – список
    tuple – кортеж
    range – диапазон
  5. Строки (Text Sequence Type )
    str
  6. Бинарные списки (Binary Sequence Types)
    bytes – байты
    bytearray – массивы байт
    memoryview – специальные объекты для доступа к внутренним данным объекта через protocol buffer
  7. Множества (Set Types)
    set – множество
    frozenset – неизменяемое множество
  8. Словари (Mapping Types)
    dict – словарь

Инициализация переменных и работа с ними

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

>>> value = 10

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

Для определения идентификатора существует встроенная функция id:

>>> value = 10
>>> id(value)
140654768777808

Если необходимо получить значение используйте функцию print:

>>> value = 10
>>> print(value)
10

И остается найти тип с помощью функции type:

>>> value = 10
>>> type(value)
<class 'int'>

В Python существуют изменяемые и неизменяемые типы:
— К неизменяемым (immutable) типам относятся: целые числа (int), числа с плавающей точкой (float), комплексные числа (complex), логические переменные (bool), кортежи (tuple), строки (str) и неизменяемые множества (frozen set).
— К изменяемым (mutable) типам относятся: списки (list), множества (set), словари (dict).

Основные типы данных в Python на примерах:

Числа

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

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

Числа с плавающей запятой имеют ограниченную точность. Визуально разницу между целым числом и числом с плавающей запятой можно заметить в консоли по наличию точки: 1 — целое число, 1.0 — с плавающей запятой.

Комплексные числа записываются в форме x+yj, где x — действительная часть числа, а y — мнимая. Вот несколько примеров:

>>> 
>>> a = 12345678901234567890
>>> a
12345678901234567890
>>> type(a)
<class 'int'>
>>> b = 0.12345678901234567890
>>> b
0.12345678901234568
>>> type(b)
<class 'float'>
>>> c = 1 + 2j
>>> c
(1+2j)
>>> type(c)
<class 'complex'>
>>> 

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

Строки

Строка представляет собой последовательность символов. Мы можем использовать одинарные или двойные кавычки для создания строки. Многострочные строки можно обозначить тройными кавычками, ''' или """:

>>> s = "Простая строка"
>>> s = '''многострочная строка'''

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

Списки

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

Объявить список довольно просто. Внутрь квадратных скобок помещаются элементы списка, разделённые запятой:

>>> a = [1, 2.2, 'python']

Мы можем использовать оператор [] для извлечения элемента (такая операция называется «доступ по индексу») или диапазона элементов (такая операция назвается «извлечение среза») из списка. В 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]

Списки являются изменяемым типом, т.е. значения его элементов можно изменить:

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

Кортежи

Так же как и список, кортеж (tuple) является упорядоченной последовательностью элементов. Вся разница заключается в том, что кортежи неизменяемые.

Кортежи используются для защиты данных от перезаписи и обычно работают быстрее, чем списки, т.к. их нельзя изменять.

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

>>> t = (5,'program', 1+3j)

Мы можем использовать оператор извлечения среза [] для извлечения элементов, но мы не можем менять их значения:

>>> t = (5,'program', 1+3j)
>>> print("t[1] =", t[1])
t[1] = program
>>> print("t[0:3] =", t[0:3])
t[0:3] = (5, 'program', (1+3j))
# Приводит к ошибке, т.к.
# кортежи неизменяемые
>>> t[0] = 10

Множества

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

>>> 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

Словари

Словари — неупорядоченные наборы пар ключ-значение.

Они используются, когда нужно сопоставить каждому из ключей значение и иметь возможность быстро получать доступ к значению, зная ключ. В других языках словари обычно называются maphash или object. Словари оптимизированы для извлечения данных. Чтобы извлечь значение, нужно знать ключ.

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

>>> d = {1:'value', 'key':2}
>>> type(d)
<class 'dict'>

Значение может быть любого типа, а вот ключ — только неизменяемого.

Мы используем ключ, чтобы получить соответствующее ему значение. Но не наоборот:

>>> d = {1:'value', 'key':2}
>>> print("d[1] =", d[1]); d[1] = value
>>> print("d['key'] =", d['key']); d['key'] = 2
# Приводит к ошибке
>>> print("d[2] =", d[2]);

Заключение

Язык программирования python дает огромное преимущество перед другими языками. Не зря он один из самых популярных и многоплатформенных, может использоваться в любом направлении, а в некоторых незаменим. В качестве доказательства вы можете найти разные способы применения в сообществе по применению python в разных направлениях, выполняя заказы на фрилансе или же просто загуглите.

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