पायथन में स्ट्रिंग को प्रारूपित करने के कम से कम छह तरीके हैं:
In [1]: world = "Earth"
# method 1a
In [2]: "Hello, %s" % world
Out[2]: 'Hello, Earth'
# method 1b
In [3]: "Hello, %(planet)s" % {"planet": world}
Out[3]: 'Hello, Earth'
# method 2a
In [4]: "Hello, {0}".format(world)
Out[4]: 'Hello, Earth'
# method 2b
In [5]: "Hello, {planet}".format(planet=world)
Out[5]: 'Hello, Earth'
# method 2c
In [6]: f"Hello, {world}"
Out[6]: 'Hello, Earth'
In [7]: from string import Template
# method 3
In [8]: Template("Hello, $planet").substitute(planet=world)
Out[8]: 'Hello, Earth'
विभिन्न तरीकों का संक्षिप्त इतिहास:
printf
-स्टाइल फॉर्मेटिंग पाइथन शैशवावस्था से ही आसपास रही हैTemplate
वर्ग अजगर 2.4 में पेश किया गया थाformat
विधि पायथन 2.6 में पेश किया गया थाf
पायथन 3.6 में पेश किए गए थे
मेरे प्रश्न हैं:
- क्या
printf
-स्टाइल फ़ॉर्मेटिंग को घटाया या घटाया जा रहा है? - में
Template class
,substitute
विधि पदावनत है या पदावनत होने वाली है? (मैं इस बारे में बात नहीं कर रहा हूंsafe_substitute
, जैसा कि मैं समझता हूं कि यह अद्वितीय क्षमता प्रदान करता है)
इसी तरह के सवाल और मुझे लगता है कि वे डुप्लिकेट नहीं हैं:
पायथन स्ट्रिंग प्रारूपण:% बनाम .फॉर्मैट - केवल 1 और 2 विधियों का इलाज करता है, और पूछता है कि कौन सा बेहतर है; मेरा प्रश्न स्पष्ट रूप से पायथन के ज़ेन के प्रकाश में चित्रण के बारे में है
स्ट्रिंग स्वरूपण विकल्प: पेशेवरों और विपक्ष - सवाल में केवल 1 ए और 1 बी के तरीकों का इलाज करता है, उत्तर में 1 और 2, और पदावनत के बारे में भी कुछ नहीं।
एडवांस्ड स्ट्रिंग फॉर्मेटिंग बनाम टेम्प्लेट स्ट्रिंग्स - ज्यादातर तरीकों 1 और 3 के बारे में है, और डेप्रिसिएशन को संबोधित नहीं करता है
स्ट्रिंग स्वरूपण अभिव्यक्तियाँ (पायथन) - उत्तर का उल्लेख है कि मूल '%' दृष्टिकोण को पदावनत करने की योजना है । लेकिन योजनाबद्ध , लंबित वंचन और वास्तविक वंचित होने की योजना के बीच क्या अंतर है ? और
printf
-स्टाइल पद्धति एक भी नहीं बढ़ाती हैPendingDeprecationWarning
, तो क्या यह वास्तव में पदावनत होने वाला है? यह पोस्ट भी काफी पुरानी है, इसलिए जानकारी पुरानी हो सकती है।
Formatter
कक्षा को भूल गए हैं ?