इनपुट निम्नानुसार हो सकता है:
a="50"
b=50
c=50.1
d="50.1"
1-सामान्य इनपुट:
इस फ़ंक्शन का इनपुट सब कुछ हो सकता है!
दिया गया है कि क्या दिया गया चर संख्यात्मक है। न्यूमेरिक स्ट्रिंग्स में वैकल्पिक संकेत, अंकों की कोई संख्या, वैकल्पिक दशमलव भाग और वैकल्पिक घातीय भाग शामिल होते हैं। इस प्रकार + 0123.45e6 एक मान्य संख्यात्मक मान है। हेक्साडेसिमल (जैसे 0xf4c3b00c) और बाइनरी (जैसे 0b10100111001) संकेतन की अनुमति नहीं है।
is_numeric function है
import ast
import numbers
def is_numeric(obj):
if isinstance(obj, numbers.Number):
return True
elif isinstance(obj, str):
nodes = list(ast.walk(ast.parse(obj)))[1:]
if not isinstance(nodes[0], ast.Expr):
return False
if not isinstance(nodes[-1], ast.Num):
return False
nodes = nodes[1:-1]
for i in range(len(nodes)):
#if used + or - in digit :
if i % 2 == 0:
if not isinstance(nodes[i], ast.UnaryOp):
return False
else:
if not isinstance(nodes[i], (ast.USub, ast.UAdd)):
return False
return True
else:
return False
परीक्षा:
>>> is_numeric("54")
True
>>> is_numeric("54.545")
True
>>> is_numeric("0x45")
True
is_float फ़ंक्शन
दिया गया चर दिया गया है या नहीं। फ्लोट स्ट्रिंग्स में वैकल्पिक संकेत, अंकों की कोई भी संख्या शामिल होती है ...
import ast
def is_float(obj):
if isinstance(obj, float):
return True
if isinstance(obj, int):
return False
elif isinstance(obj, str):
nodes = list(ast.walk(ast.parse(obj)))[1:]
if not isinstance(nodes[0], ast.Expr):
return False
if not isinstance(nodes[-1], ast.Num):
return False
if not isinstance(nodes[-1].n, float):
return False
nodes = nodes[1:-1]
for i in range(len(nodes)):
if i % 2 == 0:
if not isinstance(nodes[i], ast.UnaryOp):
return False
else:
if not isinstance(nodes[i], (ast.USub, ast.UAdd)):
return False
return True
else:
return False
परीक्षा:
>>> is_float("5.4")
True
>>> is_float("5")
False
>>> is_float(5)
False
>>> is_float("5")
False
>>> is_float("+5.4")
True
क्या अचरज है ?
2- यदि आप आश्वस्त हैं कि चर सामग्री स्ट्रिंग है :
str.isdigit () विधि का उपयोग करें
>>> a=454
>>> a.isdigit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'int' object has no attribute 'isdigit'
>>> a="454"
>>> a.isdigit()
True
3-संख्यात्मक इनपुट:
int मान का पता लगाएं:
>>> isinstance("54", int)
False
>>> isinstance(54, int)
True
>>>
नाव का पता लगाएं:
>>> isinstance("45.1", float)
False
>>> isinstance(45.1, float)
True