0


Python求解一元二次方程根

本文使用Python实现一元二次方程求根公式,主要演示运算符和几个内置函数的用法,封面图片与本文内容无关。

def root(a, b, c, highmiddle=True):
#首先保证接收的参数a,b,c都是数字,并且a不等于0
#由于计算机表示实数时存在精度的问题,所以不能使用==来判断实数是否为0
#函数的最后一个参数highmiddle为True表示高中,False表示初中
if not isinstance(a, (int, float, complex)) or abs(a)<1e-6:
print('error')
return
if not isinstance(b, (int, float, complex)):
print('error')
return
if not isinstance(c, (int, float, complex)):
print('error')
return

#delta<0时无解
d = b**2 - 4*a*c
#根据一元二次方程求根公式进行计算
#当d<0时,在实数域内无解,d**0.5会得到复数
x1 = (-b + d**0.5) / (2*a)
x2 = (-b - d**0.5) / (2*a)

if isinstance(x1, complex):
    if highmiddle:
        #高中阶段需要考虑复数根,实部和虚部都保留3位小数
        x1 = round(x1.real, 3) + round(x1.imag, 3)*1j
        x2 = round(x2.real, 3) + round(x2.imag, 3)*1j
        return (x1, x2)
    else:
        #初中阶段只考虑实数根
        print('no answer')
        return
#如果是实数根,保留3位小数
return (round(x1,3), round(x2,3))

r = root(1, 2, 4)
if isinstance(r, tuple):
print('x1={0[0]}\nx2={0[1]}'.format(r))


本文转载自: https://blog.csdn.net/dongfuguo/article/details/118704685
版权归原作者 dongfuguo 所有, 如有侵权,请联系我们删除。

“Python求解一元二次方程根”的评论:

还没有评论