张牙五爪 2023-01-26 22:45 采纳率: 100%
浏览 47
已结题

用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函数去修改结果有几位小数了

  • 写回答

5条回答 默认 最新

  • lidiyscrp 2023-01-26 23:07
    关注

    您可以在代码中使用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))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 已采纳回答 1月29日
  • 修改了问题 1月29日
  • 创建了问题 1月26日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改