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
你要先检查交叉情况,确保a
和c
符号相同
怎么样:
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 -> 增加的情况
我正在尝试定义一个 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
你要先检查交叉情况,确保a
和c
符号相同
怎么样:
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 -> 增加的情况