Rozważać:
>>> r"what"ever"
SyntaxError: invalid syntax
>>> r"what\"ever"
'what\\"ever'
Jak więc otrzymamy cytat, ale nie ukośnik?
I proszę nie sugerować r'what"ever'
, ponieważ wtedy pojawia się pytanie, w jaki sposób uwzględniamy oba rodzaje cytatów?
Odpowiedzi:
Jeśli chcesz używać podwójnych cudzysłowów w łańcuchach, ale nie pojedynczych cudzysłowów, możesz zamiast tego użyć pojedynczych cudzysłowów jako separatora:
r'what"ever'
Jeśli potrzebujesz obu rodzajów cudzysłowów w swoim ciągu, użyj ciągu z potrójnym cudzysłowem:
r"""what"ev'er"""
Jeśli chcesz uwzględnić oba rodzaje ciągów w potrójnym cudzysłowie (bardzo mało prawdopodobny przypadek), nie możesz tego zrobić i będziesz musiał używać nieprzetworzonych ciągów ze znakami ucieczki.
źródło
r"raw string"
i C #@"@-quoted string"
oraz"""triple quotes"""
r'what"ever"
to błąd analizy? Czy miałeś na myślir'what"ever'
?Python ma więcej niż jeden sposób tworzenia łańcuchów. Poniższa składnia łańcuchów pozwala na użycie cudzysłowów:
'''what"ever'''
źródło
Jeśli potrzebujesz dowolnego cytowania (pojedyncze, podwójne i potrójne dla obu), możesz „połączyć” (0) ciągi:
>>> raw_string_with_quotes = r'double"' r"single'" r'''double triple""" ''' r"""single triple''' """ >>> print raw_string_with_quotes double"single'double triple""" single triple'''
Możesz także „łączyć” (0) nieprzetworzone ciągi z nieprzetworzonymi ciągami:
>>> r'raw_string\n' 'non-raw string\n' 'raw_string\\nnon-raw string\n'
(0): W rzeczywistości parser Pythona łączy ciągi i nie tworzy wielu ciągów. Jeśli dodasz operator „+”, zostanie utworzonych i połączonych wiele ciągów.
źródło
Nieważne, odpowiedź to nieprzetworzone ciągi w potrójnych cudzysłowach:
r"""what"ever"""
źródło
Ponieważ natknąłem się na tę odpowiedź i bardzo mi to pomogło, ale znalazłem drobny problem składniowy, czułem, że powinienem oszczędzić innym możliwej frustracji. Łańcuch z potrójnym cudzysłowem działa w tym scenariuszu zgodnie z opisem, ale zwróć uwagę, że jeśli „żądane słowo” występuje na końcu samego ciągu:
somestr = """This is a string with a special need to have a " in it at the end""""
Wystąpi błąd podczas wykonywania, ponieważ "" "" (4) cudzysłowy w wierszu dezorientują czytnik ciągów, ponieważ myśli, że dotarł już do końca ciągu, a następnie znajduje losowe "". Możesz to sprawdzić wstawiając spację w 4 cudzysłowy, w ten sposób: "" "" i nie będzie błędu.
W tym szczególnym przypadku będziesz musiał użyć:
somestr = 'This.....at the end"'
lub użyj metody opisanej powyżej, budując wiele ciągów z mieszanymi znakami „i”, a następnie łącząc je po fakcie.
źródło
Wystarczy dołączyć nową funkcjonalność zgodną z Python f String:
var_a = 10 f"""This is my quoted variable: "{var_a}". """
źródło
f"foo\"bar"
.Posługiwać się:
dqote='"' sqote="'"
Użyj operatora „+”
dqote
isquote
zmiennych, aby uzyskać to, czego potrzebujesz.Jeśli chcę
sed -e s/",u'"/",'"/g -e s/^"u'"/"'"/
, możesz spróbować następujących rzeczy:dqote='"' sqote="'" cmd1="sed -e s/" + dqote + ",u'" + dqote + "/" + dqote + ",'" + dqote + '/g -e s/^"u' + sqote + dqote + '/' + dqote + sqote + dqote + '/'
źródło