import math
a=int(input("Enter 1st value:"))
b=int(input(" Enter 2nd value:"))
c=int(input("Enter 3rd value:"))
x_1 =(-b + math.sqrt(b**2 - 4*a*c)) / (2 * a)
x_2 =(-b - math.sqrt(b**2 - 4*a*c)) / (2 * a)
print(" Are both of the values positive? True or False :",(x_1 >= 0 and x_2 >=0))
input("Press any key to continue........")
我只需要它来计算它,如果两个答案都是肯定的,则说明是对还是错。我不确定哪里出了问题(它总是显示数学域错误)
答案 0 :(得分:0)
您输入的值将强制math.sqrt
计算负数的平方根。当我为a
,b
和c
输入1、4和0时,您的代码可以正常工作。
答案 1 :(得分:0)
import math
import sys
a = int(input("Enter 1st value:"))
b = int(input("Enter 2nd value:"))
c = int(input("Enter 3rd value:"))
# If b^2 - 4ac is less than zero...
if b**2 - 4*a*c < 0:
print("This program is about to throw an error!")
sys.exit() # Quit before anything bad happens
x_1 =(-b + math.sqrt(b**2 - 4*a*c)) / (2 * a)
x_2 =(-b - math.sqrt(b**2 - 4*a*c)) / (2 * a)
print("Are both of the values positive? True or False:", str(x_1 >= 0 and x_2 >=0))
input("Press any key to continue........")
这是解决此问题的另一种方法,您可能会觉得有用。 您可以做的是检查程序是否即将崩溃,然后退出。
您可以像上面一样使用 sys.quit()进行此操作。如果您尝试运行此程序,例如 a = 1 , b = 0 和 c = 1 ,程序将在其之前退出炸毁。
一种更高级的解决方案是使用一种叫做try语句的东西。
import math
import sys
a = int(input("Enter 1st value:"))
b = int(input("Enter 2nd value:"))
c = int(input("Enter 3rd value:"))
try:
x_1 =(-b + math.sqrt(b**2 - 4*a*c)) / (2 * a)
x_2 =(-b - math.sqrt(b**2 - 4*a*c)) / (2 * a)
except:
print("Something went wrong....")
sys.exit()
print("Are both of the values positive? True or False:", str(x_1 >= 0 and x_2 >=0))
input("Press any key to continue........")
这与另一个示例相似,如果您阅读其他人的代码,可能会碰到它。