用Python求二次多项式的根

2024-09-30 04:40:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这是在要求我使用if语句。但我该怎么做呢?在

编写程序qroots.py它从命令行读取三个浮点a、b、c,并计算/打印二次多项式的根ax**2 + bx + c = 0。您的程序只需要处理实根存在时的情况,即a、b、c的值产生非负判别式b**2 − 4ac >= 0。在

当判别式为负数时,您的程序应该只打印不存在真正根的消息。在

提示:数学.sqrt()是返回数字平方根的内置函数。在

到目前为止,我有这个:

import sys
import math

a = float(sys.argv[1])
b = float(sys.argv[2])
c = float(sys.argv[3])

终端应该这样做:

qroots.py 1 -3 2

1.0 2.0


Tags: 命令行pyimport程序ifsys语句ax
2条回答

在我的评论和@Joran Beasley的回答中描述的程序:

import sys
from math import sqrt

a, b, c = sys.argv[1:]
a = float(a)
b = float(b)
c = float(c)
if b**2-4*a*c < 0:
    print("there's no real root")
else:
    print((-b+sqrt(b**2-4*a*c))/(2*a), (-b-sqrt(b**2-4*a*c))/(2*a))

如果愿意,还可以检查判别式是否为零,并且只打印两个解中的一个(在本例中,这两个解显然相等)。在

首先从命令行读取输入(提示:usesys.argv)。此外,您还需要了解如何将字符串转换为python数字。在

然后检查b**2-4*a*c < 0。如果是,那么提出一个ValueError,说明没有真正的根。在

否则求根:roots = (b ± sqrt(b**2-4*a*c)) / (2*a)

相关问题 更多 >

    热门问题