2017-02-26 62 views
-3

在python 3.5中使用此代碼的'二次公式';有什麼辦法可以打印ValueError的東西嗎?

def quad(a,b,c): 
    d = (b**2) - (4*a*c) 
    num1 = (-b+math.sqrt(d))/(2*a) 
    num2 = (-b-math.sqrt(d))/(2*a) 
    print ("Your solutions are", num1, "and", num2) 

的代碼工作正常,但有什麼辦法,我要補充的是顯示(「數學錯誤」)的打印功能,當NUM1和NUM2值顯示爲「ValueError異常:數學域誤差」

進出口尋找這樣的事情...

if num1 or num2 = ValueError: # I can't figure out how to 'word' this 
    print ("Math Error") 
+0

你ç應該測試'd <0'嗎?甚至打印那麼複雜的解決方案? – LutzL

回答

0

只需使用一個平均正常的異常處理程序

import sys 

def quad(a,b,c): 
    try: 
     d = (b**2) - (4*a*c) 
     num1 = (-b+math.sqrt(d))/(2*a) 
     num2 = (-b-math.sqrt(d))/(2*a) 
     print ("Your solutions are", num1, "and", num2) 
    except ValueError as e: 
     print("Math error", e, file=sys.stderr) 
相關問題