在Python中使用`if a == b == c: pass;`有副作用吗?
if a == b == c:
# do something
假设 a, b, c
是字符串变量。如果我使用上面的代码片段来执行 # do something
,只有在这三个字符串都相等的情况下,这样做会有什么潜在的问题吗?
我之所以问这个,是因为我需要把三个变量进行比较,而我遇到了很多情况:
if a == b == c:
# do something
elif a == b != c:
# do something
elif a != b == c.
# do something
etc...
也许还有更好的方法来写这个代码?
4 个回答
6
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶。
有些时候,我们可能会遇到一些问题,比如数据不太对劲,或者我们想要的数据没有被正确地传递。这就像是我们在倒水的时候,水可能会洒出来,或者没有倒到目标水桶里。
为了避免这些问题,我们可以使用一些工具和方法来确保数据能够顺利地传递。就像在倒水的时候,我们可以使用一个漏斗,这样水就不会洒出来了。
总之,处理数据的过程需要小心翼翼,确保每一步都能顺利进行,这样才能得到我们想要的结果。
s = set([a, b, c])
if len(s) == 1:
print 'All equal'
elif len(s) == 3:
print 'All different'
else:
l = list(s)
print '%s and %s are different' % (l[0], l[1])
16
来自官方文档:
比较可以随意连接在一起;比如,x < y <= z 其实等同于 x < y 和 y <= z,只不过 y 只会被计算一次(但在这两种情况下,如果 x < y 被判断为假,z 根本不会被计算)。
这样做不会有其他影响。
16
在你以某种方式使用它之前,应该不会有副作用。
不过要注意一些事情,比如:
if (a == b) == c:
因为这会打断连锁操作,你会在比较 True
或 False
以及 c
的值。