JavaRush /Курсы /Модуль 1: Python Core /Продвинутая работа со строками

Продвинутая работа со строками

Модуль 1: Python Core
6 уровень , 8 лекция
Открыта

9.1 Объявления строк

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

Основные способы объявления строк

  1. Одинарные кавычки: string = 'Привет, дружище!'
  2. Двойные кавычки: string = "Привет, дружище!"

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

Многострочные строки

Для объявления многострочных строк используются тройные кавычки. Это может быть тройные одинарные (''') или тройные двойные кавычки ("""). Такой способ удобен для текста, занимающего несколько строк:


multiline_string = """Первая строка
вторая строка
третья строка"""
        

Экранирование символов

В Python символы в строках могут быть экранированы с помощью обратного слэша (\). Это позволяет вставлять специальные символы, такие как новая строка (\n), табуляция (\t), или сам обратный слэш (\\).


escaped_string = "Он сказал: \"Привет, дружище!\""
        

Более подробно мы рассмотрим экранирование на пару лекций ниже.

Сырые строки

Сырые строки (raw string) — это строки, в которых экранирование символов отключено. Они объявляются с префиксом r:


raw_string = r"В этой строке \n не считается переводом строки."
        

Форматирование строк

Python предлагает несколько методов для форматирования строк. Самый мощный из них — f-строки, доступные начиная с Python 3.6. Они позволяют встраивать выражения Python прямо в строку:


name = "Мир"
formatted_string = f"Привет, {name}!"
        

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

Строки можно создавать объединив несколько строк, используя оператор «+» или метод join() для более сложных случаев:


greeting = "Привет, " + "дружище!"
        

Неизменяемость (иммутабельность) строк

Помните, что строки в Python являются неизменяемыми. Это означает, что любые операции, модифицирующие строку, фактически создают новую строку.

9.2 Вложенные кавычки

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

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


escaped_string = "Он сказал: "Привет, мир!"… "
        

А вот что видит Python:


escaped_string = "Он сказал: "Привет, мир!"… "
        

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

Использование различных типов кавычек

Python позволяет использовать как одинарные ('), так и двойные (") кавычки для определения строк. Это дает возможность вкладывать один тип кавычек внутри другого:


quote = "He said, 'Hello, world!'"
# or
quote = 'He said, "Hello, world!"'
        

Экранирование кавычек

Когда нужно использовать одинаковые кавычки внутри строки, можно воспользоваться символом обратной косой черты (\) для экранирования кавычек:


quote = "He said,\"Hello, world!\" "
        

Многострочные строки

Для создания многострочных строк, содержащих вложенные кавычки, удобно использовать тройные кавычки (''' или """):


multiline_quote = """This is a long quote that contains multiple types of quotation marks: "double quotes" and 'single quotes'. It spans multiple lines."""
        
2
Задача
Модуль 1: Python Core, 6 уровень, 8 лекция
Недоступна
Многострочность.
Многострочность.
2
Задача
Модуль 1: Python Core, 6 уровень, 8 лекция
Недоступна
Экранирование
Экранирование
Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 1
27 июня 2025
Валидатор на второе задание поломан в край. Хз чем ему не нравились экранированные кавычки в моих примерах, принял только свой пример из решения.
Jdhd Djdhdj Уровень 26
8 августа 2025
сколько по времени заняло прохождение до 53 уровня ?
Slevin Уровень 1
8 августа 2025
Идет второй месяц подписки на курс, Начал я 20го числа, так что где-то полтора месяца ± немного. Но у меня был некоторый багаж. Я до этого самостоятельно и по книге ковырялся, и с ЧатомГПТ тоже, так что первые уровней 15 (базовый синтаксис) я очень быстро пролетел по несколько уровней за день. Плюс образование у меня Айтишное, хотя и программистом я никогда ранее не был и учиться по сути пришлось практически с нуля (ну общее понятие о том что такое алгоритмы, как пишутся строчки кода и как компьютер их читает). Так что я бы сказал месяца 3-4 наверное, если вообще без каких-то знаний. Другое дело, что только по этому курсу может быть сложно, некоторые темы начальные тут даются в.. "весьма странном формате" Рекомендую книгу "Python Crash Course, 3rd Edition". Обучаясь только по ней(еще до этого курса), смог написать скрипт для парсинга (я тогда этого слова даже не знал) огромных файлов с заменой нескольких критически важных элементов в определенных строчках, для сис-админов Норвежского Бюро Статистики. Говорят до этого пытались написать его через ЧатГПТ но не смогли объяснить ему условия. Я считаю, это хорошей рекомендацией для книги, которая позволила мне это сделать всего за месяц чтения и практики.
Jdhd Djdhdj Уровень 26
9 августа 2025
Спасибо за ответ. Книгу возьму после того как "Изучаем Python" Марка Лутца прочитаю, а то давно брал и никак не хватает дисциплины полностью прочитать. Ситуация схожая с твоей, только я в начале пути)
Slevin Уровень 1
10 августа 2025
там по сути основы синтаксиса и пример трех проектов, одной игры на pygame, нах не надо в принципе, какого-то сетевого приложения и работы с API - если это освоишь - книгу можно и не брать. Другое дело что она бывает в электронной форме, может 2е издание - можно полистать и понять, надо оно вам или нет. Ну и у меня она на английском, хз есть ли перевод, я в Ирландии брал
Aleksandra Tribun Уровень 14
3 февраля 2025
в задании обрати внимание на И : Программа должна создать строку, содержащую вложенные кавычки с использованием различных типов кавычек (одинарные и двойные). И при выводе на экран все три переменных должны быть со своим print
Zlopyhatel Уровень 0
29 января 2025
Никакой код во второй задаче не отрабатывает, исправьте уже
FXINC Уровень 13
24 января 2025
Во второй задаче странный глюк, сделал все как в "правильном решении", но получил ошибку в итоге добавил еще дополнительный вариант, только после этого прошло, решение засчиталось, но не все галочки позеленели: Мой вариант, который прошел: s1 = 'Вот "кавычки"' s2 = "Вот 'кавычки'" s3 = "Еще \"кавычки\"" print(s1) print(s2) print(s3) Тогда почему этот не прошел: s1 = 'Вот "кавычки"' s2 = "Еще \"кавычки\"" print(s1) print(s2)
Олег Е Уровень 90
23 января 2025
Конкатенация строк Строки можно создавать объединив несколько строк, используя оператор «+» или метод join() для более сложных случаев: greeting = "Привет, " + "дружище!" ************************************************************************** Вопрос к авторам курса! Если пишите один метод с примером, то и напишите второй пример использования к join(), чтобы было понятнее как используется и второй метод в добавок к первому. Спасибо!
Евгений Уровень 9
7 сентября 2024
вторая задача не прошла проверку из-за орфографической ошибки в названии переменной. При этом все работало.