DamiRocK

Python: кавычки внутри строки и сообщение о ненайденном файле

Выводим сообщение с апострофом и двойными кавычками. Различаем ограничители строкового литерала, экранирование, пустую строку и пробел.

Строка и её запись

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

Задание источника

Нужно вывести сообщение:

The file "user's_config.json" was not found.

В нём есть и апостроф, и двойные кавычки. Один из рабочих вариантов использует внешние одинарные кавычки и экранирует внутренний апостроф:

print('The file "user\'s_config.json" was not found.')

Почему это работает

Двойные кавычки вокруг имени файла не конфликтуют с одинарными внешними. Последовательность \' обозначает один символ апострофа в содержимом, а не конец литерала. Обратный слеш в этом месте не выводится.

Альтернативная запись с внешними двойными кавычками экранирует двойные внутренние:

print("The file \"user's_config.json\" was not found.")

Обе программы дают один и тот же текст. Это разные записи одного значения, а не два разных сообщения.

Что проверить

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

Упражнение лишь печатает строку: оно не открывает, не ищет и не создаёт файл с указанным именем. Название файла здесь — учебные текстовые данные.

Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение сохранено; разбор адаптирован.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.