用Python计算一元二次方程的根,但我的结果跟预期结果不一样

def equation(a, b, c):
    m = b * b - 4 * a * c
    import math
    if m >= 0:
        x1 = (-b + math.sqrt(m)) / (2 * a)
        x2 = (-b - math.sqrt(m)) / (2 * a)
        return x1, x2
    else:
        return ("无解")


a, b, c = map(float, input().split())
print(equation(a, b, c))

这该怎么改,我的结果多了括号,并且只有一位小数
主要是函数类型和最后两行输出那一块是pta上给的不能改,我就不会在用float函数去修改结果有几位小数了

您可以在代码中使用round()函数,来将计算结果四舍五入到指定位数。如果您想要保留一位小数,可以使用round(x, 1),其中x是您要四舍五入的数字。您可以将round()函数用于计算出的 x1 和x2 的值,来去除多余的括号。
具体的代码

def equation(a, b, c):
    # 计算判别式
    m = b * b - 4 * a * c
    import math
    if m >= 0:
        # 当判别式大于0时,说明方程有两个解
        x1 = (-b + math.sqrt(m)) / (2 * a)
        x2 = (-b - math.sqrt(m)) / (2 * a)
        return round(x1, 1), round(x2, 1)
    else:
        # 当判别式小于0时,说明方程无解
        return ("无解")

# 输入a,b,c的值
a, b, c = map(float, input().split())
# 输出计算结果
print(equation(a, b, c))

这个程序好像没有啥问题呀?
一位小数是因为结果真的只有一位,或是整数,您换个别的数字输入觉看出差别了。
至于括号,equation函数返回的x1,x2是个元组,当然会有括号,如果要使输出变得易读,可以适当修饰,比如:

result = equation(a, b, c)
if type(result) != str:
    print('方程解得x1 = %s,x2 = %s' % (result[0],result[1]))
else:
    print(result)

https://www.jb51.net/article/248253.htm

能把您的运行情况贴在下方吗?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^