作者:汪健宜婉瑜 | 来源:互联网 | 2023-10-14 12:54
有两个变量,a和b,每个变量可以是正数或负数.需要根据四个条件设置标识符.我怎样才能最小化下面给出的代码,以便可以实现相同的任务?列表理解或按位操作或类似的操作可能会缩短这一点,但
有两个变量,a和b,每个变量可以是正数或负数.需要根据四个条件设置标识符.我怎样才能最小化下面给出的代码,以便可以实现相同的任务?列表理解或按位操作或类似的操作可能会缩短这一点,但我不知道如何做到这一点.
if a > 0 and b > 0:
direction = 'NORTH EAST'
elif a > 0 and b <0:
direction = 'SOUTH EAST'
elif a <0 and b <0:
direction = 'SOUTH WEST'
elif a <0 and b > 0:
direction = 'NORTH WEST'
解决方法:
您可以使用这样的条件表达式
("NORTH " if b > 0 else "SOUTH ") + ("EAST" if a > 0 else "WEST")
还有一个可以在这里使用的hack
["SOUTH ", "NORTH "][b > 0] + ["WEST", "EAST"][a > 0]
这是有效的,因为在Python boolean values are actually integers中.以下在Python中都是如此
print 1 == True
# True
print 0 == False
# True