Задать вопрос
@danila_belyy
Поступил в ВУЗ, хочу понять суть программирования.

Почему дублируется слэш и не работают сырые строки?

Что это может быть?
Почему r-строки не работают?
Даже если я просто прописую:

string = '\\'

То получаю '\\'

А сырые строки так вообще - дублируют слэши....

Помогите, пожалуйста!!!!!

63f0b539058f9288912065.jpeg
  • Вопрос задан
  • 784 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
drygdryg
@drygdryg
Python-разработчик
Потому что в Python обратная косая черта — это специальный символ, применяемый для экранирования других символов. Поэтому обратная косая черта не может быть сама по себе, и если вы не используете сырые строки (r'\'), то если хотите написать обратную косую черту, вам нужно экранировать её такой же обратной косой чертой ('\\'). И когда вы вводите символ "\" через сырую строку, Python при выводе внутреннего представления этой строки (representation, repr.) экранирует этот символ, что видно на вашем скриншоте.
В официальной документации можно почитать об этом здесь: https://docs.python.org/3/reference/lexical_analys...
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Обрати внимание, как ты выводишь значение.
В питоне есть два строковых представления: str и repr.
str - человекочитаемое представление. Его можно увидеть, сделав просто print(path). Сразу станет видно, что ничего не удваивается.
repr, же, по идее, представляет объект так, что если его записать прямо в коде, как показано - получим обратно этот объект. Если это вообще возможно.
В случае с числами разницы нет.
В случае со строками - она будет. У тебя на скриншоте именно repr-представление строки - в кавычках, и с экранированием спецсимволов. При этом, записав такую константу, получишь ту же самую строку, что логично.
Ведь 'a\\b' - это то же самое, что и r'a\b'.

Короче, не парься, всё работает как надо. Просто имей ввиду, в каком виде у тебя выводятся значения. Кавычки должны были сразу заставить заподозрить неладное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы