为什么不用担心参数和返回值被识别成了int呢?
我看到参考答案的公式里是直接使用的整数,传进来的参数也是整数,为什么不会造成计算时按照整除计算之类的问题?有没有必要计算时专门使用浮点数来进行计算?
我看到参考答案的公式里是直接使用的整数,传进来的参数也是整数,为什么不会造成计算时按照整除计算之类的问题?有没有必要计算时专门使用浮点数来进行计算?
2019-04-17
这次的参考答案是比较省略的,所以忽略了这些问题。
参考答案里面传回的参数都是使用了math.sqrt(x),这会自动把整数x平方后的数变为浮点数。做下print math.sqrt(4)的实验就可以知道。
如果一般计算,为了避免python整数除法运算自动取整,可以先把传进来的参数浮点化float()
这次参考答案还忽视了,传进的a参数是不能为0的,不然会报错,还有当
,就是b**2-4*a*c的结果小于0
时,方程无实数根
import mathdef quadratic_equation(a, b, c): if a==0: if b==0: return None else: x=float(-c)/b#避免整数相除取整 return x else: r=b**2-4*a*c if r>=0: x1=(-b+math.sqrt(r))/(2*a) x2=(-b-math.sqrt(r))/(2*a) return x1, x2 else: return None
举报