演算子 +、-、、/、および *を受け入れる一般的なオーバーロードされた演算子関数を実行しています。演算子は、変数「op」として入ります。私の問題は、除算をゼロにすることです。2 番目の elif ステートメントは、これを実行しようとしている場所ですが、正確ではありません。私がカバーしようとしているのは 2 つのことです: 条件が true になることを許可し、self.list[L][0] == operand.list[R][0]
次に、除算のときに右側のオペランドがゼロに等しくない場合 (つまりop == '/'
とoperand.list[R][1] != 0
)。false の場合は、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