将多个变量与单个值进行比较
问题描述:
寻求一种方法Python 确定多个变量是否等于特定整数,然后生成由三个字母组成的字符串。例如,给定:
x = 0 y = 1 z = 3 mylist = [] if x or y or z == 0: mylist.append("c") if x or y or z == 1: mylist.append("d") if x or y or z == 2: mylist.append("e") if x or y or z == 3: mylist.append("f")
...预期输出将是 ["c", "d", "f"] 列表。
答案:
提供的代码误解了 Python 中的布尔表达式。 or 运算符分别检查每一侧,得出以下计算结果:
(x == False or y == False) or (y == False or z == False)
要验证至少一个变量等于所需的整数,请使用以下表达式:
if 1 in (x, y, z): ....
或者,为了改进效率:
if 1 in {x, y, z}: ....
解释:
运算符在Python中具有优先级,或运算符的优先级低于等于(=)。因此,首先评估平等。此外,or 运算符返回遇到的第一个真值。这意味着如果 x 不为 0,则代码序列:
x or y or z == 0
将返回 False,即使 y 或 z 为 0。要根据单个值正确评估多个变量,请使用如下表达式:
x == 1 or y == 1 or z == 1
以上是如何有效地将多个 Python 变量与单个整数值进行比较?的详细内容。更多信息请关注PHP中文网其他相关文章!