我知道这是在要求我使用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
在我的评论和@Joran Beasley的回答中描述的程序:
如果愿意,还可以检查判别式是否为零,并且只打印两个解中的一个(在本例中,这两个解显然相等)。在
首先从命令行读取输入(提示:use
sys.argv
)。此外,您还需要了解如何将字符串转换为python数字。在然后检查
b**2-4*a*c < 0
。如果是,那么提出一个ValueError
,说明没有真正的根。在否则求根:
roots = (b ± sqrt(b**2-4*a*c)) / (2*a)
相关问题 更多 >
编程相关推荐