Python3: Как я могу вернуть необработанную строку, содержащую как «, так и». Я не могу понять это даже с необработанной строкой (r'') и escape-символом (\)

Я недавно запустил python, и мне очень трудно понять, как напечатать необработанную строку, содержащую символы ' и ". Даже с различными комбинациями r'' и \ я не могу заставить python вернуть буквальную строку, которую я требовать.

Цель: Назначить переменной строку следующего формата (похожий формат для использования в качестве пароля). Строка: "1z8'aoVz1+9p}2C (строка из 16 символов, начинающаяся с " и содержащая ').

Текущий результат:

>>> string ='''"1z8'aoVz1+9p}2C'''
>>> string
    '"1z8\'aoVz1+9p}2C'

>>> string =r'"1z8\'aoVz1+9p}2C'
>>> string
    '"1z8\\\'aoVz1+9p}2C'

Я также попытался разбить его на несколько переменных и объединить, но python всегда возвращает \ перед '.

Спасибо за вашу помощь. Я многому научился на этом форуме.


person massey95    schedule 18.05.2020    source источник
comment
Ваша первая попытка (с тройными кавычками) работает   -  person user    schedule 18.05.2020
comment
Попробуйте print(string)  -  person deceze♦    schedule 18.05.2020
comment
Необработанная строка не является типом данных, и вы не можете ее вернуть. Это просто струны. Raw имеет смысл только со строковыми литералами, а затем он просто влияет на то, как анализируется строковый литерал.   -  person Chris    schedule 18.05.2020


Ответы (1)


Нет необходимости в необработанной строке:

string =""""1z8'aoVz1+9p}2C"""

Теперь, если вы сделаете это:

>>> string =""""1z8'aoVz1+9p}2C"""
>>> string

вы получите это:

'"1z8\'aoVz1+9p}2C'

но если вы распечатаете его, вы получите то, что хотите:

"1z8'aoVz1+9p}2C
person xilpex    schedule 18.05.2020