आप नहीं कर सकते। बैकस्लैश घुंघराले ब्रेसिज़ के अंदर दिखाई नहीं दे सकते हैं {}; ऐसा करने में परिणाम SyntaxError:
>>> f'{\}'
SyntaxError: f-string expression part cannot include a backslash
यह पीईपी में एफ-स्ट्रिंग्स के लिए निर्दिष्ट है :
बैकस्लैश एफ-स्ट्रिंग्स के अभिव्यक्ति भागों के अंदर प्रकट नहीं हो सकते हैं, [...]
एक विकल्प '\n'एक नाम पर भरोसा कर रहा है और फिर .joinउस पर f-स्ट्रिंग के अंदर ; यह शाब्दिक का उपयोग किए बिना है:
names = ['Adam', 'Bob', 'Cyril']
nl = '\n'
text = f"Winners are:{nl}{nl.join(names)}"
print(text)
का परिणाम:
Winners are:
Adam
Bob
Cyril
एक अन्य विकल्प, जैसा कि @wim द्वारा निर्दिष्ट है, वापस chr(10)आने के लिए उपयोग करना है \nऔर फिर वहां शामिल होना है।f"Winners are:\n{chr(10).join(names)}"
फिर भी, एक और, '\n'.joinपहले से है और फिर उसके अनुसार नाम जोड़ें:
n = "\n".join(names)
text = f"Winners are:\n{n}"
जिसके परिणामस्वरूप एक ही आउटपुट मिलता है।
ध्यान दें:
यह f-strings और के बीच छोटे अंतरों में से एक है str.format। उत्तरार्द्ध में, आप हमेशा दिए गए विराम चिह्नों का उपयोग कर सकते हैं जो कि एक संबंधित निराला हुकुम अनपैक्ड है जिसमें वे कुंजियाँ हैं:
>>> "{\\} {*}".format(**{"\\": 'Hello', "*": 'World!'})
"Hello World!"
(कृपया ऐसा न करें।)
पूर्व में, विराम चिह्न की अनुमति नहीं है क्योंकि आपके पास उनका उपयोग करने वाले पहचानकर्ता नहीं हो सकते हैं।
इसके अलावा: मैं निश्चित रूप से printया के लिए विकल्प चुनूंगा format, क्योंकि अन्य उत्तर विकल्प के रूप में सुझाते हैं। आपके द्वारा दिए गए विकल्प केवल तभी लागू होते हैं यदि आपको किसी कारण से f-strings का उपयोग करना चाहिए ।
सिर्फ इसलिए कि कुछ नया है, इसका मतलब यह नहीं है कि आपको कोशिश करनी चाहिए और इसके साथ सब कुछ करना चाहिए ;-)
f"Winners are:\n{chr(10).join(names)}"