Манипуляция различными встроенными объектами Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/dictionaries("Dictionaries") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/strings -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/for_loops -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/lists -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/dictionaries -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/standard_libraries -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} python/data_collections -.-> lab-132391{{"Манипуляция различными встроенными объектами Python"}} end

Работа с числами в Python

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

Базовые арифметические операции

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

python3

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

>>> 3 + 4*5    ## Умножение имеет более высокий приоритет, чем сложение, поэтому сначала вычисляется 4*5, а затем результат прибавляется к 3
23
>>> 23.45 / 1e-02    ## Здесь используется научная нотация для 0.01. Выполняется деление для получения результата
2345.0

Целочисленное деление

Python 3 обрабатывает деление по - другому, чем Python 2. Понимание этих различий важно, чтобы избежать непредвиденных результатов в вашем коде.

>>> 7 / 4    ## В Python 3 обычное деление возвращает число с плавающей точкой, даже если результат может быть целым числом
1.75
>>> 7 // 4   ## Целочисленное деление (отбрасывает дробную часть) возвращает частное в виде целого числа
1

Методы чисел

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

>>> x = 1172.5
>>> x.as_integer_ratio()    ## Этот метод представляет число с плавающей точкой в виде дроби, что может быть полезно для некоторых математических вычислений
(2345, 2)
>>> x.is_integer()    ## Проверяет, является ли число с плавающей точкой целым числом. В данном случае 1172.5 не является целым числом, поэтому возвращается False
False

>>> y = 12345
>>> y.numerator    ## Для целых чисел числитель - это само число
12345
>>> y.denominator    ## Для целых чисел знаменатель всегда равен 1
1
>>> y.bit_length()    ## Этот метод показывает, сколько битов требуется для представления числа в двоичной системе, что может быть полезно при битовых операциях
14

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

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

>>> exit()

Работа со строками в Python

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

Создание и определение строк

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

python3

После открытия оболочки мы можем определить строку. В этом примере мы создадим строку, содержащую тикеры акций. Строка в Python может быть определена, заключив текст в одинарные (') или двойные (") кавычки. Вот как мы определяем нашу строку:

>>> symbols = 'AAPL IBM MSFT YHOO SCO'
>>> symbols
'AAPL IBM MSFT YHOO SCO'

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

Доступ к символам и подстрокам

В Python строки можно индексировать для доступа к отдельным символам. Индексация начинается с 0, то есть первый символ строки имеет индекс 0, второй - индекс 1 и так далее. Также поддерживается отрицательная индексация, где -1 относится к последнему символу, -2 - к предпоследнему и так далее.

Давайте посмотрим, как мы можем получить доступ к отдельным символам в нашей строке symbols:

>>> symbols[0]    ## Первый символ
'A'
>>> symbols[1]    ## Второй символ
'A'
>>> symbols[2]    ## Третий символ
'P'
>>> symbols[-1]   ## Последний символ
'O'
>>> symbols[-2]   ## Предпоследний символ
'C'

Мы также можем извлекать подстроки с помощью срезов. Срез позволяет получить часть строки, указав начальный и конечный индексы. Синтаксис среза: string[start:end], где подстрока включает символы от начального индекса до (но не включая) конечного индекса.

>>> symbols[:4]    ## Первые 4 символа
'AAPL'
>>> symbols[-3:]   ## Последние 3 символа
'SCO'
>>> symbols[5:8]   ## Символы с индексом от 5 до 7
'IBM'

Неизменяемость строк

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

Давайте попробуем изменить первый символ нашей строки symbols:

>>> symbols[0] = 'a'    ## Это вызовет ошибку

Вы должны увидеть ошибку следующего вида:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

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

Конкатенация строк

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

>>> symbols += ' GOOG'    ## Добавить новый тикер
>>> symbols
'AAPL IBM MSFT YHOO SCO GOOG'

>>> symbols = 'HPQ ' + symbols    ## Добавить новый тикер в начало
>>> symbols
'HPQ AAPL IBM MSFT YHOO SCO GOOG'

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

Проверка наличия подстроки

Для проверки наличия подстроки в строке мы можем использовать оператор in. Оператор in возвращает True, если подстрока найдена в строке, и False в противном случае.

>>> 'IBM' in symbols
True
>>> 'AA' in symbols
True
>>> 'CAT' in symbols
False

Обратите внимание, что 'AA' возвращает True, так как оно найдено в "AAPL". Это полезный способ поиска определенного текста в более длинной строке.

Методы строк

Строки в Python имеют множество встроенных методов, которые позволяют выполнять различные операции над строками. Эти методы - это функции, связанные с объектом строки, и их можно вызывать с помощью точечной нотации (string.method()).

>>> symbols.lower()    ## Преобразовать в нижний регистр
'hpq aapl ibm msft yhoo sco goog'

>>> symbols    ## Исходная строка остается неизменной
'HPQ AAPL IBM MSFT YHOO SCO GOOG'

>>> lowersyms = symbols.lower()    ## Сохранить результат в новой переменной
>>> lowersyms
'hpq aapl ibm msft yhoo sco goog'

>>> symbols.find('MSFT')    ## Найти начальный индекс подстроки
13
>>> symbols[13:17]    ## Проверить подстроку в этой позиции
'MSFT'

>>> symbols = symbols.replace('SCO','')    ## Заменить подстроку
>>> symbols
'HPQ AAPL IBM MSFT YHOO  GOOG'

Когда вы закончите экспериментировать, вы можете выйти из оболочки Python с помощью следующей команды:

>>> exit()

Работа со списками в Python

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

Создание списков из строк

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

python3

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

>>> symbols = 'HPQ AAPL IBM MSFT YHOO GOOG'
>>> symlist = symbols.split()    ## Разделить строку по пробелам
>>> symlist
['HPQ', 'AAPL', 'IBM', 'MSFT', 'YHOO', 'GOOG']

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

Доступ и изменение элементов списка

Как и строки, списки поддерживают индексацию. Индексация означает, что мы можем получить доступ к отдельным элементам списка по их позиции. В Python первый элемент списка имеет индекс 0, второй - индекс 1 и так далее. Мы также можем использовать отрицательную индексацию для доступа к элементам с конца списка. Последний элемент имеет индекс -1, предпоследний - индекс -2 и так далее.

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

>>> symlist[0]    ## Первый элемент
'HPQ'
>>> symlist[1]    ## Второй элемент
'AAPL'
>>> symlist[-1]   ## Последний элемент
'GOOG'
>>> symlist[-2]   ## Предпоследний элемент
'YHOO'

>>> symlist[2] = 'AIG'    ## Заменить третий элемент
>>> symlist
['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG']

Итерация по списку

Часто нам нужно выполнить одну и ту же операцию над каждым элементом списка. Для этого мы можем использовать цикл for. Цикл for позволяет пройти по каждому элементу списка по очереди и выполнить над ним определенное действие.

>>> for s in symlist:
...     print('s =', s)
...

При запуске этого кода вы увидите, что каждый элемент списка выводится с меткой s =.

s = HPQ
s = AAPL
s = AIG
s = MSFT
s = YHOO
s = GOOG

Проверка наличия элемента

Иногда нам нужно проверить, существует ли определенный элемент в списке. Для этого мы можем использовать оператор in. Оператор in возвращает True, если элемент находится в списке, и False, если его нет.

>>> 'AIG' in symlist
True
>>> 'AA' in symlist
False
>>> 'CAT' in symlist
False

Добавление и удаление элементов

Списки имеют встроенные методы, которые позволяют добавлять и удалять элементы. Метод append() добавляет элемент в конец списка. Метод insert() вставляет элемент в определенную позицию списка. Метод remove() удаляет элемент из списка по его значению.

>>> symlist.append('RHT')    ## Добавить элемент в конец
>>> symlist
['HPQ', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>> symlist.insert(1, 'AA')    ## Вставить в определенную позицию
>>> symlist
['HPQ', 'AA', 'AAPL', 'AIG', 'MSFT', 'YHOO', 'GOOG', 'RHT']

>>> symlist.remove('MSFT')    ## Удалить по значению
>>> symlist
['HPQ', 'AA', 'AAPL', 'AIG', 'YHOO', 'GOOG', 'RHT']

Если вы попытаетесь удалить элемент, который не существует в списке, Python выдаст ошибку.

>>> symlist.remove('MSFT')

Вы увидите сообщение об ошибке следующего вида:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

Мы также можем найти позицию элемента в списке с помощью метода index().

>>> symlist.index('YHOO')
4
>>> symlist[4]    ## Проверить элемент в этой позиции
'YHOO'

Сортировка списков

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

>>> symlist.sort()    ## Отсортировать в алфавитном порядке
>>> symlist
['AA', 'AAPL', 'AIG', 'GOOG', 'HPQ', 'RHT', 'YHOO']

>>> symlist.sort(reverse=True)    ## Отсортировать в обратном порядке
>>> symlist
['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']

Вложенные списки

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

>>> nums = [101, 102, 103]
>>> items = [symlist, nums]
>>> items
[['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA'], [101, 102, 103]]

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

>>> items[0]    ## Первый элемент (symlist)
['YHOO', 'RHT', 'HPQ', 'GOOG', 'AIG', 'AAPL', 'AA']
>>> items[0][1]    ## Второй элемент в symlist
'RHT'
>>> items[0][1][2]    ## Третий символ в 'RHT'
'T'
>>> items[1]    ## Второй элемент (список nums)
[101, 102, 103]
>>> items[1][1]    ## Второй элемент в nums
102

Когда вы закончите работу в интерактивной сессии Python, вы можете выйти из нее, введя:

>>> exit()

Работа со словарями в Python

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

Создание и доступ к словарям

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

python3

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

>>> prices = {'IBM': 91.1, 'GOOG': 490.1, 'AAPL': 312.23}
>>> prices
{'IBM': 91.1, 'GOOG': 490.1, 'AAPL': 312.23}

В первой строке мы создаем словарь с именем prices и присваиваем ему несколько пар ключ - значение. Ключами являются тикеры акций (IBM, GOOG, AAPL), а значениями - соответствующие цены. Вторая строка просто показывает нам содержимое словаря prices.

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

>>> prices['IBM']    ## Получить значение для ключа 'IBM'
91.1

>>> prices['IBM'] = 123.45    ## Обновить существующее значение
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'AAPL': 312.23}

>>> prices['HPQ'] = 26.15    ## Добавить новую пару ключ - значение
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'AAPL': 312.23, 'HPQ': 26.15}

В первой строке мы получаем значение, связанное с ключом IBM. Во второй и третьей строках мы обновляем значение для ключа IBM, а затем добавляем новую пару ключ - значение (HPQ с ценой 26.15).

Получение ключей словаря

Иногда вам может понадобиться получить список всех ключей в словаре. Существует несколько способов сделать это.

>>> list(prices)    ## Преобразовать ключи словаря в список
['IBM', 'GOOG', 'AAPL', 'HPQ']

Здесь мы используем функцию list() для преобразования ключей словаря prices в список.

Вы также можете использовать метод keys(), который возвращает специальный объект, называемый dict_keys.

>>> prices.keys()    ## Возвращает объект dict_keys
dict_keys(['IBM', 'GOOG', 'AAPL', 'HPQ'])

Получение значений словаря

Аналогично, вам может понадобиться получить все значения в словаре. Для этого вы можете использовать метод values().

>>> prices.values()    ## Возвращает объект dict_values
dict_values([123.45, 490.1, 312.23, 26.15])

Этот метод возвращает объект dict_values, который содержит все значения в словаре prices.

Удаление элементов

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

>>> del prices['AAPL']    ## Удалить запись с ключом 'AAPL'
>>> prices
{'IBM': 123.45, 'GOOG': 490.1, 'HPQ': 26.15}

Здесь мы удаляем пару ключ - значение с ключом AAPL из словаря prices.

Проверка наличия ключа

Для проверки наличия ключа в словаре вы можете использовать оператор in.

>>> 'IBM' in prices
True
>>> 'AAPL' in prices
False

Оператор in возвращает True, если ключ существует в словаре, и False в противном случае.

Методы словарей

Словари имеют несколько полезных методов. Рассмотрим несколько из них.

>>> prices.get('MSFT', 0)    ## Получить значение или значение по умолчанию, если ключа нет
0
>>> prices.get('IBM', 0)
123.45

>>> prices.update({'MSFT': 25.0, 'GOOG': 500.0})    ## Обновить несколько значений
>>> prices
{'IBM': 123.45, 'GOOG': 500.0, 'HPQ': 26.15, 'MSFT': 25.0}

Метод get() пытается получить значение, связанное с ключом. Если ключа нет, он возвращает значение по умолчанию (в данном случае 0). Метод update() используется для обновления нескольких пар ключ - значение в словаре сразу.

Когда вы закончите работу в интерактивной сессии Python, вы можете выйти из нее, введя:

>>> exit()

Резюме

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

Эти фундаментальные навыки являются основой для более продвинутого программирования на Python. Регулярная практика этих операций повысит вашу знакомство с встроенными типами данных Python.