Czy istnieje sposób na zadeklarowanie zmiennej łańcuchowej w Pythonie w taki sposób, że wszystko w niej jest automatycznie zastępowane lub ma wartość literału?
Ja nie pytając, jak uciec cytaty z ukośniki, to oczywiste. To, o co proszę, to ogólny sposób na zrobienie wszystkiego dosłownie w łańcuchu, tak żebym nie musiał ręcznie przechodzić przez wszystko i uciekać przed bardzo dużymi łańcuchami. Czy ktoś zna rozwiązanie? Dzięki!
a
będzie zawierała ciąg z dwoma znakami podziału wiersza?"
bez dobra, ponieważ cała rzecz zakończy się""""
błędem składniowym.Nie ma takiej rzeczy. Wygląda na to, że potrzebujesz czegoś takiego jak „tutaj dokumenty” w Perlu i powłokach, ale Python tego nie ma.
Używanie nieprzetworzonych ciągów lub ciągów wielowierszowych oznacza tylko, że jest mniej rzeczy, o które należy się martwić. Jeśli używasz nieprzetworzonego ciągu znaków, nadal musisz obejść terminal "\", a przy każdym rozwiązaniu typu string będziesz musiał martwić się o zamknięcie ", ',"' 'lub "" ", jeśli jest zawarte w twoich danych .
Oznacza to, że nie ma sposobu, aby mieć ciąg
' ''' """ " \
poprawnie przechowywane w dowolnym literale ciągu Pythona bez jakiegoś wewnętrznego znaku ucieczki.
źródło
Znajdziesz tutaj dokumentację literału tekstowego Pythona:
http://docs.python.org/tutorial/introduction.html#strings
i tu:
http://docs.python.org/reference/lexical_analysis.html#literals
Najprostszym przykładem byłoby użycie przedrostka „r”:
ss = r'Hello\nWorld' print(ss) Hello\nWorld
źródło
(Zakładając, że nie musisz wprowadzać ciągu bezpośrednio z kodu Pythona)
aby obejść problem wskazany przez Andrew Dalke, wystarczy wpisać dosłowny ciąg znaków do pliku tekstowego, a następnie użyć go;
input_ = '/directory_of_text_file/your_text_file.txt' input_open = open(input_,'r+') input_string = input_open.read() print input_string
Spowoduje to wydrukowanie dosłownego tekstu wszystkiego, co jest w pliku tekstowym, nawet jeśli tak jest;
' ''' """ “ \
Nie jest to zabawne ani optymalne, ale może być przydatne, zwłaszcza jeśli masz 3 strony kodu, które wymagałyby ucieczki znaków.
źródło
jeśli ciąg jest zmienną, użyj. metoda repr na nim:
>>> s = '\tgherkin\n' >>> s '\tgherkin\n' >>> print(s) gherkin >>> print(s.__repr__()) '\tgherkin\n'
źródło
repr(s)
zamiast tego dla lepszego stylu