मैं देखता हूं कि मैं ऐसा नहीं कर सकता:
"%b %b" % (True, False)
अजगर में। मैंने %bबी (ऑलियन) के लिए अनुमान लगाया । क्या ऐसा कुछ है?
मैं देखता हूं कि मैं ऐसा नहीं कर सकता:
"%b %b" % (True, False)
अजगर में। मैंने %bबी (ऑलियन) के लिए अनुमान लगाया । क्या ऐसा कुछ है?
जवाबों:
>>> print "%r, %r" % (True, False)
True, False
यह बूलियन मूल्यों के लिए विशिष्ट नहीं है - तर्क पर विधि को %rकॉल __repr__करता है। %s(for str) भी काम करना चाहिए।
%rऔर इसके बीच मुख्य अंतर क्या है %s?
print(str("foo"))केवल fooएक नई लाइन पर प्रिंट करता है। print(repr("foo"))हालाँकि 'foo', उद्धरण सहित एक नई लाइन पर प्रिंट करता है, क्योंकि आपको अजगर में तर्क के अनुरूप ऑब्जेक्ट प्राप्त करने के लिए अजगर इंटरप्रेटर में टाइप करने की आवश्यकता है।
आप स्ट्रिंग के फॉर्मैटर क्लास का भी उपयोग कर सकते हैं
print "{0} {1}".format(True, False);
print "{0:} {1:}".format(True, False);
print "{0:d} {1:d}".format(True, False);
print "{0:f} {1:f}".format(True, False);
print "{0:e} {1:e}".format(True, False);
ये परिणाम हैं
True False
True False
1 0
1.000000 0.000000
1.000000e+00 0.000000e+00
%-फॉर्म-टाइप टाइप के कुछ ( %r, %i) उपलब्ध नहीं हैं। विवरण के लिए प्रारूप विशिष्टता मिनी भाषा देखें
{:_^5}मिलेंगे, '__1__'तब तक ईजी आपको मिल जाएगा str(...)।
!s: '{!s:_^5}'.format(True)है'True_'
पायथन -3 के लिए इसे अपडेट करने के लिए आप ऐसा कर सकते हैं
"{} {}".format(True, False)
हालाँकि, यदि आप वास्तव में स्ट्रिंग को प्रारूपित करना चाहते हैं (उदाहरण के लिए सफेद स्थान जोड़ें), तो आप पायथन को अंतर्निहित सी मान (यानी एक इंट) में बूलियन का मुकाबला करते हैं, उदा।
>>> "{:<8} {}".format(True, False)
'1 False'
इसके चारों ओर जाने के लिए आप Trueएक स्ट्रिंग के रूप में डाल सकते हैं , जैसे
>>> "{:<8} {}".format(str(True), False)
'True False'