为什么在这个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@Kasra
input
仅返回
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