我正在嘗試在下面的二次根程序(使用類)中創建一個用戶定義的異常。如果輸入列表長度不是 3(3 個系數需要 3 個輸入),目的是拋出錯誤并返回。此外,如果出現輸入錯誤,我希望代碼停止執行。但是,此代碼不起作用,它不會引發異常并且代碼會繼續執行。如果您能指導我,將不勝感激。class quadRoots(): def __init__(self,coeff): self.A = coeff[0]/coeff[0] self.B = coeff[1]/coeff[0] self.C = coeff[2]/coeff[0] self.Z = 0 self.R_1 = 0 self.R_2 = 0 self.coeff = len(coeff) try: self.coeff == 3 except: print("Input size is not valid") def roots(self): import cmath self.Z = cmath.sqrt((self.B**2)/4 - (self.C)) self.R_1 = ((-(self.B)/2) + self.Z) self.R_2 = ((-(self.B)/2) - self.Z) return [self.R_1,self.R_2]def mult(self): return quadRoots.roots(self)[0] * quadRoots.roots(self)[1]def sumRoots(self): return [complex(-(self.B))]def prodRoots(self): return [complex(self.C)]quadroots([1,-9,14,15]).roots()
1 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
try:
self.coeff == 3
except:
print("Input size is not valid")
Try-Except 鏈不是這樣工作的。它在出現錯誤時起作用。但是在這里,沒有錯誤。我建議你使用assert self.coeff == 3, "Input size is not valid". 相反,如果 self.coeff 不等于 3,它會引發錯誤并退出程序。
這樣整個 try except 鏈可以用一行替換。assert self.coeff == 3, "Input size is not valid"
添加回答
舉報
0/150
提交
取消