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不能完成。如果判別式< 0,你如何使程序停止運行?如何使程序打印而不是提供錯誤信息?
PS:這是我只是試圖練習我在網上學到的東西。很抱歉,如果我的代碼是可怕的XD
你的意思是判斷而不是行列式?因爲這將是bsquared - fourac,這就是你想要檢查的值是否大於0. – Evert
你當前檢查的值是> = 0不是你取平方根的值,因此即使在檢查,你的程序可能仍然試圖取一個負值的平方根,導致錯誤。 – Evert
你是對的XD,改變它 – PCK11800