我只是想知道以下if语句是否有效:
value=[1,2,3,4,5,f]
target = [1,2,3,4,5,6,f]
if value[0] in target OR value[1] in target AND value[6] in target:
print ("good")
我的目标是确保同时满足以下两项要求: 1.值[6]必须在目标中 2.目标中的值[0]或值[1] 如果我做了一个不好的例子,请道歉,但我的问题是,如果我可以制作三个AND&还是在一个声明中?非常感谢!
答案 0 :(得分:7)
使用括号对条件进行分组:
if value[6] in target and (value[0] in target or value[1] in target):
请注意,如果要将in
定义为一组,则可以在target
查找定时:
target = {1,2,3,4,5,6,f}
并且,正如@Pramod在评论中所提到的,在这种情况下value[6]
将导致IndexError
,因为value
中只定义了6个元素,并且索引是基于0的。
答案 1 :(得分:0)
如果我没有错并且有优先权,那么这样做:
if x==True or y==True and z==True:
do smth
想做:
if x==True or (y==True and z==True):
不喜欢做:
(if x==True or y==True) and z==True:
但正如@alecxe 所评论的,当使用超过 2 个逻辑参数时,使用 () 总是更安全。