假设我在Shell中输入,然后我得到True。
template <typename Derived, int N>
struct CRTP {
static constexpr int num = N;
};
struct A : CRTP<A, 5> {
};
但是当我尝试使用它时,它不起作用
>>>ar=[2,4,6,8]
>>>2 in ar
True
它不起作用! if条件为False。我该怎么做才能检查带有循环的列表中是否有一个术语? 例如:我有一些随机列表,我必须打印列表中的所有偶数?
答案 0 :(得分:7)
这是因为对于比较运算符,x operator1 y operator2 z
等同于(x operator1 y) and (y operator2 z)
,除了y
仅评估一次。因此2 in ar == True
相当于(2 in ar) and (ar == True)
。 ar == True
为False,因此不会执行if
块。只需在2 in ar
周围加上括号:if (2 in ar) == True:
但您确实不需要== True
。只需if 2 in ar:
。