हाँ - का उपयोग करें math.nan
।
>>> from math import nan
>>> print(nan)
nan
>>> print(nan + 2)
nan
>>> nan == nan
False
>>> import math
>>> math.isnan(nan)
True
पायथन 3.5 से पहले, कोई भी उपयोग कर सकता था float("nan")
(केस असंवेदनशील)।
ध्यान दें कि यह देखने के लिए कि क्या दो चीजें जो NaN एक दूसरे के बराबर हैं, हमेशा झूठे वापस आएंगी। यह भाग में है क्योंकि दो चीजें जो "एक नंबर नहीं हैं" (सख्ती से बोलना) एक दूसरे के बराबर नहीं हो सकती हैं - देखें कि IEEE754 NaN मानों के लिए झूठे लौटने वाले सभी तुलनाओं के लिए तर्क क्या है? अधिक जानकारी और जानकारी के लिए।
इसके बजाय, उपयोग करें math.isnan(...)
यदि आपको यह निर्धारित करने की आवश्यकता है कि क्या मूल्य NaN है या नहीं।
इसके अलावा, के सटीक अर्थ विज्ञान ==
NaN मूल्य पर आपरेशन सूक्ष्म मुद्दों जब इस तरह के रूप कंटेनर प्रकार के अंदर दुकान NaN करने की कोशिश कर कारण हो सकता है list
या dict
(या जब कस्टम कंटेनर प्रकार का उपयोग)। अधिक विवरण के लिए एक कंटेनर में NaN उपस्थिति के लिए जाँच करना देखें ।
आप पायथन के दशमलव मॉड्यूल का उपयोग करके NaN नंबर भी बना सकते हैं :
>>> from decimal import Decimal
>>> b = Decimal('nan')
>>> print(b)
NaN
>>> print(repr(b))
Decimal('NaN')
>>>
>>> Decimal(float('nan'))
Decimal('NaN')
>>>
>>> import math
>>> math.isnan(b)
True
math.isnan(...)
दशमलव वस्तुओं के साथ भी काम करेगा।
हालाँकि, आप पायथन के अंशों में NaN संख्याओं का निर्माण नहीं कर सकते हैं :
>>> from fractions import Fraction
>>> Fraction('nan')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python35\lib\fractions.py", line 146, in __new__
numerator)
ValueError: Invalid literal for Fraction: 'nan'
>>>
>>> Fraction(float('nan'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python35\lib\fractions.py", line 130, in __new__
value = Fraction.from_float(numerator)
File "C:\Python35\lib\fractions.py", line 214, in from_float
raise ValueError("Cannot convert %r to %s." % (f, cls.__name__))
ValueError: Cannot convert nan to Fraction.
संयोग से, आप भी कर सकते हैं float('Inf')
, Decimal('Inf')
या math.inf
(3.5+) अनंत संख्या आवंटित करने के लिए। (और देखें math.isinf(...)
)
हालांकि , NaN की तरह करना Fraction('Inf')
या Fraction(float('inf'))
अनुमति नहीं है और एक अपवाद को फेंक देगा।
यदि आप यह जांचना चाहते हैं कि कोई संख्या न तो NaN है और न ही अनंत तरीके से जांचने का एक त्वरित और आसान तरीका है, तो आप math.isfinite(...)
पायथन 3.2+ का उपयोग कर सकते हैं ।
यदि आप जटिल संख्याओं के साथ समान जांच करना चाहते हैं, तो cmath
मॉड्यूल में मॉड्यूल के समान फ़ंक्शन और स्थिरांक होते हैं math
: