我正在尝试在下面的二次根程序(使用类)中创建一个用户定义的异常。如果输入列表长度不是 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
提交
取消