为什么在这个python代码中浮点数没有被归类为有效的输入
如果输入不是数字,此代码允许整数通过并输出消息,但不允许浮点数通过。如何解决此问题?您不能使用为什么在这个python代码中浮点数没有被归类为有效的输入,python,python-3.x,Python,Python 3.x,如果输入不是数字,此代码允许整数通过并输出消息,但不允许浮点数通过。如何解决此问题?您不能使用n1==float检查对象的类型 另外,由于python 3中输入的结果是字符串,因此需要将n1转换为适当的格式进行检查,如float(n1)和check,但在这种情况下,我建议将if更改为: isinstance(n1,float) 你可以这样试试 try: if if n1.isdigit() or float(n1) : print("" + n1)
n1==float
检查对象的类型
另外,由于python 3中输入的结果是字符串
,因此需要将n1
转换为适当的格式进行检查,如float(n1)
和check,但在这种情况下,我建议将if
更改为:
isinstance(n1,float)
你可以这样试试
try:
if if n1.isdigit() or float(n1) :
print("" + n1)
m = input("Enter method (+ - / *): ")
except ValueErorr:
print("That is not a valid number!")
或
还是说是个病人number@Kasrainput
仅返回string
@AdemÖztaş,否,如果不是一个数字引起值或,则我通过添加try
来细化该值@Kasra Python 2.x返回NameError,Python 3.x返回ValueErrorYep!而OP使用的是3.x!我如何改变第一种方法,使它也能寻找负浮点数?想想为什么给定的解决方案适用于小数,然后你可以将其应用于负数。我已经这样做了,我需要它能够知道输入是否是负小数,我如何改变第一种方法,使它也可以查找负浮点@阿德姆Öztaş
try:
if if n1.isdigit() or float(n1) :
print("" + n1)
m = input("Enter method (+ - / *): ")
except ValueErorr:
print("That is not a valid number!")
if n1.replace('.','').replace('-','').isdigit():
def isfloat(value):
try:
float(value)
return True
except ValueError:
return False