ইনপুট নিম্নলিখিত হিসাবে হতে পারে:
a="50"
b=50
c=50.1
d="50.1"
1-সাধারণ ইনপুট:
এই ফাংশন ইনপুট সব হতে পারে!
প্রদত্ত ভেরিয়েবলটি সংখ্যাযুক্ত কিনা তা সন্ধান করে। সংখ্যাযুক্ত স্ট্রিংগুলি alচ্ছিক চিহ্ন, যেকোন সংখ্যার, decচ্ছিক দশমিক অংশ এবং alচ্ছিক সূচকীয় অংশ নিয়ে গঠিত। সুতরাং + 0123.45e6 একটি বৈধ সংখ্যাযুক্ত মান। হেক্সাডেসিমাল (যেমন 0xf4c3b00c) এবং বাইনারি (উদাহরণস্বরূপ 0b10100111001) স্বরলিপি অনুমোদিত নয়।
is_numeric ফাংশন
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 ফাংশন
প্রদত্ত ভেরিয়েবলটি ভাসমান কিনা তা সন্ধান করে। ভাসমান স্ট্রিংগুলি optionচ্ছিক চিহ্ন, যেকোন সংখ্যক, ...
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-সংখ্যার ইনপুট:
মান মান সনাক্ত করুন:
>>> isinstance("54", int)
False
>>> isinstance(54, int)
True
>>>
ভাসা শনাক্ত করুন:
>>> isinstance("45.1", float)
False
>>> isinstance(45.1, float)
True