函数return 如果返回表达式的话紧接着调用总是出错
Topic source判断输入参数类型应该是用或来连接吧?与的话逻辑有问题if not isinstance(a,(int,float)) or not isinstance(b,(int,float)) or not isinstance(c,(int,float)):
- 1
判断输入参数类型应该是用或来连接吧?与的话逻辑有问题if not isinstance(a,(int,float)) or not isinstance(b,(int,float)) or not isinstance(c,(int,float)):
长留终南山
import math
def quadratic(a,b,c):
if not (isinstance(a,(int,float)) and isinstance(b,(int,float)) and isinstance(c,(int,float))):
raise TypeError('bad operand type')
return (-b+math.sqrt(b*b-4*a*c))/(2*a) (-b-math.sqrt(b*b-4*a*c))/(2*a)
print('quatratic(1,3,-4)=',quadratic(1,3,-4))
如上写,就会报TypeError: 'int' object is not callable错误,如果返回值写成tuple形式
return ((-b+math.sqrt(b*b-4*a*c))/(2*a),(-b-math.sqrt(b*b-4*a*c))/(2*a))
就不会报错,我看学习例子有 return nx ny这样的,以为都可以不用写成tuple形式呢,不写成tuple形式时,如果去掉后面的print语句,运行也不会报错,不写成tuple形式貌似后面的函数调用函数名被解释成一个变量了。