pprint मॉड्यूल (lib/pprint.py) पायथन के मानक पुस्तकालय का एक हिस्सा है जिसे मानक पायथन वितरण के साथ वितरित किया जाता है। पप्रिंट नाम का मतलब सुंदर प्रिंटर है। pprint मॉड्यूल की कार्यक्षमता पायथन डेटा संरचनाओं के सौंदर्य की दृष्टि से अच्छी दिखने में सक्षम बनाती है। कोई भी डेटा संरचना जिसे पायथन दुभाषिया द्वारा सही ढंग से पार्स किया जा सकता है, वह सुंदर रूप से स्वरूपित है। फ़ॉर्मेट किए गए व्यंजक को यथासंभव एक पंक्ति में रखा जाता है, लेकिन यदि लंबाई स्वरूपण के चौड़ाई पैरामीटर से अधिक हो जाती है, तो कई पंक्तियों में टूट जाती है। पीप्रिंट आउटपुट की एक अनूठी विशेषता यह है कि डिक्शनरी को डिस्प्ले रिप्रेजेंटेशन को फॉर्मेट करने से पहले स्वचालित रूप से सॉर्ट किया जाता है।
पप्रिंट मॉड्यूल में प्रीटीप्रिंटर क्लास की परिभाषा है। इसका कंस्ट्रक्टर निम्नलिखित प्रारूप लेता है -
pprint.PrettyPrinter(इंडेंट, चौड़ाई, गहराई, स्ट्रीम, कॉम्पैक्ट)
इंडेंट पैरामीटर प्रत्येक पुनरावर्ती स्तर पर जोड़े गए इंडेंटेशन को परिभाषित करता है। डिफ़ॉल्ट 1 है।
डिफ़ॉल्ट रूप से चौड़ाई पैरामीटर 80 है। वांछित आउटपुट इस मान द्वारा प्रतिबंधित है। यदि लंबाई चौड़ाई से अधिक है, तो इसे कई पंक्तियों में तोड़ा जाता है।
गहराई पैरामीटर मुद्रित किए जाने वाले स्तरों की संख्या को नियंत्रित करता है।
स्ट्रीम पैरामीटर डिफ़ॉल्ट रूप से std.out है - डिफ़ॉल्ट आउटपुट डिवाइस। यह फ़ाइल जैसी कोई भी स्ट्रीम ऑब्जेक्ट ले सकता है।
कॉम्पैक्ट पैरामीटर आईडी डिफ़ॉल्ट रूप से गलत पर सेट है। अगर सही है, तो केवल चौड़ाई के भीतर समायोज्य डेटा प्रदर्शित किया जाएगा।
प्रिटीप्रिंटर वर्ग निम्नलिखित विधियों को परिभाषित करता है -
पीप्रिंट () - प्रीटीप्रिंटर ऑब्जेक्ट के स्वरूपित प्रतिनिधित्व को प्रिंट करता है
फॉर्मैट () - कंस्ट्रक्टर को पैरामीटर के आधार पर ऑब्जेक्ट का स्वरूपित प्रतिनिधित्व देता है।
निम्नलिखित उदाहरण प्रिटीप्रिंटर वर्ग के सरल उपयोग को दर्शाता है।
import pprintstudents ={"दिलीप":["इंग्लिश", "मैथ्स", "साइंस"], "राजू":{"इंग्लिश":50,"मैथ्स":60, "साइंस":70}, " कल्पना":(50,60,70)}पीपी =पीप्रिंट। प्रीटीप्रिंटर () प्रिंट ("सामान्य प्रिंट आउटपुट") प्रिंट (छात्रों) प्रिंट ("----")प्रिंट ("पप्रिंट आउटपुट") पीपी.पीप्रिंट( छात्र)
आउटपुट सामान्य और साथ ही सुंदर प्रिंट डिस्प्ले दिखाता है।
सामान्य प्रिंट आउटपुट{'दिलीप':['अंग्रेजी', 'गणित', 'विज्ञान'], 'राजू':{'अंग्रेजी':50, 'गणित':60, 'विज्ञान':70}, ' कल्पना':(50, 60, 70)} ---- प्रिंट आउटपुट {'दिलीप':['अंग्रेजी', 'गणित', 'विज्ञान'], 'कल्पना':(50, 60, 70), 'राजू' ':{'अंग्रेज़ी':50, 'गणित':60, 'विज्ञान':70}}
पीप्रिंट मॉड्यूल प्रीटीप्रिंटर विधियों के अनुरूप सुविधा कार्यों pprint() और pformat() को भी परिभाषित करता है। नीचे दिया गया उदाहरण pprint() फ़ंक्शन का उपयोग करता है।
pprint से आयात करें pprintstudents ={"दिलीप":["अंग्रेज़ी", "गणित", "विज्ञान"],"राजू":{"अंग्रेज़ी":50,"गणित":60, "विज्ञान":70} , "कल्पना":(50,60,70)}प्रिंट ("सामान्य प्रिंट आउटपुट")प्रिंट (छात्र)प्रिंट ("----")प्रिंट ("पप्रिंट आउटपुट")प्रिंट (छात्र)
अगला उदाहरण pformat () विधि के साथ-साथ pformat () फ़ंक्शन का उपयोग करता है। pformat() विधि का उपयोग करने के लिए, प्रीटीप्रिंटर ऑब्जेक्ट को पहले सेट किया जाता है। दोनों ही मामलों में, स्वरूपित प्रतिनिधित्व सामान्य प्रिंट () फ़ंक्शन का उपयोग करके प्रदर्शित किया जाता है।
import pprintstudents ={"दिलीप":["इंग्लिश", "मैथ्स", "साइंस"],"राजू":{"इंग्लिश":50,"मैथ्स":60, "साइंस":70}," कल्पना":(50,60,70)}प्रिंट ("पफॉर्मैट विधि का उपयोग करके") पीपी =पीप्रिंट। प्रीटीप्रिंटर () स्ट्रिंग =पीपी.पीफॉर्मैट (छात्र) प्रिंट (स्ट्रिंग) प्रिंट ('------') प्रिंट ("pformat फ़ंक्शन का उपयोग करके") स्ट्रिंग =pprint.pformat (छात्र) प्रिंट (स्ट्रिंग)
यहाँ उपरोक्त कोड का आउटपुट है
प्रफॉर्मेट पद्धति का उपयोग करना{'दिलीप':['अंग्रेजी', 'गणित', 'विज्ञान'], 'कल्पना':(50, 60, 70), 'राजू':{'अंग्रेजी':50, 'गणित' ':60, 'विज्ञान':70}} ------ pformat समारोह का उपयोग {'दिलीप':['अंग्रेजी', 'गणित', 'विज्ञान'], 'कल्पना':(50, 60, 70) ,'राजू':{'अंग्रेज़ी':50, 'गणित':60, 'विज्ञान':70}}
सुंदर प्रिंटर का उपयोग कस्टम कक्षाओं के साथ भी किया जा सकता है। कक्षा के अंदर __repr__() विधि ओवरराइड है। जब repr() फ़ंक्शन का उपयोग किया जाता है तो __repr__() विधि को कॉल किया जाता है। यह पायथन ऑब्जेक्ट का आधिकारिक स्ट्रिंग प्रतिनिधित्व है। जब हम प्रिंट () फ़ंक्शन के लिए पैरामीटर के रूप में ऑब्जेक्ट का उपयोग करते हैं, तो यह repr () फ़ंक्शन के रिटर्न मान को प्रिंट करता है।
निम्नलिखित उदाहरण में, __repr__() विधि प्लेयर ऑब्जेक्ट का स्ट्रिंग प्रतिनिधित्व लौटाती है
आयात करें .name] =dict(zip(self.formats,self.runs))return (repr(dct))l1 =['टेस्ट','ODI','T20']l2 =[[140, 45, 39], [15,122,36,67, 100, 49], [78,44, 12, 0, 23, 75]] p1 =खिलाड़ी ("विराट", l1, l2) पीपी =पीप्रिंट। प्रीटीप्रिंटर () पीपी.पीप्रिंट (पी 1 )उपरोक्त कोड का आउटपुट है -
{'विराट':{'टेस्ट':[140, 45, 39], 'ODI':[15, 122, 36, 67, 100, 49], 'T20':[78, 44, 12, 0, 23, 75]}}
पीप्रिंट के साथ पुनरावर्ती डेटा संरचना
जब हम एक पुनरावर्ती वस्तु को प्रिंट के साथ प्रिंट करने का प्रयास करते हैं, तो केवल पहला प्रतिनिधित्व प्रदर्शित होता है और बाद की पुनरावृत्ति के लिए, केवल इसका संदर्भ मुद्रित होता है।
>>> इम्पोर्ट पीप्रिंट>>> नंबर =लिस्ट (रेंज(1,6))>>> नंबर। एपेंड (नंबर)>>> प्रिंट (नंबर) [1, 2, 3, 4, 5, [ ...]]>>> pprint.pprint(numbers)[1, 2, 3, 4, 5, <पुनरावर्तन ऑन लिस्ट id=1403633698824>]
आउटपुट चौड़ाई सीमित करना
यदि चौड़ाई पैरामीटर को डिफ़ॉल्ट 80 से अन्य मान में बदल दिया जाता है, तो आउटपुट को इस तरह से स्वरूपित किया जाता है कि कई लाइनें प्रदर्शित होती हैं, जबकि ध्यान रखा जाता है कि सिंटैक्स का उल्लंघन न हो।
import pprintstudents ={"दिलीप":["इंग्लिश", "मैथ्स", "साइंस"],"राजू":{"इंग्लिश":50,"मैथ्स":60, "साइंस":70}," कल्पना":(50,60,70)}pp=pprint.PrettyPrinter(width =20)pp.pprint(छात्र)
कोड इस आलेख में पहले उदाहरण के समान है। हालांकि, प्रीटीप्रिंटर ऑब्जेक्ट 20 के रूप में चौड़ाई पैरामीटर के साथ बनाया गया है। इसलिए प्रिंट आउटपुट तदनुसार स्वरूपित है।
{'दिलीप':['अंग्रेजी', 'गणित', 'विज्ञान'], 'कल्पना':(50, 60, 70), 'राजू':{'अंग्रेजी':50, 'गणित':60 , 'विज्ञान':70}}