2011-12-20 7 views
25

मैं अजगर में एक बहुत लंबा स्ट्रिंग है:पायथन में एक लंबी स्ट्रिंग कैसे घोषित करें?

long_string = ' 
this is a really 
really 
really 
long 
string 
' 

हालांकि, बाद से स्ट्रिंग कई पंक्तियों तक फैला, अजगर यह एक स्ट्रिंग के रूप को नहीं पहचानता। मैं यह कैसे तय करुं?

+1

इसे '"" "..." "" में रखें। '" "" लंबी अवधि वाली स्ट्रिंग "" " – khachik

+0

डॉक स्ट्रिंग्स के लिए आरक्षित ट्रिपल कोट्स नहीं हैं? – ffledgling

+2

@ffledgling यह मल्टीलाइन तारों के लिए आरक्षित है, जिसका उपयोग डॉक्टर स्ट्रिंग – Winand

उत्तर

32
long_string = ''' 
this is a really 
really 
really 
long 
string 
''' 

""" वही काम करता है।

+3

के लिए किया जाता है, जहां स्ट्रिंग की रेखाओं को इंडेंट करने से कोड अधिक पठनीय हो जाता है, तो आप परिणामस्वरूप स्ट्रिंग में इंडेंटेशन को हटाने के लिए 'dedent' का उपयोग कर सकते हैं। – IanS

20

आप या तो

long_string = 'fooo' \ 
'this is really long' \ 
'string' 

उपयोग कर सकते हैं या यदि आप लाइनब्रेक जरूरत

long_string_that_has_linebreaks = '''foo 
this is really long 
''' 
+4

इसके अलावा, आपके पहले विकल्प के लिए यदि आपके पास स्ट्रिंग के चारों ओर कोष्ठक हैं तो आपको बैकस्लाश की आवश्यकता नहीं है। हालांकि स्ट्रिंग concatenation का उपयोग करने के साथ बड़ी कमी ध्यान दें: जब तक कि आप रिक्त स्थान के बारे में वास्तव में सावधान नहीं हैं, आप 'fooothis' के साथ समाप्त हो सकता है '' वास्तव में लंबे समय तक '' 'जो शायद आप नहीं चाहते थे। – Duncan

66

तुम भी आप स्ट्रिंग के अंदर खाली स्थान के स्थान पर बेहतर नियंत्रण है, क्योंकि जो अच्छा है यह कर सकते हैं,:

long_string = (
    'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' 
    'sed do eiusmod tempor incididunt ut labore et dolore magna ' 
    'aliqua. Ut enim ad minim veniam, quis nostrud exercitation ' 
    'ullamco laboris nisi ut aliquip ex ea commodo consequat. ' 
    'Duis aute irure dolor in reprehenderit in voluptate velit ' 
    'esse cillum dolore eu fugiat nulla pariatur. Excepteur sint ' 
    'occaecat cupidatat non proident, sunt in culpa qui officia ' 
    'deserunt mollit anim id est laborum.' 
) 
+2

दरअसल, यह उन चीजों में से एक है जब मैं एक तत्व के साथ एक टुपल बनाना चाहता था;) – plaes

+0

ऐसा लगता है कि आपको किसी भी मूल्यांकन मूल्य की आवश्यकता नहीं है, जो स्ट्रिंग नहीं है। आम तौर पर मेरे लिए, एक स्ट्रिंग में जटिल डेटा को इंपोड करने के लिए सूची समझ का उपयोग करते समय; और मुझे इस स्ट्रिंग परिभाषा शैली के साथ ऐसी अभिव्यक्ति को गठबंधन करने का कोई तरीका नहीं मिला है। :( – ThorSummoner

+0

आप long_string = textwrap.dedent ('' 'प्रत्येक पंक्ति इंडेंट के साथ लंबी स्ट्रिंग' '' का भी उपयोग कर सकते हैं) https://docs.python.org/3/library/textwrap.html#textwrap.dedent – moorecm

4

मैं इसे इस तरह काम करने में भी सक्षम था।

long_string = '\ 
this is a really \ 
really \ 
really \ 
long \ 
string\ 
' 

मुझे बहु-लाइन स्ट्रिंग बनाने के इस तरीके से कोई ऑनलाइन संदर्भ नहीं मिल रहा है। मुझे नहीं पता कि यह सही है या नहीं। मेरा संदेह यह है कि पाइथन बैकस्लैश की वजह से नई लाइन को अनदेखा कर रहा है? शायद कोई इस पर प्रकाश डाल सकता है।

+1

इसके अलावा, सब्लिमे टेक्स्ट (3114 बिल्ड) को इस पर प्रकाश डालने वाले वाक्यविन्यास में परेशानी होती है। –

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