+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

二次函数的根:数学域错误[重复]

发布于2020-08-04 18:38     阅读(624)     评论(0)     点赞(26)     收藏(5)


我想定义一个返回根值的函数。它应该总是返回一些东西。

如果b ** 2-4 * a * c <0,则应该返回[],但它显示为错误。

我的代码现在是这样的:

    from math import*
    def solve(a, b, c):
        x = sqrt(b**2 - 4*a*c)

        if x > 0:
           x1 = (-b + x)/(2*a)
           x2 = (-b - x)/(2*a)
           return [x1, x2]

        elif x == 0:
           x1 = x2 = -b/(2*a)
           return [x1]

       else:
           return []

谢谢!


解决方案


sqrt不会接受负值。为了避免这种情况,您可以在计算平方根之前检查“ else”条件:

from math import*
def solve(a, b, c):

    formula = b**2 - 4*a*c

    if formula < 0:
       return []

    x = sqrt(formula)

    if x > 0:
       x1 = (-b + x)/(2*a)
       x2 = (-b - x)/(2*a)
       return [x1, x2]

    elif x == 0:
       x1 = x2 = -b/(2*a)
       return [x1]


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/471391/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)