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

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

В этом руководстве вы узнаете о различных типах данных, доступных в Python. Так же, мы рассмотрим преобразование типов данных.

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

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

В Python есть разные типы данных. Некоторые из важных типов мы рассмотрим ниже.

Числа в Python (int, float)

Целые числа (int), числа с плавающей точкой (float) и комплексные числа (complex) подпадают под категорию чисел Python. Они определены как int, float и complex классы в Python.

Мы можем использовать функцию type(), чтобы узнать, какому классу принадлежит переменная или значение.

a = 5
print(a, "of type", type(a))
5 of type <class 'int'>
b = 2.0
print(b, "of type", type(b))
2.0 of type <class 'float'>
c = 1+2j
print(c, "of type", type(c))
(1+2j) of type <class 'complex'>

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

Число с плавающей точкой представлены с точностью до 15 десятичных знаков. Целые и плавающие точки разделены десятичными точками. 1 - целое число, 1.0 - число с плавающей запятой.

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

a = 1234567890123456789
b = 0.1234567890123456789
c = 1+2j

Подробнее числа рассмотрены в нашей статье Числа в Python.

Списки Python (list)

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

Создать список довольно просто: вы просто пишете значения разделяя их запятыми и помещаете все это в квадратные скобки [] (в других языках такой тип данных называется "массив" (подробнее о "массивах" в Python)).

fruits = ['apple', 'pear', 'banana']

Доступ к элементам списка осуществляется по индексу. Индекс начинается с нуля:

print(fruits[0])
'apple'

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

print(fruits[-1])
'banana'

print(fruits[-3])
'apple'

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

print(fruits[1:3])
['pear', 'banana']

В этот список будут включены элементы с индексом 1 и 2.

Значение элементов списков можно менять присваивая им новые значения:

fruits[0] = 'peach'
print(fruits)
['peach', 'pear', 'banana']

Подробнее списки рассмотрены в этой статье - Списки в Python.

Кортежи в Python (tuple)

Кортеж - это упорядоченная последовательность элементов, аналогичная списку. Единственное отличие состоит в том, что кортежи являются неизменяемыми. Созданные кортежи не могут быть изменены.

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

Значения в кортежах так же перечисляются через запятые, но они заключены в круглые скобки ().

cars = ('toyota', 'mazda', 'honda')
cars[0]
'toyota'

Доступ к элементам кортежа осуществляется точно так же, как к элементам списка (включая срезы), но как уже было сказано - кортежи неизменяемый тип данных, вы не можете изменить значения так же, как вы меняли их в списках.

Строки в Python (str)

Строка - это последовательность символов Юникода. Для представления строки используются одинарные или двойные кавычки. Несколько строк можно объединить в одну используя тройные кавычки.

message = 'some string content'
message2 = "another string content"
message3 = '''this is a multiline
string content'''
message4 = """another multiline
string content"""

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

print(message[0])
's'

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

Множества в Python (set)

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

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

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

numbers = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5}
print(numbers)
{1, 2, 3, 4, 5}

Поскольку множества являются неупорядоченными коллекциями, индексация не имеет смысла. Следовательно, оператор среза [] не работает.

Словари в Python (dict)

Словарь (dictionary) - это неупорядоченная коллекция пар ключ-значение.

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

В Python словари определены в фигурных скобках {}, где каждый элемент является парой в виде ключ: значение. Ключ и значение могут быть любого типа.

user = {'name': 'Vasya', 'email': 'vasya@yandex.ru'}
print(user['name'])
'Vasya'

При обращении к несуществующему ключу интерпретатор выдаст ошибку.

Словари очень похожи на ассоциативные массивы в PHP.

Преобразование типов данных в Python

Мы можем преобразовывать типы данных, используя разные функции преобразования, такие как int(), float(), str() и т. д.

Например так можно преобразовать тип int в float:

float_number = float(5)
print(float_number)
5.0

Преобразование числа типа float в int приведет к округлению в сторону нуля:

int_number = int(12.6)
print(int_number)
12

При преобразовании строки в число, строка должна содержать подходящее значение:

number = float('12')
print(number)
12

get_number = int('4g')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '4g'

При попытке преобразования строки '4g' возникла ошибка.

Так же, довольно просто можно преобразовывать последовательности:

print(set([1,2,3]))
{1, 2, 3}
print(tuple({5,6,7}))
(5, 6, 7)
print(list('hello'))
['h', 'e', 'l', 'l', 'o']

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*