Что такое тип данных в python
Перейти к содержимому

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

  • автор:

Типы данных

Python — язык программирования со строгой типизацией. Но что это означает на деле?

Предположим, требуется вывести на экран результат какого-нибудь арифметического действия. Например, сумму двух чисел. Однако, просто выводить число на экран не очень весело и мы хотим добавить к числу какой-то текст, например, «результат равен „. С одной стороны, мы знаем, что оператор „+“ складывает два числа. С другой, что он может склеить две строки в одну. Но что, если нужно склеить строку и число?

result = 10 + 15
text = "Результат равен " + result
print(text)

Такая программа, разумеется, не заработает и выведет на экран следующую ошибку

TypeError: Can't convert int to str implicitly

Дословно эту ошибку можно перевести как «Невозможно неявно преобразовать целое в строку». То есть, Python не может склеить число со строкой по причине того, что это разные типы данных. Это и есть строгая типизация — для того, что бы работало корректно, данные нужно преобразовывать к одному типу.

Кроме строк и целых чисел, в Python есть еще много различных типов данных. Однако, для понимания сути нам достаточно строк и чисел. Чтобы перевести число в строку нужно использовать встроенную в Python функцию str. Такая программа заработает и выведет на экран именно то, что мы хотим

result = 10 + 15
text = "Результат равен " + str(result)
print(text)

А что, если мы захотим сложить числа, которые введет пользователь?

a = input('Введите первое число')
b = input('Введите второе число')
result = a + b
text = "Результат равен " + str(result)
print(text)

Бьюсь об заклад, вывод этой программы может показаться странным, но все сработало именно так, как надо! Если пользователь введет числа 1 и 2 программа выведет на экран следующий текст

Результат равен 12

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

result = "10" + "15"
text = "Результат равен " + result
print(text)

То есть, числа будут «склеены» как строки.

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

a = input('Введите первое число')
b = input('Введите второе число')
result = int(a) + int(b)
text = "Результат равен " + str(result)
print(text)

Python с нуля. Освойте с Виртуальным ИИ-помощником!

ТИПЫ ДАННЫХ В PYTHON

Кроме того, к базовым типам также относятся логический тип и тип NoneType.

Числа

Тип данных Числа имеет в Python три вида:

Целые числа

Примеры записи целых десятичных чисел:

5 20 856 57557253

Двоичные числа записывают с префиксом 0b.

Примеры записи целых двоичных чисел:

0b101 0b10100

Восьмиричные числа записывают с префиксом 0o.

Примеры записи целых восьмиричных чисел:

Шестнадцатиричные числа записывают с префиксом 0x.

Примеры записи целых шестнадцатиричных чисел:

0x5 0x14 0x4fd

Дробные числа

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

Примеры записи дробных чисел:

0.5 3.14 65.728

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

Мнимая часть комплексного числа записывается с помощью постфикса j.

Примеры записи комплексных чисел:

2 + 3j 3.7 + 0.5j 45 + 0j

Строки

Строки — это последовательности символов. Строки в Python записываются в кавычках. Можно использовать пару двойных кавычек или пару одинарных (апострофов).

Каждый символ в строке имеет свой индекс (номер). Нумерация начинается с нуля.

Примеры записи строк:

«Hello»
‘я люблю Python’

Списки

Списки — составной тип данных, состоящий из элементов, разделенных запятыми.

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

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

[2, 5, 3, 7]
[5, 3.2, ‘apple’, ‘orange’]
[7, 3, [4, 2], 9]

Кортежи

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

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

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

(5, 8, 2, 3)
(7, 9.3, ‘gold’, ‘silver’)
(7, 3, [4, 5], 9)

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

Множества

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

Множества не поддерживают индексацию, то есть элементы множества не могут иметь индексов.

Множества удобны тем, что с ними можно выполнять операции объединения, пересечения, вычитания, сравнения (находить элементы множества, отсутствующие в другом множестве, или находить элементы множества, присутствующие в другом множестве).

Множества в Python записываются в фигурных скобках.

Элементами множества могут быть числа, строки, кортежи, но не могут быть списки, множества или словари.

Словари

Словари являются неупорядоченным типом данных и состоят из пар ключ-значение.

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

Пары ключ, значение в словаре разделяются двоеточием и записываются через запятую.

Словари в Python записываются в фигурных скобках.

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

x = print(x) 

Логический тип

Логический тип (boolean) имеет два значения: истина (True) и ложь (False).

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

True
False

Тип NoneType

Тип NoneType в Python принимает значение None, которое идентично значению Null в других языках программирования.

Проверка типа

Узнать тип объекта можно с помощью функции type().

Создадим строковый объект и напечатаем его тип.

a = 'wire' print(type(a)) 

Проверить тип объекта можно с помощью функции isinstance(). Функция принимает два аргумента: имя объекта и название типа. Если тип объекта и название типа совпадают, то функция возвратит логическое значение True, если не совпадают, то возвратит False.

Создадим целочисленный объект и напечатаем результат, возвращаемый функцией isinstance().

a = 5 print(isinstance(a, int)) 
True

Попробуем еще.

a = [5, 10, 20] print(isinstance(a, list)) 

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

Изучаем типы данных в Python: числа, строки, списки и другие типы ��‍��

Изучаем типы данных в Python: числа, строки, списки и другие типы ��‍��

17 февраля 2023
Оценки статьи
Еще никто не оценил статью

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

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

Какие существуют типы данных в Python?

  • Числовые типы данных: int , float , complex , используются для представления чисел.
  • Тип данных String: str , используется для представления текстовой информации.
  • Последовательности: list , tuple , range (список, кортеж, диапазон), используются для хранения упорядоченных коллекций объектов.
  • Двоичные: bytes , bytearray , memoryview , используются для хранения двоичных данных, таких как изображения и звук.
  • Сопоставления: dict , используется для хранения данных в виде пар ключ-значение.
  • Логический: bool , используется для представления логических значений True и False.
  • Множества: set , frozenset , используются для хранения уникальных элементов в неупорядоченном виде.

Числовые типы данных

Числовой тип данных Python используется для хранения числовых значений, например:

  • int – содержит целые числа со знаком неограниченной длины.
  • long – содержит длинные целые числа (существует в Python 2.x, убран Python 3.x).
  • float – содержит числа с плавающей точкой с точностью до 15 десятичных знаков и может достигать до 53 бит.
  • complex – содержит комплексные числа.

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

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

Пример:

# целочисленное число a = 10 print('Тип переменной, имеющей значение', a, 'это', type(a)) # число с плавающей точкой b = 5.1234 print('Тип переменной, имеющей значение', b, 'это', type(b)) # комплексное число c = 500 + 3j print('Тип переменной, имеющей значение', c, 'это', type(c)) 

Результат:

>>> Тип переменной, имеющей значение 10 это class 'int'> >>> Тип переменной, имеющей значение 5.1234 это class 'float'> >>> Тип переменной, имеющей значение (500+3j) это class 'complex'> 

Строковой тип данных

Строка (String) — это последовательность символов. Python поддерживает символы Unicode. Обычно строки представляются в одинарных или двойных кавычках.

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

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

Также в Python есть так называемые «сырые строки» (raw strings), которые позволяют включать специальные символы (например, обратный слеш) без необходимости экранирования.

Пример:

# Строка s = "Пример строки" print('Тип переменной, имеющей значение', s, 'это', type(s))  # Строка с использованием одинарных кавычек s1 = 'Еще один пример строки' print('Тип переменной, имеющей значение', s1, 'это', type(s1))  # Пустая строка s2 = "" print('Тип переменной, имеющей значение', s2, 'это', type(s2))  # строка, содержащая цифры и символы s3 = "123abc!?" print('Тип переменной, имеющей значение', s3, 'это', type(s3)) 

Результат:

>>> Тип переменной, имеющей значение Пример строки это class 'str'> >>> Тип переменной, имеющей значение Еще один пример строки это class 'str'> >>> Тип переменной, имеющей значение это class 'str'> >>> Тип переменной, имеющей значение 123abc!? это class 'str'> 

Тип данных последовательностей

Типы данных последовательностей в Python позволяют хранить упорядоченные коллекции объектов.

  • Список (list) — это упорядоченная коллекция объектов, которая может содержать элементы разных типов. Элементы списка могут изменяться, добавляться или удаляться во время выполнения программы.
  • Кортеж (tuple) — это упорядоченная коллекция объектов, которая также может содержать элементы разных типов. Кортежи отличаются от списков тем, что элементы в них не могут быть изменены после создания.
  • Диапазон (range) — это тип данных, который представляет последовательность чисел. Обычно он используется в циклах for для указания количества итераций.

Пример:

# создание списка my_list = [1, 'hello', True] print('Тип переменной my_list это', type(my_list))  # создание кортежа my_tuple = (1, 'hello', True) print('Тип переменной my_tuple это', type(my_tuple))  # создание диапазона my_range = range(5) print('Тип переменной my_range это', type(my_range)) 

Результат:

>>> Тип переменной my_list это class 'list'> >>> Тип переменной my_tuple это class 'tuple'> >>> Тип переменной my_range это class 'range'> 

Двоичные типы данных

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

В Python есть три типа данных, которые предназначены для хранения двоичных данных:

  • bytes – неизменяемая последовательность байтов. Представляет двоичные данные, которые необходимо хранить в неизменяемом виде, например, содержимое изображения.
  • bytearray – изменяемая последовательность байтов. Представляет двоичные данные, которые могут изменяться, например, кадры видео.
  • memoryview – позволяет работать с памятью как с последовательностью байтов, что может быть полезным при работе с большими объемами данных.

Пример:

# bytes b = b'\x00\xff\x50' print('Тип переменной, имеющей значение', b, 'это', type(b))  # bytearray ba = bytearray(b) print('Тип переменной, имеющей значение', ba, 'это', type(ba))  # memoryview mv = memoryview(b) print('Тип переменной, имеющей значение', mv, 'это', type(mv)) 

Результат:

>>> Тип переменной, имеющей значение b'\x00\xffP' это class 'bytes'> >>> Тип переменной, имеющей значение bytearray(b'\x00\xffP') это class 'bytearray'> >>> Тип переменной, имеющей значение memory at 0x7fcd3a8dd100> это class 'memoryview'> 

Тип данных сопоставления

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

Пример:

# Создание словаря person = dict(name='John', age=30, city='New York') person_alt = 'name': 'Alexandr', 'age': 25, 'city': 'Moscow'>  # Вывод словарей print(person, person_alt)  # Тип данных print(type(person))  print(type(person_alt)) 

Результат:

>>> 'name': 'John', 'age': 30, 'city': 'New York'> 'name': 'Alexandr', 'age': 25, 'city': 'Moscow'> >>> class 'dict'> >>> class 'dict'> 

Логический тип данных

Логический тип данных bool в Python используется для представления истинности выражения, которое может иметь только два значения: True (истина) или False (ложь). Этот тип данных может быть полезен, например, для проверки условий и принятия решений на основе этих условий.

Пример:

a = 10 b = 5 c = a > b print('Результат сравнения', a, '>', b, 'это', c, 'тип', type(c)) 

Результат:

>>> Результат сравнения 10 > 5 это True тип class 'bool'> 

Тип данных множество

Тип данных множество (set) в Python представляет собой неупорядоченную коллекцию уникальных элементов. Основным применением множеств является проверка наличия элемента в коллекции, удаление дубликатов, нахождение пересечения, объединения и разности множеств.

Тип данных frozenset, в отличие от обычного множества set, является неизменяемым.

Пример:

# создание множества my_set = 1, 2, 3, 4, 5>  # вывод типа данных print(type(my_set)) # # создание неизменяемого множества my_frozenset = frozenset([1, 2, 3, 4, 5])  # вывод типа данных print(type(my_frozenset)) # 

Результат:

>>> class 'set'> >>> class 'frozenset'> 

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

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

В Python множество различных типов данных, мы поговорим о самых важных из них.

Числа

К этому классу относятся: целые, комплексные и числа с плавающей точкой. Определены они в Python так: int , complex и float соответственно.

С помощью функции type() можно узнать класс, к которому принадлежит переменная. А функция isinstance() проверяет принадлежность объекта к определенному классу.

a = 5 print(a, "относится к типу", type(a)) a = 2.0 print(a, "относится к типу", type(a)) a = 1+2j print(a, "комплексное число?", isinstance(1+2j,complex)) 

Вывод:

5 относится к типу 
2.0 относится к типу
(1+2j) комплексное число? True

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

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

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

>>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j) 

Обратите внимание, что float-переменная b усекается.

Списки

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

Объявить список довольно просто — элементы в нем разделяются запятыми и заключены в квадратные скобки [ ] .

a = [1, 2.2, 'python']

Чтобы получить элемент или ряд элементов из списка, воспользуйтесь срезами. Индексация начинается с 0.

a = [5,10,15,20,25,30,35,40] # a[2] = 15 print("a[2] = ", a[2]) # a[0:3] = [5, 10, 15] print("a[0:3] = ", a[0:3]) # a[5:] = [30, 35, 40] print("a[5:] language-python">a = [1, 2, 3] a[2] = 4 print(a) 

Вывод:

[1, 2, 4]

Кортежи

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

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

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

t = (5, 'программа', 1+3j) 

Чтобы извлечь элемент из кортежа, вы можете использовать оператор среза — [] . Но не забывайте — значения кортежа менять нельзя.

t = (5,'программа', 1+3j) # t[1] = 'программа' print("t[1] = ", t[1]) # t[0:3] = (5, 'программа', (1+3j)) print("t[0:3] test.py", line 11, in  
t[0] = 10
TypeError: 'tuple' object does not support item assignment

Строки

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

s = "Это строка" print(s) s = '''Многострочная строка''' print(s) 

Вывод:

Это строка
Многострочная
строка

Со строками можно использовать срезы, но сами строки изменять нельзя.

s = 'Привет, мир!' # s[4] = 'е' print("s[4] =", s[4]) # s[8:11] = 'мир' print("s[8:11] ", line 11, in 
TypeError: 'str' object does not support item assignment

Множества

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

a = # вывод элемента множества print("a language-python">a = print(a) 

Вывод:

Множества не упорядочены. Оператор среза с ними не работает.

>>> a = >>> a[1] Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in TypeError: 'set' object does not support indexing 

Словари

Словарь — это неупорядоченный набор пар «ключ-значение».

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

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

>>> d = >>> type(d)

Для получения значения мы используем ключ — не наоборот.

d = print(type(d)) print("d[1] = ", d[1]); print("d['ключ'] = ", d['ключ']); # Ошибка print("d[2] ", line 9, in 
KeyError: 2

Приведение типов

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

>>> float(5) 5.0

Приведение float к int приведет к усечению — десятичная часть отбросится.

>>> int(10.6) 10 >>> int(-10.6) -10

Преобразовывать можно только подходящие под тип данных значения.

>>> float('2.5') 2.5 >>> str(25) '25' >>> int('1p') Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ValueError: invalid literal for int() with base 10: '1p'

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

>>> set([1,2,3]) >>> tuple() (5, 6, 7) >>> list('привет') ['п', 'р', 'и', 'в', 'е', 'т'] 

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

>>> dict([[1,2], [3,4]]) >>> dict([(3,26), (4,44)])

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *