आप नहीं कर सकते। बैकस्लैश घुंघराले ब्रेसिज़ के अंदर दिखाई नहीं दे सकते हैं {}
; ऐसा करने में परिणाम 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)}"