Искать
Вы превысили запрос на
0 знаков

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

Не пройден
0
0

Кратко

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

- В Python есть стандартные типы данных: числа, строки, списки, словари, кортежи, множества и логический тип данных.

- Python относится к языкам с неявной сильной динамической типизацией.

- Модель данных включает объекты, данные и отношения между ними.

- Операция присваивания в Python создает ссылку между переменной и объектом, который имеет тип, идентификатор и значение.

- Числа в Python могут выполнять различные математические операции и преобразования.

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

- Булевы значения являются самым примитивным типом данных в Python и могут принимать два значения: истинное или ложное.

- Неопределенный тип данных None может быть отнесен к отдельному типу данных и может сбрасывать переменную в исходное состояние.

Введение

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

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

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

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

Пример (none)
int a = 10;     

В Python объявить переменную очень просто:

Пример (python)
a = 10        

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

Пример (python)
a = "Hello"
a = 1        

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

Пример (python)
a = 10
print('Десять = ' + a)        

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

Пример (python)
a = 10
print('Десять = ' + str(a))        

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

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

Чтобы объявить переменную в языке Python, необходимо указать ее имя, поставить знак присваивания (=) и написать значение, которое будет сохранено в переменной. Пример:

Пример (python)
a = 10        

Переменной с именем a мы присвоили число десять. Целочисленное число десять является объектом, как и все в Python: числа, строки, списки и т.д. Объект является абстракцией данных. Данные – это не только объекты, но и отношения между ними. Объект состоит из трех частей: тип, идентификатор и значение.

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

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

Пример (python)
import keyword
keyword.iskeyword("for") # => True        

Рассмотрим следующий пример, чтобы лучше понять, как работает присвоение в Python:

Пример (python)
a = 5
b = 10
print(id(a)) # => 140732499849616
print(id(b)) # => 140732499849776

a = b
print(id(a)) # => 140732499849776 

Мы используем функцию id, чтобы определить идентификатор, на который ссылается переменная. Не привязывайтесь к конкретным числам, у вас они будут другими. Обратите внимание, что после присвоения поменялся идентификатор, на который ссылается переменная. Мы об этом еще вспомним, когда будем говорить про копирование списков. А еще вспомним, когда будем знакомиться с аргументами и параметрами функций в Python.

Чтобы узнать тип переменной, воспользуйтесь функцией type():

Пример (python)
a = 5
print(type(a)) # => <class 'int'> 

Теперь вы готовы к разбору конкретных типов данных в Python.

Числа

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

Пример (python)
a = 5 + 6
b = (4 * 6) + 12
c = 2 ** 16 # возведение в степень
d = 3 / 2 # => 1.5 

При помощи функции round() можно округлять результат до определенного знака:

Пример (python)
d = 10 / 6
print(round(d, 5)) # => 1.66667 

Остаток от деления можно найти при помощи оператора %:

Пример (python)
d = 10 % 6
d # => 4        

Числа можно сравнивать между собой:

  • a == b – проверяет, равны ли оба операнда и возвращает истину, если это так;
  • a != b – проверяет, равны ли оба операнда и возвращает истину, если они различны;
  • a > b – возвращает истину, если левый операнд (a), больше правого операнда (b);
  • a < b – возвращает истину, если левый операнд (a), меньше правого операнда (b);
  • a >= b – возвращает истину, если левый операнд (a), больше или равен правому операнду (b);
  • a <= b – возвращает истину, если левый операнд (a), меньше или равен правому операнду (b).

Пример (python)
print(10 > 5) # => True
# и так далее…        

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

Пример (python)
a = '100'
b = int(a)
print(type(a)) # => <class 'str'>
print(type(b)) # => <class 'int'> 

Чтобы получить двоичное или шестнадцатеричное значение числа, используются функции bin() и hex(), соответственно. Кстати, результат является строкой:

Пример (python)
a = 16
print(bin(a)) # => 0b10000
print(hex(a)) # => 0x10        

Так же вы можете комбинировать операции и функции как угодно:

Пример (python)
a = bin(int('100') + 20)
print(a) # => 0b1111000        

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

Пример (python)
import math
print(math.sqrt(10))        

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

Строки

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

Пример (python)
a = 'Hello'
a = "Hello"
a = """
Несколько
Строк
""" 

Строки можно складывать (конкатенировать) в одну. О конкатенации мы поговорим позже в теме про списки.

Пример (python)
a = 'Hello '
b = "World"
print(a + b) # => Hello World 

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

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

Пример (python)
a = 'Hello'
print(a[0]) # => H    

Так же можно обратиться к последнему символу, если использовать отрицательное значение. Про обратное индексирование еще вспомним в теме про списки.

Пример (python)
a = 'Hello'
print(a[-1]) # => o        

В Python возможно сделать срез строки (про срезы будем говорить подробнее позднее):

Пример (python)
a = 'Hello'
print(a[0:3]) # => Hel
print(a[1:]) # => ello
print(a[-3:]) # => llo
print(a[::2]) # => Hlo 

Чтобы посчитать количество символов в строке (или количество элементов в списке), используйте функцию len():

Пример (python)
a = 'Hello'
print(len(a)) # => 5
 

Уже не раз звучали понятия «функция» и «метод». В чем разница? Как правило, метод привязан к объекту конкретного типа, а функция является более универсальной и может быть применена к объектам разного типа. Более подробно о функциях узнаете позднее.

Про форматирование строк вы узнаете в следующем уроке.

Булевы значения

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

К истинным значениям в Python относятся:

  • любое число не равно нулю;
  • любая непустая строка;
  • любой непустой объект.

К ложным значениям в Python относятся:

  • ноль (0);
  • None;
  • пустая строка;
  • пустой объект.

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

Пример (python)
list_a = [1, 2, 3]
list_b = []
num_a = 0
str_a = ''

print(bool(list_a)) # => True
print(bool(list_b)) # => False
print(bool(num_a)) # => False
print(bool(str_a)) # => False 

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

Неопределенный тип данных None

Неопределенное значение None можно отнести к отдельному типу данных. Если присвоить значение None переменной, то она будет сброшена в исходное состояние.

Списки, словари, кортежи и множества

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

Список – это последовательность разделенных запятой элементов и обрамленная квадратными скобками, например:

Пример (python)
a = [1, 2, 3, 4, 5]
b = ["Hello", 1, 2, a]        

Кстати, такая форма создания списков (и не только) называется литеральная. Литерал в программировании – это выражение, которое создает объект.

Словарь – это упорядоченный тип данных, в котором значения хранятся в виде ключ/значение. В других языках программирования он может называться ассоциативным массивом. Выглядит он так:

Пример (python)
c = {
    1: "Один",
    2: "Два"
} 

Обратите внимание, словарь в Python задается в фигурных скобках.

Кортеж – это тот же список, но только неизменяемый. Он выглядит так:

Пример (python)
d = (1, 2, 3)        

То есть элементы в кортеже помещаются в круглые скобки.

Множество – неупорядоченный список уникальных элементов. Например:

Пример (python)
e = {1, 1, 1, 2, 2, 3}
e # => {1, 2, 3}        

Элементы множества записываются в фигурных скобках через запятую.

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

В следующем уроке подробно разберемся с форматированием строк в Python. Познакомимся с методами форматирования строк и выберем удобный для себя.

Тест

Две секундочки...

Похожие уроки Codebra

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Итоги раздела «Самые основы Python»Знакомство с Python
Первое знакомство с PythonЗнакомство с Python
Написание модулей в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Пользовательские функции в PHPКурс по PHP
Введение в раздел «Структуры данных в Python»Знакомство с Python
Итоги раздела «Структуры данных в Python»Знакомство с Python
Погружение в PythonЗнакомство с Python
Основы функций в PythonЗнакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

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

Удачи в обучении!

Закрыть окно