Python中用isinstance判断多个变量的类型,如何简洁表述呢

例如判断函数A(a,b,c)中abc的变量类型,我觉得写三排isinstance太不靠谱了,如果写成下面这样用for in,是否是最简洁的办法呢,有没有更简洁的办法呢
def quadratic(a,b,c):
for x in (a,b,c):
if not isinstance(x,(int,float)):
return TypeError('bad operand type')
else:
return((-b+(b**2-4*a*c)**0.5)/2,(-b-(b**2-4*a*c)**0.5)/2)
print(quadratic(2,3,1))
print(quadratic(1,3,-4))
额,百度把我的缩进给弄没了,就认为缩进方面没有问题吧,也不考虑数学上的方程有解无解的讨论,单单从语法角度看,有没有更简洁的判断方法呢

第1个回答  2019-03-10
if not isinstance(a+b+c,(int,float))就好了,变量相加就好了;
另外你代码运行了吗?for x in(a,b,c),不是会报错吗?报invalid syntax,x要先定义成=一个集合才是for x in 吧?
第2个回答  2017-02-22
def multi_isinstance(a, b, c):
z = [False for i in (a,b,c) if not isinstance(i, (int, float))]
if z:
return False
else:
return True追问

请问这个z是个什么呢?是个函数还是一个什么东西呢,我看这个用的是[],是一个列表吗

追答

z是自己定义的一个变量,可以随便起名, 它是一个列表;
如果有一类型不匹配这个列表会添加一个False,有多少个类型不匹配,这个列表就会有多少个False,如果都匹配,这个列表是空列表

追问

那么if z是什么意思呢,为什么列表也可以作为if的条件呢

追答

if z 是判断列表z是否为空,当z为空时,z为False,当z不为空时z为True

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网