Python:带加法运算的条件switch语句

Python: conditional switch statement with addition operation

我正在尝试定义一个 switch/conditional 语句来识别两个标量变量的加法运算是否适合三种情况之一,即增加、减少和 change/cross(负到正),例如

增加:

A = 5
B = 5
A + B = 10

A = -5
B = -5
A + B = -10

A = 0
B = 5
A + B = 5

A = 0
B = -5
A + B = 5

减少:

A = 5
B = -2
A + B = 3

A = 5
B = -5
A + B = 0

A = -5
B = 5
A + B = 0

十字架:

A = -5
   B = 10
   A + B = 5

我已尝试按如下方式实现 python 中的逻辑。

C = A + B
if (abs(0-C)<abs(B)):
   print("The addition of A and B is a CROSS type")
elif (abs(0-C)>abs(B)):
   print("The addition of A and B is an INCREASE type")
else:
   print("The addition of A and B is an DECREASE type")

显然这失败了,我希望得到一些关于如何最好地实现它的建议。谢谢你的帮助。

假设c = a + b 交叉可以用两个检查 if (a > 0 and c < 0) or (a < 0 and c > 0)

通常在数学上,这是衡量增加、减少的方法。 对于增加和减少,您只需检查 if a > c: increase if a < C: decrease

阅读您的评论后进行编辑;您实际上需要先检查交叉大小写,然后检查绝对值是否大于或小于以确定您想要的 "increase/decrease" 类型。

if abs(a) > abs(c): decrease

elif abs(a) < abs(c): increase

else: no change

你要先检查交叉情况,确保ac符号相同

怎么样:

if sign(C) != sign(A): print("cross")
elif abs(C) < abs(A): print("decrease")
else: print("increase")

sign取自numpy。我为 A, B < 0 的情况添加了 abs。谢谢@马克

怎么样:

if C * A < 0:
    print('cross')
elif abs(A) > abs(C):
    print('decrease')
else 
    print('increase')

这也适用于 -5 -5 = -10 -> 增加的情况