उपयोगी टिप्स

पायथन प्रोग्रामिंग भाषा में डेटा आउटपुट कैसे करें

यह पता लगाने के बाद कि आप पायथन में किस वातावरण में कार्यक्रम बना सकते हैं और चला सकते हैं, आप इस भाषा की मूल बातें सीखना शुरू कर सकते हैं। सबसे दिलचस्प बात यह है कि कार्यक्रम के किसी भी जटिल निर्माण और शरीर के ज्ञान के बिना पहला सरल कार्यक्रम लिखा जा सकता है (जैसा पास्कल में)। इस पाठ में हम पायथन में इनपुट-आउटपुट संचालन के साथ-साथ कंप्यूटर स्क्रीन पर अंकगणितीय संचालन के त्वरित आउटपुट से परिचित होंगे।



यह पता लगाने के लिए कि कार्यक्रम में आपके द्वारा किए गए कार्यों के परिणामस्वरूप क्या होता है, आपको इसे किसी तरह प्रदर्शित करने की आवश्यकता है। कार्यक्रम से डेटा आउटपुट करने का सबसे सरल और सबसे बुनियादी तरीका स्क्रीन के लिए परिणाम का अच्छा पुराने ढंग का आउटपुट है, सीधे आईडीएल विकास पर्यावरण के शेल कमांड लाइन से।

स्क्रीन पर मूल्यों को प्रदर्शित करने के लिए, पायथन में एक फ़ंक्शन है प्रिंट करें ()। कोष्ठक के अंदर, अल्पविराम द्वारा अलग, वह लिखें जो आप आउटपुट करना चाहते हैं।

सुविधाजनक आउटपुट स्वरूपण

फिलहाल, हमने आउटपुट मानों के दो तरीके निकाले हैं: ऑपरेटर के भाव (अभिव्यक्ति बयान) और प्रिंट () फ़ंक्शन। (तीसरा तरीका फ़ाइल ऑब्जेक्ट्स के राइट () विधि का उपयोग करना है; आप मानक आउटपुट फ़ाइल को sys .stdout के रूप में संदर्भित कर सकते हैं। इस आइटम की अधिक जानकारी के लिए, लाइब्रेरी संदर्भ देखें।)

अक्सर रिक्त स्थान द्वारा अलग किए गए मानों की सामान्य छपाई की तुलना में आउटपुट के स्वरूपण पर अधिक नियंत्रण रखने की इच्छा होती है। अपने आउटपुट को प्रारूपित करने के दो तरीके हैं। पहला तरीका यह है कि आप लाइनों के सभी काम खुद करें: लाइन कट्स और कॉनटेनैशन का इस्तेमाल करके आप मनचाहा टेम्प्लेट बना सकते हैं। मानक स्ट्रिंग मॉड्यूल में एक विशिष्ट कॉलम चौड़ाई के तार संरेखित करने के लिए कई उपयोगी संचालन होते हैं (हम जल्द ही उनकी समीक्षा करेंगे)। दूसरा तरीका str.format () पद्धति का उपयोग करना है।

स्ट्रिंग मॉड्यूल में टेम्पलेट वर्ग होता है, जो मानों को स्ट्रिंग में स्थानापन्न करने का एक और तरीका प्रदान करता है।

एक सवाल यह है कि बेशक: मूल्यों को तार में कैसे बदलना है? सौभाग्य से, पायथन में किसी भी मान को स्ट्रिंग में परिवर्तित करने के दो तरीके हैं - ये हैं रिप्र () और स्ट्रै () फ़ंक्शंस।

Str () फ़ंक्शन का उद्देश्य repr () के विपरीत मानों को काफी पठनीय रूप में लौटाना है, जिसका उद्देश्य उन रूपों को उत्पन्न करना है जो दुभाषिया द्वारा पढ़े जा सकते हैं (या सिंटैक्सएक्रॉस का कारण अगर कोई समान वाक्यविन्यास नहीं है)। उन वस्तुओं के लिए जिनके पास मानव पठनीय रूप नहीं है, str () फ़ंक्शन repr () के समान मान लौटाएगा। कई मान, जैसे संख्याएँ या संरचनाएँ, जैसे सूचियाँ और शब्दकोष, दोनों कार्यों के लिए समान रूप हैं। स्ट्रिंग्स और फ़्लोटिंग पॉइंट नंबर, विशेष रूप से, दो अलग-अलग रूप हैं।

चौकों और क्यूब्स की तालिका प्रदर्शित करने के दो तरीके इस प्रकार हैं:

(ध्यान दें कि पहले उदाहरण में, कॉलम के बीच सिंगल स्पेस प्रिंट () फ़ंक्शन द्वारा जोड़े जाते हैं: यह हमेशा अपने मापदंडों के बीच रिक्त स्थान सम्मिलित करता है)

यह उदाहरण स्ट्रिंग ऑब्जेक्ट विधि rjust () के संचालन को दर्शाता है, जो स्ट्रिंग को पारित चौड़ाई के क्षेत्र में दाईं ओर संरेखित करता है, बाईं ओर रिक्त स्थान के साथ इंडेंट करता है। इसी तरह की विधियाँ लोलस () और केंद्र () के लिए उपलब्ध हैं। ये विधियां कुछ भी नहीं छापती हैं, वे केवल एक नई लाइन लौटाती हैं। यदि इनपुट लाइन बहुत लंबी है, तो वे इसे नहीं काटते हैं, जो आमतौर पर बुराइयों से कम है। (छोटा करने के लिए, आप एक स्लाइस ऑपरेशन जोड़ सकते हैं, उदाहरण के लिए: x.ljust (n) [: n]।)

एक और तरीका है - zfill (), जो शून्य स्थान को संख्या रेखा के बाईं ओर भरता है। यह प्लस और माइनस संकेतों को पहचानता है:

Str.format () पद्धति का उपयोग करने का मुख्य तरीका इस प्रकार है:

अंदर पात्रों के साथ ब्रैकेट (उन्हें कहा जाता है प्रारूप फ़ील्ड (प्रारूप फ़ील्ड)) को प्रारूप विधि में पारित वस्तुओं के साथ बदल दिया जाता है। कोष्ठक में संख्या प्रारूप विधि को पारित मापदंडों की सूची में वस्तु की स्थिति को इंगित करती है।

यदि प्रारूप विधि नामित मापदंडों का उपयोग करती है, तो आप संबंधित तर्क के नाम का उपयोग करके उनके मूल्यों का संदर्भ दे सकते हैं।

स्थितिगत और नामित मापदंडों को मनमाने ढंग से जोड़ा जा सकता है:

एक वैकल्पिक name: 'प्रारूप निर्दिष्टकर्ता फ़ील्ड नाम का अनुसरण कर सकता है। किसी मान के स्वरूपण को नियंत्रित करने के लिए इसका उपयोग करें। निम्नलिखित उदाहरण दशमलव विभाजक के बाद पाई को केवल तीन अंक छोड़ता है।

A: 'स्पेसियर के बाद, आप एक संख्या निर्दिष्ट कर सकते हैं - न्यूनतम फ़ील्ड चौड़ाई, वर्णों की संख्या में व्यक्त की गई। यह सुंदर टेबल बनाने के लिए उपयोग करने के लिए सुविधाजनक है:

यदि आपका प्रारूप स्ट्रिंग बहुत लंबा है और आप इसे सबस्ट्रिंग में नहीं तोड़ना चाहते हैं, तो अच्छा होगा यदि आप फॉर्मेटिंग के लिए इच्छित वेरिएबल्स को संदर्भित कर सकते हैं, स्थिति से नहीं, बल्कि नाम से। यह केवल शब्दकोश पास करके और वर्ग कोष्ठक का उपयोग करके किया जा सकता है simply[]'कुंजी की पहुंच के लिए।

संकेतन "**" का उपयोग करते हुए नामित मापदंडों का एक शब्दकोश पारित करके एक ही बात की जा सकती है:

विशेष रूप से, यह तकनीक बिल्ट-इन फंक्शन वर्जन () के साथ संयोजन में उपयोग करने के लिए सुविधाजनक है, जो स्थानीय चर के साथ एक शब्दकोश देता है।

Str.format () मेथड का प्रयोग करके स्ट्रेटिंग स्ट्रिंग्स का विस्तृत विवरण स्ट्रिंग सिंटैक्स सेक्शन को फॉर्मेट करने के सिंटैक्स में वर्णित किया गया है।

स्क्रीन आउटपुट

मान लीजिए कि हमारे पास कुछ मूल्य के साथ एक चर है और हम इसे स्क्रीन पर प्रदर्शित करना चाहते हैं। इसके लिए में अजगर एक समारोह है प्रिंट करें ()। कोष्ठक के अंदर हम अपने चर या कुछ वर्णों का नाम रखते हैं। यदि आप केवल संख्यात्मक चर के रूप में एक अंक दर्ज करते हैं, तो दुभाषिया कसम खाएगा।

हर बार एक समारोह शुरू होता है प्रिंट करें () कुछ जानकारी स्क्रीन पर प्रदर्शित की जाएगी, इस मामले में भी वही। के बाद प्रिंट करें () उसे जो कुछ भी बताया गया था, उसे छापा, वह अगली पंक्ति का संकेत देगा। ऐसा होने से रोकने के लिए, आपको कुछ जोड़ने की आवश्यकता है ...

उद्धरण चिह्नों में, आप कर सकते हैं, सिद्धांत रूप में, जो कुछ भी आपके दिल की इच्छा है, उसे लिखें।

पुरानी शैली में तार को स्वरूपित करना

आप स्ट्रिंग को स्वरूपित करने के लिए% कार्रवाई का उपयोग कर सकते हैं। यह बचे हुए ऑपरेंड को एक स्प्रिंटफ-स्टाइल प्रारूप स्ट्रिंग के रूप में व्याख्या करता है जिसे सही ऑपरेंड पर लागू किया जाना चाहिए और इस रूपांतरण के परिणामस्वरूप स्ट्रिंग लौटाता है। उदाहरण के लिए:

क्योंकि str.format () विधि काफी नई है, अधिकांश पायथन स्रोत कोड अभी भी% ऑपरेशन का उपयोग करता है। हालांकि, समय के साथ, लाइन स्वरूपण भाषा से हटा दिया जाएगा, इसलिए str.format () का उपयोग ज्यादातर मामलों में किया जाना चाहिए।

अधिक जानकारी पुराने स्वरूप में अनुभाग स्वरूपण स्ट्रिंग स्वरूपण कार्यों में पाई जा सकती है।

उपयोगकर्ता इनपुट

याद रखें, उपयोगकर्ता द्वारा दर्ज किया गया सब कुछ एक वर्ण चर है, भले ही वह केवल एक संख्या दर्ज करे।
यदि हमें उपयोगकर्ता को एक नंबर के लिए आगे की कार्रवाई के लिए एक संख्या दर्ज करने की आवश्यकता है (उदाहरण के लिए गणितीय संचालन के लिए), तो हमें निम्न चाल करने की आवश्यकता है: हमारे स्ट्रिंग परिणाम को संख्यात्मक में बदलें।

प्रवेश करने और दबाने के बाद सबसे पहले, उपयोगकर्ता डेटा में प्रवेश करता है दर्ज, उसके द्वारा दर्ज की गई स्ट्रिंग जानकारी एक नंबर प्रारूप में बदल जाती है। फ़ंक्शन हमें इसमें मदद करता है। int ()। यह किसी भी डेटा को एक संख्यात्मक पूर्णांक प्रारूप में परिवर्तित करता है। लेकिन, यदि आप कुछ वर्णों को संख्यात्मक प्रारूप में बदलने का निर्णय लेते हैं, तो दुभाषिया आपको एक त्रुटि देगा।

पत्र संख्या नहीं हैं!

ऐसे सरल तरीके से हम भाषा में "इनपुट और आउटपुट" से परिचित हो गए अजगर«

फाइलें लिखना और पढ़ना

खुला () फ़ंक्शन एक फ़ाइल ऑब्जेक्ट देता है और ज्यादातर मामलों में दो तर्कों के साथ प्रयोग किया जाता है: खुला (फ़ाइल नाम, शासन) .

पहला पैरामीटर एक स्ट्रिंग है जिसमें फ़ाइल नाम है। दूसरी एक और लाइन है जिसमें फ़ाइल का उपयोग करने का वर्णन करने वाले कई वर्ण हैं। पैरामीटर मान शासन यदि फ़ाइल केवल पढ़ने के लिए खुला है, तो 'r' प्रतीक 'r' हो सकता है, केवल लिखने के लिए 'w' खुला है (समान नाम वाली मौजूदा फ़ाइल मिटा दी जाएगी) और 'a' जोड़ने के लिए फ़ाइल खुली है: फ़ाइल में लिखा गया कोई भी डेटा अपने आप अंत में जोड़े जाते हैं। 'r +' पढ़ने और लिखने दोनों के लिए फाइल खोलता है। पैरामीटर शासन वैकल्पिक: यदि इसे छोड़ दिया जाता है, तो यह माना जाता है कि यह 'r' के बराबर है।

सामान्य स्थिति में, फाइलें खुलती हैं पाठ मोड (पाठ मोड) - इसका मतलब है कि आप एक फ़ाइल से पढ़ रहे हैं और एक निश्चित एन्कोडिंग में फ़ाइल स्ट्रिंग्स के लिए लिख रहे हैं (डिफ़ॉल्ट रूप से इसका उपयोग किया जाता है UTF-8)। यदि आप फ़ाइल मोड में символ b 'जोड़ते हैं, तो फ़ाइल खुलती है बाइनरी मोड (बाइनरी मोड): अब डेटा को बाइनरी ऑब्जेक्ट के रूप में पढ़ा और लिखा जाता है। इस मोड का उपयोग उन सभी फ़ाइलों के लिए किया जाना चाहिए जिनमें पाठ नहीं है।

पाठ मोड का उपयोग करते समय, डिफ़ॉल्ट रूप से, प्लेटफ़ॉर्म-विशिष्ट (यूनिक्स पर n, विंडोज पर n _) सभी लाइन एंडिंग्स, फ़ाइल से पढ़ते समय n वर्ण से अलग कर दिए जाते हैं, और n से वापस दृश्य विशिष्ट में परिवर्तित हो जाते हैं प्लेटफ़ॉर्म पर फ़ाइल लिखते समय। पाठ डेटा के मामले में फ़ाइल डेटा कार्य में ये पीछे के दृश्य सही ढंग से बदलते हैं, लेकिन JPEG या EXE जैसी फ़ाइलों में द्विआधारी डेटा को दूषित कर देंगे। ऐसी फाइलों को पढ़ते और लिखते समय बाइनरी मोड का उपयोग करने में सावधानी बरतें।

फ़ाइल ऑब्जेक्ट तरीके

नीचे दिए गए उदाहरण मानते हैं कि f नाम की एक फ़ाइल ऑब्जेक्ट पहले से बनाई गई है।

किसी फ़ाइल की सामग्री को पढ़ने के लिए, f.read पर कॉल करें (आकार) - फ़ंक्शन डेटा की एक निश्चित मात्रा को पढ़ता है और इसे एक स्ट्रिंग या बाइट ऑब्जेक्ट के रूप में वापस करता है। आकार - वैकल्पिक संख्यात्मक पैरामीटर। अगर आकार छोड़ी गई या नकारात्मक, फ़ाइल की संपूर्ण सामग्री को पढ़ा और लौटा दिया जाएगा, यदि फ़ाइल आपके कंप्यूटर की रैम से दोगुनी है, तो इस समस्या का समाधान आपके विवेक पर रहता है। अन्यथा, एक अधिकतम पढ़ा जाएगा और वापस आ जाएगा। आकार बाइट्स। यदि फ़ाइल का अंत पहुँच गया है, तो f.read () एक खाली स्ट्रिंग लौटा देगा ().

f.readline () फ़ाइल से एक पंक्ति पढ़ता है, नई पंक्ति वर्ण ( n) पढ़ी गई पंक्ति के अंत में बनी रहती है और फ़ाइल की अंतिम पंक्ति को पढ़ते समय अनुपस्थित होती है, यदि फ़ाइल खाली रेखा के साथ समाप्त नहीं होती है। इसके कारण, वापसी मान असंदिग्ध हो जाता है: यदि f.readline () एक खाली लाइन लौटाता है, तो फ़ाइल का अंत पहुँच जाता है, उसी समय, ' n' द्वारा दर्शाई गई खाली लाइन में केवल एक नई रेखा वर्ण होती है।

f.readlines () फ़ाइल में पाई जाने वाली डेटा की सभी पंक्तियों वाली एक सूची देता है। यदि वैकल्पिक पैरामीटर hint_size पास हो जाता है, तो फ़ंक्शन फ़ाइल से निर्दिष्ट बाइट्स को पढ़ता है, और इसके अलावा बाइट्स की एक निश्चित संख्या, लाइन को पूरा करने के लिए पर्याप्त है, और परिणाम से लाइनों की एक सूची बनाता है। फ़ंक्शन का उपयोग अक्सर अधिक कुशल के लिए किया जाता है (बड़ी फ़ाइलों में फ़ाइल को पूरी तरह से लोड नहीं किया जाता है) लाइन-बाय-लाइन रीडिंग। केवल पूर्ण (पूर्ण) पंक्तियों को वापस कर दिया जाएगा।

एक वैकल्पिक लाइन-बाय-लाइन रीडिंग एक फ़ाइल ऑब्जेक्ट के माध्यम से लूप करना है। यह तेज, मेमोरी कुशल है और इसके परिणामस्वरूप सरल कोड है:

एक वैकल्पिक विधि सरल है, लेकिन जो हो रहा है उस पर सूक्ष्म नियंत्रण प्रदान नहीं करता है। चूंकि ये दोनों विधियां अलग-अलग तरीकों से लाइन बफरिंग के साथ काम करती हैं, इसलिए उन्हें मिश्रित नहीं किया जाना चाहिए।

f.iteite (पंक्ति) सामग्री लिखता है पंक्तियां एक फ़ाइल के लिए और लिखा बाइट्स की संख्या देता है।

स्ट्रिंग से फ़ाइल में कुछ अलग लिखने के लिए, पहले आपको कुछ को स्ट्रिंग में बदलने की आवश्यकता है:

f.tell () फ़ाइल की वर्तमान स्थिति का प्रतिनिधित्व करते हुए पूर्णांक देता है, जो फ़ाइल की शुरुआत से बाइट्स में मापा जाता है। फ़ाइल ऑब्जेक्ट की स्थिति बदलने के लिए, f.seek का उपयोग करें (विस्थापन, कहाँ से)। स्थिति की गणना संदर्भ बिंदु पर ऑफसेट जोड़कर की जाती है, संदर्भ बिंदु को पैरामीटर से चुना जाता है कहाँ से । पैरामीटर मान ० कहाँ से फ़ाइल की शुरुआत से ऑफसेट को मापता है, 1 का मान फ़ाइल में वर्तमान स्थिति को लागू करता है, और 2 का मान संदर्भ बिंदु के रूप में फ़ाइल के अंत का उपयोग करता है। पैरामीटर कहाँ से एक संदर्भ बिंदु के रूप में फ़ाइल की शुरुआत का उपयोग करके, छोड़ा जा सकता है और डिफ़ॉल्ट रूप से 0 पर सेट किया जा सकता है।

पाठ फ़ाइलों के साथ काम करते समय (मोड लाइन में बी चरित्र के बिना खोला गया), केवल फ़ाइल की शुरुआत से ही अनुमति दी जाती है (केवल (0, 2) का उपयोग करके फ़ाइल के अंत तक स्क्रॉल करने के लिए छोड़कर)।

जब आपने फ़ाइल पर सभी कार्य समाप्त कर लिए हों, तो इसे बंद करने के लिए f.close () को कॉल करें और इस फ़ाइल को खोलने के लिए उपयोग किए जाने वाले सभी सिस्टम संसाधनों को मुक्त करें। F.close () कॉल करने के बाद फ़ाइल ऑब्जेक्ट का उपयोग करने के सभी प्रयास एक अपवाद को फेंक देंगे।

फ़ाइल ऑब्जेक्ट के साथ काम करते समय कीवर्ड के साथ उपयोग करना अच्छा अभ्यास माना जाता है। इस पद्धति का लाभ यह है कि फ़ाइल हमेशा ब्लॉक के निष्पादित होने के बाद सही ढंग से बंद हो जाती है, या यदि निष्पादन के दौरान एक अपवाद फेंक दिया गया था। इसके अलावा, परिणामी कोड ब्लॉकों के साथ समकक्ष रूप से बहुत छोटा है कोशिश करो - अंत में :

फ़ाइल ऑब्जेक्ट्स में कुछ अतिरिक्त विधियाँ हैं, जैसे कि आइसट्टी () और ट्रंकट (), जिनका उपयोग अक्सर नहीं किया जाता है, फ़ाइल ऑब्जेक्ट्स के अधिक पूर्ण अवलोकन के लिए लाइब्रेरी संदर्भ देखें।

अचार मॉड्यूल

स्ट्रिंग्स को आसानी से एक फ़ाइल से लिखा और पढ़ा जा सकता है। संख्या के मामले में, आपको थोड़ा और प्रयास करने की आवश्यकता है: रीड () विधि केवल उन पंक्तियों को लौटाती है जिन्हें आपको int () जैसे फ़ंक्शन में पास करना होता है, जो '123' फॉर्म की एक स्ट्रिंग लेता है और इसका संख्यात्मक मान लौटाता है: 123। हालाँकि, यदि आप अधिक जटिल डेटा प्रकारों को संरक्षित करने का इरादा रखते हैं, जैसे सूचियाँ, शब्दकोश, या वर्ग उदाहरण, चीजें थोड़ी भ्रमित हो जाती हैं।

प्रोग्रामर को लगातार डेटा प्रकारों के लिए कोड लिखने और डिबग करने के लिए मजबूर करने के बजाय, पायथन एक मानक मॉड्यूल प्रदान करता है जिसे अचार कहा जाता है। यह एक महान मॉड्यूल है जो किसी भी पायथन ऑब्जेक्ट (यहां तक ​​कि पायथन कोड के कुछ रूपों!) को ले सकता है और इसे एक स्ट्रिंग प्रतिनिधित्व में बदल सकता है: इस प्रक्रिया को कहा जाता है संरक्षण (नमकीन बनाना)। किसी वस्तु को उसके स्ट्रिंग प्रतिनिधित्व से पुनर्स्थापित करना कहा जाता है फिर से खोलने (unpickling): ऑब्जेक्ट का वर्णन करने वाली एक लाइन को एक फ़ाइल में सहेजा जा सकता है, कुछ डेटा में जोड़ा जा सकता है, या एक दूरस्थ कंप्यूटर के नेटवर्क कनेक्शन के माध्यम से भेजा जा सकता है।

यदि आपके पास बाइनरी मोड में लिखने के लिए कुछ ऑब्जेक्ट x और फ़ाइल ऑब्जेक्ट f है (बाइनरी मोड, पैरामीटर 'wb') के साथ, सबसे सरल तरीका है की रक्षा ऑब्जेक्ट को कोड की एक पंक्ति की आवश्यकता होती है:

ऑब्जेक्ट को फिर से संरक्षित करने के लिए, बशर्ते कि च पढ़ने के लिए खुली हुई फ़ाइल का ऑब्जेक्ट है (बाइनरी मोड में, पैरामीटर 'आरबी' के साथ):

(इन ऑपरेशनों को निष्पादित करने के लिए विकल्प हैं जो कब लागू होते हैं फिर से सक्रिय होने कई ऑब्जेक्ट्स या जब आपको रिकॉर्ड करने की आवश्यकता होती है डिब्बा बंद फ़ाइल का डेटा, लाइब्रेरी संदर्भ से अचार मॉड्यूल के लिए दस्तावेज़ीकरण देखें।)

अचार पायथन वस्तुओं को बनाने का एक मानक तरीका है जो अन्य कार्यक्रमों या उसी कार्यक्रम के भविष्य के संस्करणों द्वारा पुन: उपयोग किया जा सकता है, उनके लिए एक तकनीकी शब्द है - स्थिर वस्तु (लगातार वस्तु)। क्योंकि अचार का उपयोग अक्सर किया जाता है, पायथन एक्सटेंशन के कई लेखक यह सुनिश्चित करते हैं कि नए डेटा प्रकार, जैसे मैट्रिस, सही ढंग से हो सकते हैं संरक्षित और पुन: सक्रिय.

संपादक, लेखक: फ्रेड एल ड्रेक जूनियर। (फ्रेड एल। ड्रेक, जूनियर) और अन्य

संग्रह

पायथन में निर्मित डेटा प्रकार शांत होते हैं, लेकिन कभी-कभी वे वैसा व्यवहार नहीं करते हैं जैसा वे चाहते हैं।

सौभाग्य से, अंतर्निहित पुस्तकालय में सुविधाजनक अतिरिक्त डेटा प्रकारों के साथ एक संग्रह मॉड्यूल है:

कभी आपने सोचा है कि पायथन में किसी वस्तु को कैसे देखा जाए और उसकी विशेषताओं को देखें? बेशक, उन्होंने सोचा।

1 अगस्त को 10:00 बजे, ऑनलाइन, मुफ्त

कमांड लाइन का उपयोग करें:

यह पायथन में एक इंटरैक्टिव सत्र के दौरान काम में आ सकता है, साथ ही उन वस्तुओं और मॉड्यूल के गतिशील अध्ययन के लिए जो आप के साथ काम करते हैं।

$ पाइप इमोजी स्थापित करें

और दिखावा मत करो आप कोशिश नहीं करना चाहते हैं:

__future__ आयात से

पायथन की लोकप्रियता के परिणामों में से एक यह है कि नए संस्करणों को लगातार विकसित और जारी किया जा रहा है। नए संस्करण - नई सुविधाएँ, लेकिन आपके लिए नहीं यदि आप पुराना उपयोग करते हैं।

हालांकि, सब कुछ इतना बुरा नहीं है। __Future__ मॉड्यूल भविष्य के पायथन की कार्यक्षमता को आयात करना संभव बनाता है। यह समय यात्रा, या जादू की तरह है:

भूगोल में प्रोग्रामर को नेविगेट करना मुश्किल हो सकता है। हालाँकि, जियोफाई मॉड्यूल चीजों को सरल बनाता है:

$ पाइप स्थापित जियोफाई

यह विभिन्न जियोकोडिंग सेवाओं के एपीआई को सार करके काम करता है। यह मॉड्यूल स्थान का पूरा पता, इसके देशांतर और अक्षांश और यहां तक ​​कि ऊंचाई का पता लगाना संभव बनाता है।

इसमें एक उपयोगी डिस्टेंस क्लास भी है। यह माप की सुविधाजनक इकाई में दो स्थानों के बीच की दूरी की गणना करता है।

क्या आप किसी समस्या से त्रस्त हैं और इसका समाधान याद नहीं कर सकते? StackOverflow में जाने की आवश्यकता है, लेकिन टर्मिनल नहीं छोड़ना चाहते हैं?

तब आप इस कमांड लाइन टूल के बिना नहीं कर सकते:

$ पाइप स्थापित होवदी

कोई भी प्रश्न पूछें और वह इसका उत्तर खोजने की कोशिश करेगा:

लेकिन सावधान रहें: यह StackOverflow पर शीर्ष उत्तरों से कोड निकालता है और हमेशा उपयोगी जानकारी प्रदान नहीं करता है:

$ howdoi निकास विम

पाइथन में पर्दे के पीछे क्या हो रहा है यह समझने के लिए निरीक्षण मॉड्यूल काम में आता है। तुम भी अपने आप उन पर अपने तरीके कह सकते हैं!

निम्न अपने स्वयं के स्रोत कोड को आउटपुट करने के लिए निरीक्षण.गेटसोर्स () पद्धति का उपयोग करता है। जिस मॉड्यूल में यह परिभाषित किया गया है, उसे आउटपुट करने के लिए निरीक्षण.गेटमॉडल () विधि का भी उपयोग किया जाता है।

अंतिम आदेश उस पंक्ति संख्या को प्रदर्शित करता है जिस पर वह स्थित है:

बेशक, ऐसे तुच्छ उपयोगों के अलावा, यह मॉड्यूल यह समझने के लिए उपयोगी हो सकता है कि आपका कोड क्या करता है। आप इसका इस्तेमाल सेल्फ-डॉक्यूमेंटिंग कोड लिखने के लिए भी कर सकते हैं।

जेडी लाइब्रेरी को कोड पूरा करने और विश्लेषण के लिए डिज़ाइन किया गया है। यह कोड लिखने की प्रक्रिया को गति देता है और इसे अधिक उत्पादक बनाता है।

यदि आप अपना आईडीई विकसित नहीं कर रहे हैं, तो शायद आप संपादक एक्सटेंशन के रूप में जेडी का उपयोग करने में अधिक रुचि लेंगे। К счастью, уже есть много вариантов.

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.

Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.

Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.

Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs :

Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.

Прим.перев. यह भी काम में आ सकता है जब आवरण कार्यों को लिखना जो किसी अन्य फ़ंक्शन के लिए सभी तर्क पास करते हैं।

सूची जनरेटर

एक और अच्छा पायथन फीचर, जो सूचियों को बनाने के लिए त्वरित बनाता है। इस तरह के भावों को साफ कोड लिखना आसान हो जाता है जो लगभग एक प्राकृतिक भाषा की तरह पढ़ता है:

पायथन में कार्यात्मक प्रोग्रामिंग के लिए अच्छा अंतर्निहित समर्थन है। सबसे उपयोगी विशेषताओं में से एक नक्शा () फ़ंक्शन है, विशेष रूप से लैम्ब्डा कार्यों के साथ संयोजन में:

यहाँ मानचित्र () प्रत्येक x तत्व पर एक साधारण लंबोदा फ़ंक्शन लागू करता है और एक मैप ऑब्जेक्ट देता है जिसे किसी सूची या टपल जैसे कुछ चलने योग्य ऑब्जेक्ट में परिवर्तित किया जा सकता है।

newspaper3k

यदि आप अभी तक उससे नहीं मिले हैं, तो समाचार पत्र के मॉड्यूल के लिए तैयार हो जाइए।

यह कई अलग-अलग स्रोतों से लेख और संबंधित मेटा-डेटा निकालना संभव बनाता है। आप चित्र, पाठ और लेखक के नाम निकाल सकते हैं।

यहां तक ​​कि इसमें अंतर्निहित एनएलपी कार्यक्षमता भी है।

इसलिए, यदि आप अपने अगले प्रोजेक्ट में वेब स्क्रैपिंग के लिए ब्यूटीफुल या किसी अन्य लाइब्रेरी का उपयोग करने जा रहे हैं, तो अपना समय और प्रयास बचाना और अखबार इंस्टॉल करना बेहतर है:

$ पाइप स्थापित अखबार 3k

संचालक अधिभार

पायथन को ऑपरेटर ओवरलोडिंग के लिए समर्थन है - उन चीजों में से एक जो सभी वास्तविक कंप्यूटर वैज्ञानिक बात कर रहे हैं।

वास्तव में, विचार सरल है। कभी आपने सोचा है कि पायथन आपको संख्याओं को जोड़ने और स्ट्रिंग को जोड़ने के लिए + ऑपरेटर का उपयोग करने की अनुमति क्यों देता है? इसके पीछे सिर्फ ऑपरेटर का ओवरलोड है।

आप किसी भी तरह से मानक ऑपरेटर वर्णों का उपयोग करने वाली वस्तुओं को परिभाषित कर सकते हैं। यह आपको उन वस्तुओं के संदर्भ में उन्हें लागू करने की अनुमति देता है जिनके साथ आप काम करते हैं:

मानक पायथन फ़ंक्शन प्रिंट () चाल करता है। लेकिन अगर आप कुछ बड़े नेस्टेड ऑब्जेक्ट को प्रदर्शित करने की कोशिश करते हैं, तो परिणाम बहुत अच्छा नहीं लगेगा।

मानक प्रिंट लाइब्रेरी (सुंदर प्रिंट) से मॉड्यूल यहां बचाव के लिए आता है। इसका उपयोग करते हुए, आप एक पठनीय रूप में एक जटिल संरचना के साथ वस्तुओं को प्रदर्शित कर सकते हैं।

कस्टम डेटा संरचनाओं के साथ काम करने वाले किसी भी अजगर डेवलपर के लिए होना चाहिए:

पायथन मल्टी-थ्रेडिंग का समर्थन करता है, जिसे क्यू मानक मॉड्यूल का उपयोग करने में मदद करता है।

यह आपको एक कतार के रूप में ऐसी डेटा संरचना को लागू करने की अनुमति देता है। कतारें आपको एक विशिष्ट नियम के अनुसार तत्वों को जोड़ने और पुनः प्राप्त करने की अनुमति देती हैं।

"पहली बार, पहले बाहर", FIFO कतारें आपको उन वस्तुओं को पुनः प्राप्त करने की अनुमति देती हैं, जिस क्रम में उन्हें जोड़ा गया था। कतारों से "आखिरी में, पहले बाहर" ("आखिरी में, पहले बाहर", LIFO), आप अंतिम जोड़े गए ऑब्जेक्ट को पुनः प्राप्त कर सकते हैं।

अंत में, प्राथमिकता कतार आपको उनके क्रम के अनुसार वस्तुओं को पुनः प्राप्त करने की अनुमति देती है।

यहां आप बहु-थ्रेडेड पायथन प्रोग्रामिंग में कतारों का उपयोग करने का एक उदाहरण देख सकते हैं।

किसी वर्ग या वस्तु को परिभाषित करते समय, एक स्ट्रिंग के रूप में वस्तु का प्रतिनिधित्व करने का "आधिकारिक" तरीका जोड़ना उपयोगी होता है। उदाहरण के लिए:

यह डिबगिंग को बहुत सरल करता है। यहाँ आपको बस इतना करना है:

Prim.perev। __Repr __ () विधि आपको प्रोग्रामर के लिए एक स्ट्रिंग प्रतिनिधित्व को परिभाषित करने और डिबगिंग के दौरान उपयोग करने के लिए सुविधाजनक बनाने की अनुमति देती है, और __str __ () विधि आपको उपयोगकर्ता के अनुकूल स्ट्रिंग प्रतिनिधित्व को परिभाषित करने की अनुमति देती है जिसे प्रोग्राम इंटरफ़ेस में प्रदर्शित किया जा सकता है।

पायथन एक महान पटकथा भाषा है। लेकिन कभी-कभी मानक ओएस और उपप्रोसेस लाइब्रेरी केवल सिरदर्द का कारण बनती हैं।

श लाइब्रेरी एक अच्छा विकल्प हो सकता है।

यह आपको किसी भी कार्यक्रम को एक नियमित कार्य के रूप में कॉल करने की अनुमति देता है, जो विशेष रूप से पायथन का उपयोग करके विभिन्न कार्यों को स्वचालित करने के लिए उपयोगी है:

Prim.perev। Sh लाइब्रेरी केवल लिनक्स और macOS प्लेटफॉर्म को सपोर्ट करती है, विंडोज पर काम करने के लिए आपको दूसरे टूल की तलाश करनी होगी।

एनोटेशन टाइप करें

पायथन एक गतिशील रूप से टाइप की जाने वाली भाषा है। चर, कार्यों, वर्गों आदि को परिभाषित करते समय आपको डेटा प्रकार निर्दिष्ट करने की आवश्यकता नहीं है।

यह विकास प्रक्रिया को गति देता है। हालाँकि, थोड़ा कष्टप्रद है क्योंकि एक साधारण प्रकार के बेमेल के कारण एक रनटाइम त्रुटि।

पायथन 3.5 के बाद से, आप फ़ंक्शन को परिभाषित करते समय टाइप एनोटेशन जोड़ सकते हैं:

तुम भी प्रकार उपनाम परिभाषित कर सकते हैं:

हालांकि उनका उपयोग वैकल्पिक है, प्रकार एनोटेशन की मदद से कोड को अधिक समझा जा सकता है।

वे आपको TypeError त्रुटियों को पकड़ने के लिए टाइप जाँच उपकरणों का उपयोग करने की भी अनुमति देते हैं।

UUID मानक मॉड्यूल, UUID (सार्वभौमिक रूप से विशिष्ट पहचानकर्ता) उत्पन्न करने का एक त्वरित और आसान तरीका है।

इसलिए हम एक यादृच्छिक 128-बिट संख्या बनाते हैं जो लगभग निश्चित रूप से अद्वितीय होगी।

2 are से अधिक संभावित यूयूआईडी हैं। यह 5 से अधिक undecillion या 5,000,000,000,000,000,000,000,000,000,000,000,000 से अधिक है।

किसी दिए गए सेट में डुप्लिकेट खोजने की संभावना बहुत कम है। यहां तक ​​कि एक ट्रिलियन यूयूआईडी के साथ, इस बात की संभावना है कि उनके बीच एक डुप्लिकेट एक अरब में एक से भी कम है।

कोड की दो पंक्तियों के लिए बुरा नहीं है।

आभासी वातावरण

अक्सर पायथन प्रोग्रामर एक साथ कई प्रोजेक्ट्स पर काम करते हैं। दुर्भाग्य से, कभी-कभी दो परियोजनाएं एक ही निर्भरता के विभिन्न संस्करणों पर निर्भर करती हैं। कौन सा स्थापित करें?

सौभाग्य से, पायथन में आभासी वातावरण का समर्थन है जो दोनों दुनिया का सबसे अच्छा लेता है। कमांड प्रॉम्प्ट पर, दर्ज करें:

अब आपके पास एक ही मशीन पर पाइथन के अलग-अलग स्वतंत्र संस्करण हो सकते हैं।

विकिपीडिया में एक शांत एपीआई है जो आपको पूरी तरह से मुफ्त जानकारी के बेजोड़ स्रोत तक पहुंचने की अनुमति देता है।

विकिपीडिया मॉड्यूल इस एपीआई की पहुँच को लगभग सुविधाजनक बनाता है:

एक वास्तविक साइट की तरह, मॉड्यूल कई भाषाओं के लिए समर्थन प्रदान करता है, पृष्ठों की अस्पष्टता का समाधान करता है, एक यादृच्छिक पृष्ठ प्राप्त करता है, और यहां तक ​​कि दान () विधि भी।

हास्य पायथन की एक प्रमुख विशेषता है। अंत में, भाषा का नाम ब्रिटिश कॉमेडी शो मोंटी पाइथन के फ्लाइंग सर्कस के नाम पर रखा गया। आधिकारिक प्रलेखन के कई स्थानों में आप शो के सबसे प्रसिद्ध एपिसोड के संदर्भ पा सकते हैं।

बेशक, प्रलेखन के साथ हास्य की भावना समाप्त नहीं होती है। निम्नलिखित पंक्ति दर्ज करने का प्रयास करें:

अपने आप को, पायथन रहो। खुद ही रहो।

YAML का अर्थ है "YAML एक मार्कअप भाषा नहीं है" ("YAML Ain't Markup Language")। यह एक डेटा फॉर्मेटिंग भाषा है जो JSON की सुपरसेट है।

JSON के विपरीत, YAML अधिक जटिल वस्तुओं को संग्रहीत कर सकता है और अपने स्वयं के तत्वों को संदर्भित कर सकता है। आप वहां टिप्पणी भी लिख सकते हैं, जो विन्यास फाइल के लिए YAML को उपयुक्त बनाती है।

PyYAML मॉड्यूल आपको Python में YAML का उपयोग करने की अनुमति देता है। आप इसे इस तरह स्थापित कर सकते हैं:

$ पाइप पाइलम स्थापित करें

और फिर आयात करें:

PyYAML आपको किसी भी कस्टम वर्ग की पायथन वस्तुओं और उदाहरणों को संग्रहीत करने की अनुमति देता है।

अंत में, एक और अच्छी बात। कभी दो सूचियों से एक शब्दकोश बनाने की आवश्यकता थी?

अंतर्निहित ज़िप () फ़ंक्शन कई पुनरावृत्त वस्तुओं को लेता है और ट्यूपल्स का एक क्रम देता है। प्रत्येक टपल वस्तुओं के तत्वों को उनके सूचकांक द्वारा समूहित करता है।

आप ज़िप () का उपयोग करके ज़िप () का उलटा प्रदर्शन कर सकते हैं।

और क्या तकनीक या उपयोगी पुस्तकालयों को आप जानते हैं? टिप्पणियों में साझा करें।

  1. 0, 0.0 ↩
  2. 0, 1.0 ↩
  3. 0, 1.0 ↩
  4. 0, -2.0 ↩

Yandex सेवाओं को निजीकृत करने के लिए आपके डेटा और मशीन लर्निंग का उपयोग कैसे करता है - पढ़िए और देखिए YaC 2019।