张牙五爪 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日

悬赏问题

  • ¥15 Stata链式中介效应代码修改
  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 添加组件无法加载页面,某块加载卡住
  • ¥15 网络科学导论,网络控制
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错