Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में एसर्टन्स (Assertions)


एक एसर्टन एक सैनिटी-चेक है जिसे आप अपने प्रोग्राम के टेस्टिंग के पूरा होने पर चालू या बंद कर सकते हैं।

एसर्टन के बारे में सोचने का सबसे आसान तरीका इसे raise-if स्टेटमेंट (या अधिक सटीक रूप से, raise-if-not स्टेटमेंट) के समान मानना है। एक एक्सप्रेशन का परीक्षण किया जाता है, और यदि परिणाम गलत आता है, तो एक एक्सेप्शन उठाया जाता है।

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

assert स्टेटमेंट

जब यह एक assert स्टेटमेंट का सामना करता है, तो पायथन साथ वाले एक्सप्रेशन का मूल्यांकन करता है, जो उम्मीद है कि true होगा। यदि एक्सप्रेशन false है, तो पायथन AssertionError एक्सेप्शन उठाता है।

assert के लिए सिंटैक्स है:

assert Expression[, Arguments]

यदि एसर्टन विफल होता है, तो पायथन ArgumentExpression को AssertionError के आर्गुमेंट के रूप में उपयोग करता है। AssertionError एक्सेप्शन्स को किसी अन्य एक्सेप्शन की तरह try-except स्टेटमेंट का उपयोग करके पकड़ा और हैंडल किया जा सकता है, लेकिन यदि हैंडल नहीं किया गया, तो वे प्रोग्राम को समाप्त कर देंगे और ट्रेसबैक उत्पन्न करेंगे।

उदाहरण

यहां एक फ़ंक्शन है जो डिग्री केल्विन से तापमान को डिग्री फारेनहाइट में परिवर्तित करता है। चूंकि शून्य डिग्री केल्विन उतना ही ठंडा है जितना यह हो सकता है, फ़ंक्शन बाहर निकल जाता है यदि यह एक नकारात्मक तापमान देखता है:

#!/usr/bin/python
def KelvinToFahrenheit(Temperature):
    assert (Temperature >= 0), "Colder than absolute zero!"
    return ((Temperature-273)*1.8)+32

print KelvinToFahrenheit(273)
print int(KelvinToFahrenheit(505.78))
print KelvinToFahrenheit(-5)

आउटपुट

जब उपरोक्त कोड निष्पादित होता है, तो यह निम्नलिखित परिणाम देता है:

32.0
451
Traceback (most recent call last):
  File "test.py", line 9, in 
    print KelvinToFahrenheit(-5)
  File "test.py", line 4, in KelvinToFahrenheit
    assert (Temperature >= 0), "Colder than absolute zero!"
AssertionError: Colder than absolute zero!

  1. - क्या Python के if क्लॉज में pass स्टेटमेंट का उपयोग कर सकते हैं?

    Python में, `pass` कीवर्ड एक डमी स्टेटमेंट है। इसका उपयोग वहां किया जाता है जहां सिंटैक्स आवश्यकता को पूरा करने के लिए एक स्टेटमेंट आवश्यक होता है लेकिन वास्तविक प्रोसेसिंग लॉजिक अभी तक अंतिम रूप नहीं दिया गया है। इसे `if` के साथ-साथ `else` ब्लॉक में भी उपयोग किया जा सकता है। if expr == True: p

  1. - Python में if...else स्टेटमेंट का बेसिक सिंटैक्स क्या है?

    Python में, कंडीशनल स्टेटमेंट `if` में एक वैकल्पिक `else` क्लॉज हो सकता है। `if` स्टेटमेंट के बाद का इंडेंटेड ब्लॉक तब निष्पादित होता है जब `if` के सामने का लॉजिकल एक्सप्रेशन true होता है। यदि प्रोग्राम द्वारा एक्सप्रेशन false होने पर एक वैकल्पिक कार्रवाई की जानी है, तो इसे `else` के बाद एक और इंडे

  1. - पायथन में assert स्टेटमेंट का उपयोग क्या है?

    assert स्टेटमेंट का निम्न सिंटैक्स होता है: assert , उपरोक्त लाइन को इस प्रकार पढ़ा जाता है: यदि फाल्स मूल्यांकन करता है, तो एक एक्सेप्शन उठाया जाता है और आउटपुट होगा। यदि हम किसी कोड ब्लॉक या एक्सप्रेशन का परीक्षण करना चाहते हैं तो हम इसे assert कीवर्ड के बाद रखते हैं। यदि टेस्ट पास होता है या ए