运算符中的 Python 不工作

标签 python list boolean function

当我运行这段代码时,没有任何显示。例如,我调用 ind(1, [1, 2, 3]),但我没有得到整数 13

def ind(e, L):
    if (e in L == True):
        print('13')
    else: 
        print('12')

最佳答案

运算符优先级。如果你将 ( and ) 放在 e in L 周围,它将起作用:

def ind(e, L):
    if ((e in L) == True):
        print('13')
    else:
        print('12')

ind(1, [1, 2, 3])

但是可以在没有 True 的情况下完成对 True 的测试(这是通常的习惯用法)

def ind(e, L):
    if (e in L):
        print('13')
    else:
        print('12')

ind(1, [1, 2, 3])

编辑:作为奖励,您甚至可以使用 TrueFalse 来保留/取消事物。以你的例子:

def ind(e, L):
    print('13' * (e in L) or '12')

ind(1, [1, 2, 3])

ind(4, [1, 2, 3])

这个输出:

13
12

因为 L 中的 e 首先被评估为 True13 * True13。 boolean 表达式的第二部分未查找。

但是当使用 4 调用函数时,会发生以下情况:

`13` * (e in L) or '12` -> `13` * False or '12' -> '' or '12' -> 12

因为空字符串的计算结果也为 False,因此返回 or boolean 表达式的第二部分。

关于运算符中的 Python 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34824578/

相关文章:

python - 如何在没有多重共线性的 Pandas 中创建虚拟变量?

c# - 如何从foreach中的其他元素列表中填充数组?

python - `.__mro__` 和 `.mro()` 是 CPython 实现细节吗?

python - 在 Flask 中更改每个请求的日志级别

python - 具有广播功能的 numpy 数组构造

python - 在 python 中沿着列表复制元素

java - 我需要哪种 Java 对象类型(集合/列表/集合/其他)?

java - java中三角形总是说等边

c# - 为什么在不使用可为空的 bool 的情况下设置 bool 的值时可以使用 null 条件运算符?

boolean - 如果查询的值是1,则在查询无法获得匹配的情况下使用minimumNumberShouldMatch