用python求二元一次方程的根,显示math domain error,错在哪?

2025-06-22 01:23:41
推荐回答(2个)
回答1:

楼上说的非常正确,给大家个参考程序吧,我也正遇到过,使用Python的错误判断输出结果就可以了

import math
def calcRoot(a, b, c):
    # a,b,c = int(a), int(b), int(c)
    try:
        value = b**2 - 4*a*c  # b*b - 4*a*c
        sq = math.sqrt(value)
        x1 = (-b + sq) / (2 * a)
        x2 = (-b - sq) / (2 * a)
        if x1 == x2:
            # return x1
            print('x1=x2= %.2f' % x1)
        else:
            # return '%.2f'%x1, round(x2,2)
            print('x1= %.2f\nx2= %.2f' % (x1, x2))
    except:
        print('该方程无根')

calcRoot(13,-100,31)
# print(re)

运行以上程序,就能看到下面效果了;输出加了格式化,否则输出的是一长串浮点数

回答2:

测试下b*b-4*a*c是否大于等于0
a不等于0