这个为什么不管输入什么数据类型都返回“输出有误”啊
a=input()
b=type(a)
if b in ['int','float','complex']:
print(pow(a,2))
else:
print("输入有误")
因为a是string类型,所以你这么写,永远是输出错误
可以写
a=eval(input())
你的第一个错误在于input()方法只返回str类型,所以你应该加一个类型转换
第二个错误在于type()方法的返回值是:
class 'int'(其实这个外边是包着<的,但是会被csdn给弄掉)
的这么一个东西,所以你的代码要这么写:
try:
a = float(input())
b = type(a)
print(pow(a,2))
except:
print("ERR")
这段代码中,采用了了一个强制类型转换,并且配合了try语句,捕获了强制转换可能存在的错误。
可以看到,你其实没有必要比较类型,直接强制类型转换在配合try语句捕获违规输入导致的错误就好。
如果真的要看某个变量是否是某一类型,可以这么写:
if type(a) in [int,float,complex]:
print(pow(a,2))
else:
print("输入有误")