Найти в Дзене

Основные примитивные структуры данных Python (с примерами)

Оглавление

Всем привет! Сегодня хочу поговорить про основы и базу любого языка программирования, про структуры данных. Структуры данных — это способ организации и хранения данных, обеспечивающий доступ и эффективную работу с ними. Что это означает? Это означает то, как именно мы можем хранить наши данные, как мы можем осуществлять взаимодействие между ними, какие операции можем выполнять (а какие не можем). Давайте приведу пример. У нас есть тип данных integer, мы можем хранить числа. Что мы можем делать с числами? Складывать, вычитать, умножать. Это методы типа int. Теперь давайте возьмем string, т.е. строку. Уже не получится проделать тоже самое, не так ли? Точнее, получится конечно, но строки будут работать немного по-другому.

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

Зачем нужно знать структуры данных?

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

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

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

Непримитивные: массивы, списки, кортежы, словари, стэки, очереди, графы, деревья, сеты, файлы.

-2

Примитивные структуры данных

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

  • Целые числа (Integer)
  • Числа с плавающей точкой (Float)
  • Строки (String)
  • Логические (булевы значения, Boolean)

Целые числа

Вы можете использовать целое число для представления числовых данных, а точнее, целых чисел от минус бесконечности до бесконечности, например 4, 5, 322 или -999999999999.

Числа с плавающей точкой

«Float» означает «число с плавающей точкой» (или плавающей запятой). Это удобная форма представления дробных чисел для компьютера, в которой число хранится в форме мантиссы и показателя степени. Вы можете использовать их для рациональных чисел, обычно заканчивающихся десятичной цифрой, например 1,11 или 3,14, или -999.999099.

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

Строки

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

Вы также можете применить операции сложения к двум или более строкам, чтобы объединить их, как в примере ниже:

Вот некоторые другие операции, которые вы можете выполнять со строками; Например, вы можете использовать символ умножения * для повторения строки определенное количество раз:

Вы также можете обрезать строки ("slicing"), что означает, что вы выбираете только необходимую и нужную вам часть строки:

Какая магия происходит здесь? Т.к. строки это грубо говоря массив символов, то мы можем явно извлекать символы, при обращении к конкретному элементу. Т.к. в переменной x хранится значение "Торт", то запись [2:] означает, что выполняем слайсинг со второго элемента и до конца (двоеточие означает все оставишеся элементы, если написать [:2], то все элементы ДО второго элемента). Все символы после 2-го элемента (включая и сам второй элемент) это "рт". В переменной y хранится "Печенье". y[0], т.е. первый(нулевой) элемент строки печенье это "П", y[1] это "е". И да, обратите внимание, что нумерация элементов начинается с нуля, как и во всем программировании. Нуль лайфс мэттерс.

Можем ли мы записать числа как строки? Можем. Операция сложения будет работать вот так:

То есть строки складываются, или на программистком - "конкатенируются" (concatenation).

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

Возвращаем количество символов в строке. Пробелы также учитываются:

Замена частей строк другими строками:

Поиск подстроки в строке. Например, мы хотим найти подстроку "дом" в строке "домовой". Подстрока "дом" находится в самом начале строки "домовой". В результате мы получаем позицию в файле домовой, с которой начинается наша подстрока. В этом случае возвращается 0, потому что мы начинаем считать позиции с 0. Т.е., еще раз, мы возвращаем номер элемента, с которого начинается наша подстрока, и в нашем случае это 0.

Логические (булевы значения, Boolean)

Булевы значения, это еще один встроенный тип данных, который может принимать только значения: True и False, что часто делает их взаимозаменяемыми с целыми числами 1 и 0. Значения типа boolen может принимать только эти два значение: истина и ложь.

  • 1 - True (истинно)
  • 0 - Flase (ложь)

Если мы передаем типу bool значения 0 или False, то выражение ложно. Чтобы сделать значение истинным, мы можем как явно передать 1 или True, так и любое другое значение, отличное от 0 или False. Смотрите:

Логические значения полезны в условных выражениях и выражениях сравнения. Например, мы пишем программу для автоматического кормления кота. Мы хотим кормить кота, только когда он голодный, и не кормить его, если он только что поел. Мы можем создать переменную, в которой будет храниться состояние статуса голода кота. Допустим, эта переменная называется hungry_cat (голодный кот). Если кот голоден, то мы ожидаем зачение True, если кот не голоден, то значит False. Мы хотим кормить кота только тогда, когда значение True:

Мы проверили, действительно ли кот голодный, и только после этого покормили и установили значение статуса голода кота на False.

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

Подписывайтесь, впереди много интересного. Также буду рад вашим комментариям, идеям и предложениям. 🐍

Наука
7 млн интересуются