Строки в Python: 12 задач на срезы и обработку текста

В задачах на строки важно определить не только получившийся текст, но и то, что именно выводит `print`. Строка печатается без окружающих её кавычек, а при выводе списка строк кавычки видны.

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

Что помнить о строковых операциях

Индексы начинаются с 0; в срезе правая граница исключена. Строки не изменяются на месте: например, `lower` и `replace` возвращают новую строку. Описание строковых операций есть в документации Python.

При записи ответа учитывайте каждую строку вывода и пробелы между словами. Не добавляйте кавычки к напечатанной строке только потому, что они стояли вокруг неё в коде.

Четыре разбора символов и преобразований

1. Первый и последний символы

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python s = ‘домик’ print(s[0]) print(s[-1])

«`

Индекс 0 выбирает первый символ, а −1 — последний. Два вызова `print` дают две строки.

«`text д к

«`

2. Срез внутри слова

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python s = ‘котёнок’ print(s[1:4])

«`

Берём символы с индексами 1, 2 и 3. Символ с индексом 4 в срез не входит.

«`text отё

«`

3. Пробелы по краям

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python s = ‘ снег ‘ print(s.strip())

«`

`strip()` убирает пробелы по краям строки. В результате печатается слово без начальных и конечных пробелов.

«`text снег

«`

4. Новый регистр и исходная строка

Предскажите точный вывод этого самостоятельного фрагмента Python 3.

«`python s = ‘ЗиМа’ print(s.lower()) print(s)

«`

Первый вызов выводит новую строку со строчными буквами. Переменная `s` по-прежнему содержит исходное написание, которое печатается второй строкой.

«`text зима ЗиМа

«`

Восемь задач на обработку текста

Предскажите точный вывод каждого самостоятельного фрагмента. Ключи находятся ниже всех условий.

5. Заглавные буквы

«`python s = ‘день’ print(s.upper())

«`

6. Подсчёт подстроки

«`python s = ‘снег снегирь’ print(s.count(‘снег’))

«`

7. Замена подстроки

«`python s = ‘дом домик’ print(s.replace(‘дом’, ‘сад’))

«`

8. Разделение по запятой

«`python s = ‘чай,сок,вода’ print(s.split(‘,’))

«`

9. Соединение слов

«`python words = [‘лес’, ‘снег’, ‘дом’] print(‘ / ‘.join(words))

«`

10. Проверка начала и конца

«`python s = ‘снежинка’ print(s.startswith(‘сне’)) print(s.endswith(‘ка’))

«`

11. Длина слова

«`python s = ‘зима’ print(len(s))

«`

12. Обратный порядок

«`python s = ‘лист’ print(s[::-1])

«`

Ответы к задачам 5–12

5. Результат `upper`

«`text ДЕНЬ

«`

`upper()` возвращает строку с заглавными буквами; именно она передана в `print`.

6. Два вхождения

«`text 2

«`

Подстрока «снег» есть и как отдельное слово, и внутри слова «снегирь». `count` в этом примере учитывает оба вхождения.

7. Замена двух частей

«`text сад садик

«`

Без указанного числа замен `replace` заменяет оба вхождения «дом», включая начало слова «домик». Исходная строка при этом не изменяется на месте.

8. Список после разделения

«`text [‘чай’, ‘сок’, ‘вода’]

«`

Запятая задана разделителем. Результат — список из трёх строк, поэтому в его выводе присутствуют скобки, кавычки и запятые.

9. Разделитель между элементами

«`text лес / снег / дом

«`

`join` вставляет строку ` / ` между соседними элементами. Пробелы с обеих сторон косой черты входят в разделитель.

10. Два истинных условия

«`text True True

«`

«Снежинка» начинается на «сне» и заканчивается на «ка». Оба результата истинны и выводятся в Python как `True`.

11. Четыре символа

«`text 4

«`

В этой строке четыре обычные кириллические буквы: з, и, м, а. Для неё `len(s)` возвращает 4.

12. Срез с отрицательным шагом

«`text тсил

«`

Шаг −1 перебирает символы этой строки с конца к началу: т, с, и, л.

Для знакомства ребёнка с другими возможностями обучения пригодится статья «Как научить ребёнка программированию бесплатно».