a = int(raw_input("A?"))
b = int(raw_input("B?"))
c = int(raw_input("C?"))
minusb = -b
bsquared = b**2
fourac = 4*a*c
twoa = 2*a
discriminant = bsquared + fourac
if discriminantt<0:
print "This quadratic have no real root."
elif determinant>=0:
answer1 = (minusb+((bsquared-fourac)**0.5))/twoa
answer2 = (minusb-((bsquared-fourac)**0.5))/twoa
print "X = %s and %s" % (answer1, answer2)
但是,当行列式小于0时,不是打印它而是简单地运行一条错误消息,表示无法完成answer1和answer2。如果判别式&lt; 0?
,如何使程序停止运行? PS:我只是想练习在线学习的东西。对不起,如果我的代码很可怕XD答案 0 :(得分:0)
form_valid()
对于二次描述= bsqaured-4 * a * c 取决于它的价值根是真实的还是想象的
答案 1 :(得分:-1)
Python捕获的方法是使用 buildParamter=true>variable.txt
/ try
构造捕获异常,而不是试图阻止错误发生。
E.g:
except
异常将从try:
answer1 = (minusb+((bsquared-fourac)**0.5))/twoa
answer2 = (minusb-((bsquared-fourac)**0.5))/twoa
print("X = %s and %s" % (answer1, answer2))
except ValueError as e:
print("oops: %s" % e)
类继承,但在几乎所有情况下,您都希望捕获特定的异常,例如: (在上面的示例中)类型Exception
的例外。
您可以轻松获取需要捕获的异常类型
ValueError
子句)并阅读错误消息:它将提供引发异常的类型。您可以在异常处理程序中执行您认为合适的任何错误处理。例如如果它捕获错误,以下将退出程序:
except
另外,import sys
try:
answer1 = (minusb+((bsquared-fourac)**0.5))/twoa
answer2 = (minusb-((bsquared-fourac)**0.5))/twoa
print("X = %s and %s" % (answer1, answer2))
except ValueError as e:
print("oops: %s" % e)
sys.exit(1)
在Python3中不再有效(你应该使用它);改为使用print "foo"
(在Python2中也有效)
答案 2 :(得分:-1)
只需使用
import sys
sys.exit(1)
退出终止运行。 1
可以是您喜欢的任何数字。通常0
用于表示程序已成功执行,1
表示发生错误。在此处了解更多相关信息How to exit from python
答案 3 :(得分:-1)
看看你的代码,你正在做一个愚蠢的错误,因为你的代码无效。
看看这三行代码:
discriminant = bsquared + fourac
if discriminantt<0:
elif determinant>=0:
你在不知不觉中使用了三个不同的变量。