Python逻辑运算:为什么false+ false等于true?什么时候等于True?

img

pthon中 & 是数值二进制按位与运算符,不是逻辑运算符。pthon中 逻辑与运算符是 and

数值二进制位运算符&的优先级高于 <,>,==关系运算符

len(run.text)>30 & bool(re.search(r'\d',run.text))

实际上等于是

len(run.text) > ( 30 & bool(re.search(r'\d',run.text)))

同样的 2>3 & 4>5 等于 2>(3 & 4)>5

你改成真正逻辑与运算符 and 就好了

len(run.text)>30 and bool(re.search(r'\d',run.text))

如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮

表达式要加上括号:(len(run.text))>30&(bool(re.search(n'ld,run.text)))
原因:&的优先级更高。
先运算30&bool(re.search(n'ld,run.text))结果为0,再判断len(run.text)>0 结果为True
如有帮助,望点击我回答右上角【采纳】按钮支持一下。
img

&的优先级高于比较运算符

加括号

(len(run.text)>30) & (bool(re.search(r'\d',run.text)))

img
逻辑运算
& 就是 and
有0则0 全1才1 意思就是只要两边有一个false 表达式的值就是false