Python二次计算器

时间:2018-10-04 01:52:16

标签: python math

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........")

我只需要它来计算它,如果两个答案都是肯定的,则说明是对还是错。我不确定哪里出了问题(它总是显示数学域错误)

2 个答案:

答案 0 :(得分:0)

您输入的值将强制math.sqrt计算负数的平方根。当我为abc输入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........")

这与另一个示例相似,如果您阅读其他人的代码,可能会碰到它。