我正在做一个通用的重载运算符函数,它将接受运算符 +、- 、、/ 和 *。运算符以变量“op”的形式出现。我的问题是除以零。第二个 elif 语句是我试图这样做的地方,但它并不完全正确。我要介绍的是两件事:self.list[L][0] == operand.list[R][0]
如果右侧操作数在除法时不等于零(即op == '/'
和operand.list[R][1] != 0
),则允许条件为真。如果它是错误的,那么它只是转到 else 语句。
def math(self, op, operand):
obj = Object()
L, R = 0, 0
while (L < len(self.list) and R < len(operand.list)):
if self.list[L][0] > operand.list[R][0]:
R += 1
elif self.list[L][0] < operand.list[R][0]:
L += 1
elif (self.list[L][0] == operand.list[R][0]) and op == '*' or op == '**' or op == '+' or op == '-' or (op == '/' and operand.list[R][1] != 0):
obj.append(self.list[L][0], op(self.list[L][1], operand.list[R][1]))
L += 1
R += 1
else:
L += 1
R += 1
return obj