В этом модуле мы погрузимся в работу со строками в Python, изучая два фундаментальных механизма: индексацию и срезы. Вы узнаете, как получать доступ к отдельным символам строки, используя положительные и отрицательные индексы, а также как извлекать подстроки (части строк) с помощью срезов. Мы разберем синтаксис квадратных скобок, научимся переворачивать строки задом наперед и избегать распространенных ошибок выхода за пределы диапазона. Эти навыки необходимы для любой обработки текстовых данных, от парсинга файлов до анализа веб-страниц.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Создание и конкатенация строк.
- Индексация и срезы строк.
- Методы split() и join().
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Индексация: Начало отсчета
В Python индексация начинается с нуля. Посмотрите на код и определите, какой символ будет выведен на экран.
word = "PYTHON"
print(word[1])Доступ к последнему символу
Используйте отрицательную индексацию, чтобы вывести **последний** символ строки `file_name`. Не используйте функцию `len()`.
file_name = "script.py"
last_char = file_name[input1S]
print(last_char)Исправьте синтаксис индексации
Программист попытался получить третий символ строки, но перепутал тип скобок. Исправьте ошибку в коде.
s = "Indexing"char = s(2)print(char)Индекс и длина строки
Дан код. Вычислите, какое число будет выведено на экран.
s = "Start"
index = len(s) - 2
print(index)Сопоставьте срез и результат
Дана строка `text = "0123456789"`. Сопоставьте код среза с результатом, который он вернет.
text[:]text[:4]text[7:]text[3:6]Шаг в срезах
Заполните пропуски, чтобы получить указанные результаты из строки `alphabet`. Используйте параметр шага (step).
alphabet = "ABCDEFG"
# 1. Взять каждый второй символ ('ACEG')
print(alphabet[::input1S])
# 2. Перевернуть строку ('GFEDCBA')
print(alphabet[::input2S])Проверка на палиндром
Соберите код, который проверяет, является ли слово палиндромом (читается одинаково слева направо и справа налево). Переменная `word` уже задана ("LEVEL"). Обратите внимание: одна строка содержит ошибку в срезе и является лишней.
if word == word[::-1]:if word == word[1::]: print("Palindrome")word = "LEVEL"else: print("Not palindrome")Допустимые операции и ошибки
Распределите выражения по двум категориям: те, что вернут результат (строку или символ), и те, что вызовут ошибку `IndexError`.
Контекст: `s = "Data"`. (Длина строки 4, индексы 0, 1, 2, 3).
s[0]s[3]s[4]s[10:20]s[-1]s[-5]Сложный срез
Что выведет следующий код? Внимательно проследите за индексами начала, конца и шагом.
# 0123456789
s = "abcdefghij"
print(s[1:8:2])