Python प्रोग्रामिंग में assert स्टेटमेंट आपके कोड में बुनियादी सत्य स्थापित करने का एक टूल है। यह डेवलपर्स को अपने कोड के भीतर मान्यताओं को परखने की शक्ति देता है। इस ट्यूटोरियल में, हम Python के assert स्टेटमेंट में महारत हासिल करेंगे—इसके सिंटैक्स, उपयोग और डिबगिंग व त्रुटि पहचान में अनुप्रयोग सहित। Python के assert स्टेटमेंट में दक्ष होकर, हम एक विशेषज्ञ Python Programmer बनने के एक कदम और करीब होंगे।
यहाँ, condition उस अभिव्यक्ति को संदर्भित करता है जिसकी जाँच की जा रही है, जबकि message एक वैकल्पिक त्रुटि संदेश है जो असेर्शन विफल होने पर दिखाई देता है।
यहाँ कुछ assertions हैं जिन्हें आप अपने Python कोड में आज़मा सकते हैं। पहले मामले में, अभिव्यक्ति 3<4>5 तार्किक रूप से गलत है, इसलिए Python हमारे द्वारा दिए गए संदेश "Math does not work that way." के साथ एक AssertionError उठाता है। दूसरे मामले में, अभिव्यक्ति 0==0 एक तौटोलॉजी है, इसलिए हमें "This shouldn't throw an error." संदेश कभी नहीं दिखता।
assert3<4>5,"Math does not work that way."संचालित द्वारा
assert0==0,"This shouldn't throw an error."संचालित द्वारा
Python के assert स्टेटमेंट का अवलोकन
अब चलिए Python के assert स्टेटमेंट को और करीब से देखते हैं—यह कैसे और क्यों उपयोग किया जाता है। इस ट्यूटोरियल के अंत तक, आप Python में assert स्टेटमेंट का उपयोग करने में माहिर हो जाएंगे।
Python assertions क्या हैं?
सामान्य रूप से, प्रोग्रामिंग में assertions ऐसे कॉन्स्ट्रक्ट हैं जो कोडबेस में शर्तों की सत्यता की पुष्टि करते हैं। दूसरे शब्दों में, ये वे सत्य हैं जिनका प्रोग्राम को पालन करना चाहिए, अन्यथा त्रुटि फेंकी जाएगी। Python "assert" शब्द का उपयोग करके इन प्रोग्रामिंग assertions को बहुत ही प्रत्यक्ष सिंटैक्स से लागू करता है: assert स्टेटमेंट हमें ऐसे assertions बनाने देता है।
Python assertions का उपयोग कब करें
Assertions डिबगिंग, मान्यताओं की पुष्टि करने और विशेष शर्तों के तहत आपके कोड के अपेक्षित व्यवहार को सुनिश्चित करने के लिए अमूल्य हैं। इनके जरिए आप कंप्यूटर को बताते हैं कि आप उससे क्या अपेक्षा रखते हैं और कहते हैं कि जब वह कुछ अलग कर रहा हो तो रुक जाए। यह तब उपयोगी है जब आप कोई नया प्रोग्राम बना रहे हों या किसी फ़ीचर को जोड़ रहे हों या किसी मौजूदा ऐप को अपडेट कर रहे हों।
Assertions उन परिस्थितियों में खासतौर पर चमकते हैं जहाँ डेवलपर्स को अपने कोडबेस में preconditions, postconditions या invariants लागू करने होते हैं। ये गार्डरेल्स की तरह काम करते हैं—यदि कुछ शर्तें उल्लंघित हों तो कोड को आगे बढ़ने से रोकते हैं—और इस तरह संभावित बग्स का जल्दी पता लगाने में मदद मिलती है।
कोड में रणनीतिक रूप से assertions लगाने से आप त्रुटियों को उनके स्रोत के करीब पकड़ सकते हैं, जिससे डिबगिंग सरल हो जाती है। DataCamp का Python Developer करियर ट्रैक सभी स्तरों के आकांक्षी डेवलपर्स के लिए फंक्शनल प्रोग्रामिंग कौशल का अभ्यास करने का बढ़िया कोर्स है क्योंकि इसमें बुनियादी और उन्नत दोनों तरह की अवधारणाओं पर अभ्यास शामिल हैं।
Python assertions का उपयोग कब न करें
हालाँकि विकास के दौरान assertions अमूल्य हैं, कुछ परिदृश्य ऐसे होते हैं जहाँ इनका उपयोग अनुचित हो सकता है।
यह समझना महत्वपूर्ण है कि जब आपका कोड प्रोडक्शन के लिए कम्पाइल होता है, तो assertions को वैश्विक रूप से अक्षम किया जा सकता है। इसका मतलब है कि आपको assertions पर रन-टाइम समस्याओं को संभालने के लिए निर्भर नहीं होना चाहिए, जैसे कि उपयोगकर्ता द्वारा गलत डेटा इनपुट करना। इसके बजाय, इन्हें विकास संबंधी समस्याओं—जैसे तर्क या गणितीय अशुद्धियों की पहचान—के लिए इस्तेमाल करना चाहिए।
प्रोडक्शन कोड में त्रुटियों को संभालने या डेटा को मान्य करने के लिए, exception handling कॉन्स्ट्रक्ट्स शामिल करें ताकि कोड त्रुटियों से शालीनता से उबर सके, डिबगिंग के लिए प्रासंगिक जानकारी लॉग कर सके, और उपयोगकर्ताओं को अर्थपूर्ण फीडबैक दे सके।
Python में assert स्टेटमेंट से जुड़ी आम गलतियाँ और भ्रांतियाँ
Python में assert स्टेटमेंट का उपयोग करते समय एक आम गलती है पैरेंथेसिस (कोष्ठक) का उपयोग करना। यह समझने योग्य है क्योंकि कई फ़ंक्शंस पैरेंथेसिस का उपयोग करते हैं और उन्हें शामिल करना स्वाभाविक लग सकता है। हालाँकि, assert स्टेटमेंट तकनीकी रूप से Python में कोई फ़ंक्शन नहीं है, इसलिए यह विशेष सिंटैक्स का उपयोग करता है। यदि आप पैरेंथेसिस का उपयोग करते हैं, तो आपको संभवतः सिंटैक्स चेतावनियाँ और तार्किक त्रुटियाँ मिलेंगी।
SyntaxWarning: assertion is always true, perhaps remove parentheses?
एक और आम गलती है condition के बाद कॉमा लगाना भूल जाना। ऐसा करने पर सिंटैक्स एरर आएगा।
SyntaxError: invalid syntax
AssertionError exception
जब भी किसी assertion की शर्तें उल्लंघित होती हैं, एक AssertionError exception उठाया जाता है। यह त्रुटि प्रोग्राम के निष्पादन को रोक देती है; आपका सेट किया कोई भी वैकल्पिक त्रुटि संदेश प्रदर्शित होगा। चूँकि assertions का उपयोग मुख्यतः विकास के दौरान आपके कोड का परीक्षण करने के लिए किया जाता है, यदि आपको Python का AssertionError संदेश मिलता है, तो आम तौर पर उसे गंभीरता से लेना चाहिए। यह आपके कोड में किसी घातक खामी की ओर इशारा कर सकता है।
व्यावहारिक अनुप्रयोग
Python में assert स्टेटमेंट का उपयोग कई व्यावहारिक अनुप्रयोगों में किया जा सकता है। हमारा Writing Functions in Python इंटरैक्टिव कोर्स ऐसे कई अभ्यास प्रदान करता है जो आपको महारत हासिल करने में मदद करेंगे। यहाँ दो उदाहरण दिए गए हैं।
किसी फ़ंक्शन के भीतर assert का उपयोग
Assertions का उपयोग करने का एक उपयोगी तरीका यह है कि उन्हें फ़ंक्शंस में डालें। यह सुनिश्चित करने में मदद कर सकता है कि आपके फ़ंक्शंस इच्छित रूप से व्यवहार करें।
defdivide(a, b):assert b !=0,"Division by zero!"return a / b
# Test casesprint(divide(10,2))# Output: 5.0print(divide(8,0))# AssertionError: Division by zero!संचालित द्वारा
unittest के साथ assert का उपयोग
अपने कोड का परीक्षण विकास प्रक्रिया का एक आवश्यक चरण है। Unittest एक लाइब्रेरी है जिसे आपका कोड कुशलता से टेस्ट करने में मदद के लिए डिज़ाइन किया गया है, और यह ऐसा करने के लिए assert स्टेटमेंट्स का उपयोग करती है। मैं assert स्टेटमेंट्स का अक्सर इसी तरह उपयोग करता/करती हूँ। यहाँ एक उदाहरण है जो आपको हमारे Introduction to Testing in Python कोर्स में मिल सकता है।
विकास के दौरान Python का assert स्टेटमेंट डिबगिंग और आपके कोड में शर्तों की पुष्टि करने के लिए एक अहम टूल है। यद्यपि मान्यताओं की जाँच के लिए यह सरल और प्रभावी है, प्रोडक्शन में इस पर निर्भर नहीं होना चाहिए क्योंकि कम्पाइल किए गए कोड में इसे निष्क्रिय किया जा सकता है। इसके बजाय, सुदृढ़ त्रुटि प्रबंधन के लिए exception handling का उपयोग किया जाना चाहिए।
मैं एक पीएचडी हूँ, जिसके पास जैविक अनुसंधान परिवेश में डेटा के साथ काम करने का 13 वर्षों का अनुभव है। मैं Python, MATLAB और R सहित कई प्रोग्रामिंग भाषाओं में सॉफ्टवेयर बनाती/बनाता हूँ। मुझे सीखने के प्रति अपने प्रेम को दुनिया के साथ साझा करने का जुनून है।
Python प्रोग्रामिंग में
assertस्टेटमेंट आपके कोड में बुनियादी सत्य स्थापित करने का एक टूल है। यह डेवलपर्स को अपने कोड के भीतर मान्यताओं को परखने की शक्ति देता है। इस ट्यूटोरियल में, हम Python केassertस्टेटमेंट में महारत हासिल करेंगे—इसके सिंटैक्स, उपयोग और डिबगिंग व त्रुटि पहचान में अनुप्रयोग सहित। Python केassertस्टेटमेंट में दक्ष होकर, हम एक विशेषज्ञ Python Programmer बनने के एक कदम और करीब होंगे।संक्षिप्त उत्तर: Python Assertions कैसे लिखें
assertस्टेटमेंट का सिंटैक्स सीधा-सादा है:यहाँ,
conditionउस अभिव्यक्ति को संदर्भित करता है जिसकी जाँच की जा रही है, जबकिmessageएक वैकल्पिक त्रुटि संदेश है जो असेर्शन विफल होने पर दिखाई देता है।यहाँ कुछ assertions हैं जिन्हें आप अपने Python कोड में आज़मा सकते हैं। पहले मामले में, अभिव्यक्ति
3<4>5तार्किक रूप से गलत है, इसलिए Python हमारे द्वारा दिए गए संदेश "Math does not work that way." के साथ एकAssertionErrorउठाता है। दूसरे मामले में, अभिव्यक्ति0==0एक तौटोलॉजी है, इसलिए हमें "This shouldn't throw an error." संदेश कभी नहीं दिखता।Python के assert स्टेटमेंट का अवलोकन
अब चलिए Python के
assertस्टेटमेंट को और करीब से देखते हैं—यह कैसे और क्यों उपयोग किया जाता है। इस ट्यूटोरियल के अंत तक, आप Python मेंassertस्टेटमेंट का उपयोग करने में माहिर हो जाएंगे।Python assertions क्या हैं?
सामान्य रूप से, प्रोग्रामिंग में assertions ऐसे कॉन्स्ट्रक्ट हैं जो कोडबेस में शर्तों की सत्यता की पुष्टि करते हैं। दूसरे शब्दों में, ये वे सत्य हैं जिनका प्रोग्राम को पालन करना चाहिए, अन्यथा त्रुटि फेंकी जाएगी। Python "assert" शब्द का उपयोग करके इन प्रोग्रामिंग assertions को बहुत ही प्रत्यक्ष सिंटैक्स से लागू करता है:
assertस्टेटमेंट हमें ऐसे assertions बनाने देता है।Python assertions का उपयोग कब करें
Assertions डिबगिंग, मान्यताओं की पुष्टि करने और विशेष शर्तों के तहत आपके कोड के अपेक्षित व्यवहार को सुनिश्चित करने के लिए अमूल्य हैं। इनके जरिए आप कंप्यूटर को बताते हैं कि आप उससे क्या अपेक्षा रखते हैं और कहते हैं कि जब वह कुछ अलग कर रहा हो तो रुक जाए। यह तब उपयोगी है जब आप कोई नया प्रोग्राम बना रहे हों या किसी फ़ीचर को जोड़ रहे हों या किसी मौजूदा ऐप को अपडेट कर रहे हों।
Assertions उन परिस्थितियों में खासतौर पर चमकते हैं जहाँ डेवलपर्स को अपने कोडबेस में preconditions, postconditions या invariants लागू करने होते हैं। ये गार्डरेल्स की तरह काम करते हैं—यदि कुछ शर्तें उल्लंघित हों तो कोड को आगे बढ़ने से रोकते हैं—और इस तरह संभावित बग्स का जल्दी पता लगाने में मदद मिलती है।
कोड में रणनीतिक रूप से assertions लगाने से आप त्रुटियों को उनके स्रोत के करीब पकड़ सकते हैं, जिससे डिबगिंग सरल हो जाती है। DataCamp का Python Developer करियर ट्रैक सभी स्तरों के आकांक्षी डेवलपर्स के लिए फंक्शनल प्रोग्रामिंग कौशल का अभ्यास करने का बढ़िया कोर्स है क्योंकि इसमें बुनियादी और उन्नत दोनों तरह की अवधारणाओं पर अभ्यास शामिल हैं।
Python assertions का उपयोग कब न करें
हालाँकि विकास के दौरान assertions अमूल्य हैं, कुछ परिदृश्य ऐसे होते हैं जहाँ इनका उपयोग अनुचित हो सकता है।
यह समझना महत्वपूर्ण है कि जब आपका कोड प्रोडक्शन के लिए कम्पाइल होता है, तो assertions को वैश्विक रूप से अक्षम किया जा सकता है। इसका मतलब है कि आपको assertions पर रन-टाइम समस्याओं को संभालने के लिए निर्भर नहीं होना चाहिए, जैसे कि उपयोगकर्ता द्वारा गलत डेटा इनपुट करना। इसके बजाय, इन्हें विकास संबंधी समस्याओं—जैसे तर्क या गणितीय अशुद्धियों की पहचान—के लिए इस्तेमाल करना चाहिए।
प्रोडक्शन कोड में त्रुटियों को संभालने या डेटा को मान्य करने के लिए, exception handling कॉन्स्ट्रक्ट्स शामिल करें ताकि कोड त्रुटियों से शालीनता से उबर सके, डिबगिंग के लिए प्रासंगिक जानकारी लॉग कर सके, और उपयोगकर्ताओं को अर्थपूर्ण फीडबैक दे सके।
त्रुटियाँ खोजने और उन्हें सुधारने के बारे में अधिक जानने के लिए हमारा Exception and Error Handling in Python ट्यूटोरियल देखें या हमारा Associate Data Scientist in Python कोर्स करें।
Python में assert स्टेटमेंट से जुड़ी आम गलतियाँ और भ्रांतियाँ
Python में
assertस्टेटमेंट का उपयोग करते समय एक आम गलती है पैरेंथेसिस (कोष्ठक) का उपयोग करना। यह समझने योग्य है क्योंकि कई फ़ंक्शंस पैरेंथेसिस का उपयोग करते हैं और उन्हें शामिल करना स्वाभाविक लग सकता है। हालाँकि,assertस्टेटमेंट तकनीकी रूप से Python में कोई फ़ंक्शन नहीं है, इसलिए यह विशेष सिंटैक्स का उपयोग करता है। यदि आप पैरेंथेसिस का उपयोग करते हैं, तो आपको संभवतः सिंटैक्स चेतावनियाँ और तार्किक त्रुटियाँ मिलेंगी।एक और आम गलती है condition के बाद कॉमा लगाना भूल जाना। ऐसा करने पर सिंटैक्स एरर आएगा।
AssertionError exception
जब भी किसी assertion की शर्तें उल्लंघित होती हैं, एक
AssertionErrorexception उठाया जाता है। यह त्रुटि प्रोग्राम के निष्पादन को रोक देती है; आपका सेट किया कोई भी वैकल्पिक त्रुटि संदेश प्रदर्शित होगा। चूँकि assertions का उपयोग मुख्यतः विकास के दौरान आपके कोड का परीक्षण करने के लिए किया जाता है, यदि आपको Python काAssertionErrorसंदेश मिलता है, तो आम तौर पर उसे गंभीरता से लेना चाहिए। यह आपके कोड में किसी घातक खामी की ओर इशारा कर सकता है।व्यावहारिक अनुप्रयोग
Python में
assertस्टेटमेंट का उपयोग कई व्यावहारिक अनुप्रयोगों में किया जा सकता है। हमारा Writing Functions in Python इंटरैक्टिव कोर्स ऐसे कई अभ्यास प्रदान करता है जो आपको महारत हासिल करने में मदद करेंगे। यहाँ दो उदाहरण दिए गए हैं।किसी फ़ंक्शन के भीतर assert का उपयोग
Assertions का उपयोग करने का एक उपयोगी तरीका यह है कि उन्हें फ़ंक्शंस में डालें। यह सुनिश्चित करने में मदद कर सकता है कि आपके फ़ंक्शंस इच्छित रूप से व्यवहार करें।
unittest के साथ assert का उपयोग
अपने कोड का परीक्षण विकास प्रक्रिया का एक आवश्यक चरण है।
Unittestएक लाइब्रेरी है जिसे आपका कोड कुशलता से टेस्ट करने में मदद के लिए डिज़ाइन किया गया है, और यह ऐसा करने के लिएassertस्टेटमेंट्स का उपयोग करती है। मैंassertस्टेटमेंट्स का अक्सर इसी तरह उपयोग करता/करती हूँ। यहाँ एक उदाहरण है जो आपको हमारे Introduction to Testing in Python कोर्स में मिल सकता है।निष्कर्ष
विकास के दौरान Python का assert स्टेटमेंट डिबगिंग और आपके कोड में शर्तों की पुष्टि करने के लिए एक अहम टूल है। यद्यपि मान्यताओं की जाँच के लिए यह सरल और प्रभावी है, प्रोडक्शन में इस पर निर्भर नहीं होना चाहिए क्योंकि कम्पाइल किए गए कोड में इसे निष्क्रिय किया जा सकता है। इसके बजाय, सुदृढ़ त्रुटि प्रबंधन के लिए exception handling का उपयोग किया जाना चाहिए।
बचे हुए प्रश्नों के लिए हमारे Coding Best Practices and Guidelines ट्यूटोरियल पर भी नज़र डालें।