2012-07-04 12 views
6

मैं निम्नलिखित दो पंक्तियों के बीच एक महत्वपूर्ण अंतर नहीं देख सकता।पाइथन बग - या मेरी मूर्खता - ईओएल स्ट्रिंग शाब्दिक स्कैनिंग

फिर भी पहले पार्स और बाद वाले, नहीं।

In [5]: n=""" \\"Axis of Awesome\\" """ 

In [6]: n="""\\"Axis of Awesome\\"""" 
    File "<ipython-input-6-d691e511a27b>", line 1 
    n="""\\"Axis of Awesome\\"""" 
           ^
SyntaxError: EOL while scanning string literal 

यह एक अजगर बग/सुविधा/विषमता है, या मैं कुछ मौलिक लापता है?

+1

बस का उपयोग ' '' '' 'बजाय" "" '' –

+0

\\ 'उद्धरण से बच नहीं पाएगा, क्योंकि यह एक बच निकला बैकस्लैश है। – katrielalex

उत्तर

9

पिछले चार उद्धरण चिह्न है, यानी स्ट्रिंग के अंत अर्थात एक नया स्ट्रिंग शाब्दिक की शुरुआत """ के रूप में पार्स कर रहे हैं, " द्वारा पीछा किया,। हालांकि, यह नया शाब्दिक कभी पूरा नहीं हुआ है। सरल उदाहरण:

>>> """foo""""bar" 
'foobar' 
>>> """foo""" "bar" 
'foobar' 

आप इस समस्या से बचने के लिए चाहते हैं, तो r' साथ """ बदलने के लिए या भागने ":

>>> """\\"Axis of Awesome\\\"""" 
'\\"Axis of Awesome\\"' 
>>> r'\"Axis of Awesome\"' 
'\\"Axis of Awesome\\"' 
+0

आर' अच्छा कामकाज के रूप में पार्स किया गया है –

0

आपके पिछले 4 उद्धरण चिह्नों का मूल्यांकन "" & "" के रूप में किया जा रहा है, जिन्हें आप " & """ के रूप में मूल्यांकन करने की उम्मीद कर रहे हैं।

"""\\"Axis of Awesome\\"""" 

में

+2

दरअसल, इसे '' '' '', ''' ' –

संबंधित मुद्दे