मैं विंडोज पर काम कर रहा हूं और मेरे पास पायथन 3.9 है। मेरी लिपि में मैं एक स्ट्रिंग को कई पंक्तियों के साथ एफ-स्ट्रिंग के रूप में बना रहा हूं:

XY="multiline"
MY_F_STRING = f'''my
{XY}
f-string
ends
here.'''

भले ही मेरा संपादक एमआईटी को बताता है कि फ़ाइल में लाइन एंडिंग डॉस स्टाइल है (\r\n) और डिस्क पर बाइट्स को देखकर मुझे सीआरएलएफ के लिए संबंधित हेक्स कोड दिखाई देता है, MY_F_STRING का repr बताता है मुझे लगता है कि लाइन के अंत यूनिक्स शैली (\ n) हैं।

मेरा प्रश्न है: क्या यह अपेक्षित व्यवहार है? इसके बारे में सामान्य नियम क्या है?

-2
Matthias 20 अक्टूबर 2020, 21:29

1 उत्तर

सबसे बढ़िया उत्तर

पायथन अपनी स्रोत फ़ाइलों को "यूनिवर्सल न्यूलाइन" टेक्स्ट मोड में पढ़ता है, सभी सामान्य नई लाइनों के प्रारूपों का अनुवाद केवल \n में करता है। यदि आप अपनी एफ-स्ट्रिंग में विशिष्ट न्यूलाइन चाहते हैं, तो एस्केप कोड का उपयोग करें, उदा। s = f'my\nf-string\r\nhas\rdifferent newlines'.

PEP 278 को भी देखें। यूनिवर्सल न्यूलाइन्स विभिन्न OSes पर लिखी गई Python लिपियों को अन्य OSes पर बिना रुके और लगातार काम करने की अनुमति देती है। क्या आप चाहते हैं कि लिनक्स बनाम विंडोज़ पर चलने पर आपकी स्ट्रिंग स्थिरांक सामग्री को बदल दे?

0
Mark Tolonen 21 अक्टूबर 2020, 08:52