用Python求二次多项式的根
我知道这要求我使用if语句。但我怎么能这样做呢 编写一个程序qroots.py,从命令行读取三个浮点a、b、c,并计算/打印二次多项式的根用Python求二次多项式的根,python,Python,我知道这要求我使用if语句。但我怎么能这样做呢 编写一个程序qroots.py,从命令行读取三个浮点a、b、c,并计算/打印二次多项式的根ax**2+bx+c=0。您的程序只需要处理实根存在的情况,即a、b、c的值产生非负判别式b**2− 4ac>=0 当判别式为负值时,您的程序应该只打印一条消息,说明不存在真正的根 提示:math.sqrt()是返回数字平方根的内置函数 到目前为止,我有: import sys import math a = float(sys.argv[1]) b = f
ax**2+bx+c=0
。您的程序只需要处理实根存在的情况,即a、b、c的值产生非负判别式b**2− 4ac>=0
当判别式为负值时,您的程序应该只打印一条消息,说明不存在真正的根
提示:math.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.02.0
首先从命令行读取输入(提示:使用
sys.argv
)。此外,您还需要了解如何将字符串转换为python数字
然后检查b**2-4*a*c<0
。如果是,则提出一个ValueError
,说明没有真正的根
否则求根:
根=(b±sqrt(b**2-4*a*c))/(2*a)
我的评论和@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))
导入系统
从数学导入sqrt
a、 b,c=sys.argv[1:]
a=浮动(a)
b=浮动(b)
c=浮动(c)
如果b**2-4*a*c<0:
打印(“没有真正的根”)
其他:
打印(-b+sqrt(b**2-4*a*c))/(2*a),(-b-sqrt(b**2-4*a*c))/(2*a))
如果您愿意,您还可以检查判别式是否为零,并且只打印两种解决方案中的一种(在本例中,这两种解决方案显然相等)。请阅读如何询问。这不是一个解决家庭作业的网站。展示你所做的事情提示:欢迎来到StackOverflow!在问这个问题之前,你读过了吗?@YanetPedraza不是家庭作业,在线学习,我现在就编辑。这通常意味着你需要的是半个小时的时间和当地的导师在一起,或是走一走,而不是堆积如山。