От автора
Python — язык программирования высокого уровня, и позволяет программисту думать о логике разрабатываемого продукта, а не о том где хранить переменную, сколько памяти ей выделить и для каких данных ее создавать. Поэтому, Python — это одно из лучших что можно выбрать для изучения! И именно о python отлично отзывается и использует наш партнер, Middle-разработчик на python, автор сообщества __easypy__, где и делится своим опытом, а так же обучает коллег, которые переступили порог выбора языка программирования и остановились на python.
Введение
В данной статье разберем как Python работает с переменными и какие типы данных можно использовать в этом языке.
Если подходить к вопросу о типизации языка Python, то можем сказать что он относится к языку с неявно сильной динамической типизацией.
Неявная типизация понимается так, что при объявлении переменной не нужно программисту указывать ее тип. То есть не нужно писать «int a = 1», как это пишется, например, в С++ и многих других языках.
В Pytnon типы данные можно разделить на встроенные и не встроенные, которые используются при импорте модулей.
Типы данных в Python
К основным встроенным типам относятся…
- None (неопределенное значение переменной)
- Логические переменные (Boolean Type)
- Числа (Numeric Type)
int – целое число
float – число с плавающей точкой
complex – комплексное число - Списки (Sequence Type)
list – список
tuple – кортеж
range – диапазон - Строки (Text Sequence Type )
str - Бинарные списки (Binary Sequence Types)
bytes – байты
bytearray – массивы байт
memoryview – специальные объекты для доступа к внутренним данным объекта через protocol buffer - Множества (Set Types)
set – множество
frozenset – неизменяемое множество - Словари (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 они представлены классами int
, float
и 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
Словари
Словари — неупорядоченные наборы пар ключ-значение.
Они используются, когда нужно сопоставить каждому из ключей значение и иметь возможность быстро получать доступ к значению, зная ключ. В других языках словари обычно называются map
, hash
или 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 и уже работаете над своим кодом, то советуем посмотреть какими инструментами пользуются наши разработчики для упрощения и ускорения интересной работы программиста.
Очень полезная информация спасибо.