Top.Mail.Ru

Последовательности и строки

До этого мы с вами работали с отдельными значениями — числами, словами. Однако часто нам требуется целый набор значений. Для этого нам нужны составные типы данных — это такие типы, которые могут содержать в себе сразу много значений. Это как коробка, в которую можно положить разные вещи. В 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 ()

Удаляет пробелы (и другие «невидимые» символы) в начале и конце строки.
text = " привет! "
print(text.strip()) # привет!
Зачем нужно: очищать ввод пользователя, убирать лишние пробелы.

5. .split (sep)

Разбивает строку на части по разделителю sep, превращая их в список — набор отдельных элементов. Если он не указан, по умолчанию используется пробел. Если нужен другой разделитель, его следует записать в кавычках как аргумент метода.
text = "яблоко, банан, груша"
print(text.split(", ")) # ['яблоко', 'банан', 'груша']

text2 = "Пиши код каждый день"
print(text2.split()) # ['Пиши', 'код', 'каждый', 'день']
Зачем нужно: превращать строку в список слов или элементов.

Важно запомнить следующее:

  • Все эти методы работают только со строками и не изменяют исходную строку, а возвращают новую.
  • Их можно сочетать! Например: user_input = input ().strip ().lower ()

Конечно, перечисленные методы — это не все существующие методы. Остальные вы можете найти в документации.

Списки