繁体   English   中英

为什么我不能在IF语句中匹配True / False值? [重复]

[英]Why can't I match True / False value in an IF statement? [duplicate]

我正在尝试将re.search的输出与列表匹配,并在IF语句允许的情况下运行代码。 但是,即使我告诉IF语句匹配True或False,IF语句也永远不会进行。

在python中运行搜索:

>>> re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']
>>> True

返回True,因此通过要求IF语句匹配True,它应该继续执行其代码。 但这似乎不起作用。

if re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt'] == True:
    print'regex search matched!'
else:
    print'regex search not matched'

我期望当正则表达式搜索返回True时,IF语句继续执行其代码,但是IF语句不匹配,直接进入ELSE。

Python中的布尔运算符链。

x in y == z

手段

x in y and y==z

您可以将条件写为

if (re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']) == True:

如果愿意的话,最好还是放弃==True并坚持使用

if re.search(r'...$', 'abcde1234doc').group() in ['doc', 'rtf', 'txt']:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM