我正在计算机科学课上做一个数学项目,我需要帮助修复我的代码...这是二次方程式
import math
play = 0
print("ax**2 + bx + c = 0")
while play==0:
a = float(input("Enter A: "))
b = float(input("Enter B: "))
c = float(input("Enter C: "))
d = (b**2) - (4*a*c)
solution1 = (-b - math.sqrt (d))/(2*a)
solution2 = (-b + math.sqrt (d))/(2*a)
print("The X value's are", solution1 ,solution2)
break
我不知道如何解决这个问题。
答案 0 :(得分:2)
您没有验证二次方程没有解的情况。查看示例输入:
gonczor@wiktor-papu:~/tmp$ python3 mymath.py
ax**2 + bx + c = 0
Enter A: 1
Enter B: 2
Enter C: 1
The X value's are -1.0 -1.0
gonczor@wiktor-papu:~/tmp$ python3 mymath.py
ax**2 + bx + c = 0
Enter A: 1
Enter B: 5
Enter C: 7
Traceback (most recent call last):
File "mymath.py", line 17, in <module>
solution1 = (-b - math.sqrt (d))/(2*a)
ValueError: math domain error
您正试图用负数制作平方根。