测试多个变量是否相等:综合解决方案
此查询提出了一个有趣的挑战:将多个变量与特定整数进行比较并生成一个根据结果输出字符串。
要解决这个问题,必须了解 Python 中的布尔表达式的行为像英语句子。例如,提供的代码片段将 or 运算符的每一侧解释为单独的表达式,而不是根据相同的比较来评估所有变量。
要纠正此问题,正确的语法是:
if x == 1 or y == 1 or z == 1:
这确保了对每个变量独立执行比较。
此外,可以使用针对元组:
if 1 in (x, y, z):
或者,更有效的是,可以使用集合进行其恒定成本成员资格测试:
if 1 in {x, y, z}:
此改进的代码利用了集合的事实:无论左侧操作数如何,成员资格测试都有固定的执行时间。
本质上,or 运算符分隔其参数,将每个参数评估为布尔值 表达。但是,即使作为单个表达式进行计算,结果也不会符合所需的行为。这是因为 or 运算符返回第一个参数“truthy”(除 False、数字 0 或空容器之外的值)。因此,只会考虑序列中第一个类似 true 的值,这可能会导致错误的结果。
以上是如何在 Python 中有效测试多个变量的相等性?的详细内容。更多信息请关注PHP中文网其他相关文章!