当我运行此代码时,没有任何显示。例如,我致电ind(1, [1, 2, 3])
,但我没有得到整数13
。
def ind(e, L):
if (e in L == True):
print('13')
else:
print('12')
答案 0 :(得分:4)
运营商优先权。如果您将(
和)
放在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])
编辑:作为奖励,您甚至可以使用True
和False
来保留/取消内容。举个例子:
def ind(e, L):
print('13' * (e in L) or '12')
ind(1, [1, 2, 3])
ind(4, [1, 2, 3])
这个输出:
13
12
因为e in L
首先评估为True
而13 * True
评估为13
。没有查找布尔表达式的第二部分。
但是当用4
调用函数时,会发生以下情况:
`13` * (e in L) or '12` -> `13` * False or '12' -> '' or '12' -> 12
将此字符串和空字符串计算为False
,因此返回or
布尔表达式的第二部分。
答案 1 :(得分:0)