До этого мы с вами работали с отдельными значениями — числами, словами. Однако часто нам требуется целый набор значений. Для этого нам нужны составные типы данных — это такие типы, которые могут содержать в себе сразу много значений. Это как коробка, в которую можно положить разные вещи. В Python к составным типам относятся, например, последовательности.
Последовательность — это набор элементов, которые идут друг за другом в определённом порядке. Все элементы в последовательности имеют свой номер (индекс) — можно обратиться к каждому по его порядковому номеру.
Зачем нужны последовательности?
Чтобы хранить сразу много значений в одной переменной.
Чтобы удобно работать с группой каких-то объектов, чисел или символов.
Чтобы быстро находить, менять, добавлять или убирать нужные элементы.
Отличительной чертой последовательностей является возможность индексации.
Индексация — это способ обратиться к отдельным элементам последовательности. Например, к символам строки.
Индекс — это номер, под которым символ хранится в строке, или элемент в другой последовательности.
Как работает индексация в Python?
Первый символ строки имеет индекс 0.
Второй — индекс 1.
Третий — 2.
И так далее.
Индекс надо записать в квадратных скобках непосредственно после объекта, из которого мы хотим извлечь элемент по порядковому номеру:
word = "Пирожок"
# П и р о ж о к
# 0 1 2 3 4 5 6
print(word[0]) # П - первый символ (начинается с нуля!)
print(word[3]) # о - четвертый символ (индекс = 3)
print(word[6]) # к - седьмой символ (индекс = 6)
Самая простая и уже знакомая для нас последовательность — это строка. Но строка в Python — это не просто набор букв. У каждой строки есть свои команды-помощники, которые называются методы. С помощью методов можно искать, менять или анализировать строку. Правда, строго говоря, именно менять строку мы не можем — мы лишь создаем на основе строки другую строку, потому что строки являются неизменяемыми.
Давайте рассмотрим примеры некоторых методов:
1. .lower ()
Преобразует все буквы строки в строчные (маленькие).
text = "ПрИвЕт, Мир!"
print(text.lower()) # привет, мир!
Зачем нужно: удобно для сравнения строк без учёта регистра.
2. .upper ()
Делает все буквы строки заглавными.
text = "Привет, мир!"
print(text.upper()) # ПРИВЕТ, МИР!
Зачем нужно: быстро приводить текст к одному виду.
3. .replace (old, new)
Заменяет в строке все вхождения подстроки old на new.
text = "Я люблю Python. Python — крутой язык!"
print(text.replace("Python", "Питон"))
# Я люблю Питон. Питон — крутой язык!
Зачем нужно: заменять слова или символы в строке.
4. .strip ()
Удаляет пробелы (и другие «невидимые» символы) в начале и конце строки.
Разбивает строку на части по разделителю sep, превращая их в список — набор отдельных элементов. Если он не указан, по умолчанию используется пробел. Если нужен другой разделитель, его следует записать в кавычках как аргумент метода.
text = "яблоко, банан, груша"
print(text.split(", ")) # ['яблоко', 'банан', 'груша']
text2 = "Пиши код каждый день"
print(text2.split()) # ['Пиши', 'код', 'каждый', 'день']
Зачем нужно: превращать строку в список слов или элементов.
Важно запомнить следующее:
Все эти методы работают только со строками и не изменяют исходную строку, а возвращают новую.
Их можно сочетать! Например: user_input = input ().strip ().lower ()
Конечно, перечисленные методы — это не все существующие методы. Остальные вы можете найти в документации.