Почему тип цитаты меняет значение строки? - Python

In[1] : '\"""'
Out[1]: '"""'

In[2] : "\""""
Out[2]: '"'

В следующих примерах (в которых я использую python 3), почему изменение типа цитаты, используемой для заключения строки, изменяет фактическое значение строки? Я ожидал, что "\""""=='\"""' будет правдой, но это ложь. И почему второй пример возвращает только одинарные двойные кавычки? Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
87
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Выражение "\"""" - это два строковых литерала, "\"" и "" (или '"' и '', переход на одинарные кавычки для ясности), соединенные вместе. Эквивалент '\"""' в двойных кавычках будет "\"\"\"".

>>> ("\""
... ""
... )
'"'
>>> "\"\"\""
'"""'

В [2] фактически две соседние строки, аналогичные "foo""bar".

"\"""" содержит первую строку "\"" и вторую строку "".

При оценке Python объединяет их:

In[1]: "foo""bar"
Out[1]: 'foobar'

В вашем случае, поскольку вторая строка пуста, вы просто получаете первую.

Python делает то же самое, что и C, с точки зрения конкатенации строк:

'hello' 'world'  ==  'helloworld'

То есть, если вы поместите два строковых литерала в кавычках рядом друг с другом и ничего между ними не будет, они будут объединены вместе. В этом разница между 1 и 2:

In[2] : "\""""  --> "\"" "" 

Таким образом, ваш второй ввод фактически объединяет строку " с пустой строкой.

Одиночная кавычка может заканчиваться только другой одинарной кавычкой,

следовательно, '\" не является строкой, а затем python ждет, пока другой ' завершит строку

поэтому '\"""' - это одна строка, а "\"""" - две строки, "\"" и ""

тогда результаты будут """, потому что python должен принимать \""" в строковом объекте, тогда как другой - это просто "с пустой строкой, объединенной

Надеюсь, мой ответ ясен, это непросто объяснить всеми этими кавычками

Другие вопросы по теме