regex - Python if 函数的输出
问题描述
我正在使用以下代码在字符串中查找重复的字符
import re
S=input()
m = re.search(r'([A-Za-z0-9])\1+',S.strip())
if m:
print(m.group(1))
else:
print(-1)
我不确定为什么“if m:”对我有用,它有什么作用?它是否检查 m 是否存在?(我相信它无论如何都应该存在),它是否检查 m 的值是否大于零?
PS:如果我的输入字符串 (S) 没有重复值,那么 print(m) 会给我一个错误。
解决方案
if m:
评估表达式m
并检查其值是否为“真”,即 if bool(m)
is True
。如果是,if
则执行块的主体。
如果名称m
不存在,则在评估表达式时NameError
会产生a 。m
此外,如果S
没有重复值(例如,它是空的),print(m)
也不会给你一个错误:
>>> S = '' # empty
>>> import re
>>> m = re.search(r'([A-Za-z0-9])\1+',S.strip())
>>> print(m)
None # not an error: this just indicates that the regex didn't find anything
请注意bool(None) == False
.
推荐阅读
- html - 从 darak.pk 抓取网页给出错误 AttributeError: 'NoneType' 对象没有属性 'find_all'
- uwp - Azure DevOps Server 2019 中的无法下载安全文件错误
- autodesk-forge - 使用 Autodesk Forge Viewer API 查看转换为 SVF 文件的 DWG 文件时出现问题
- amazon-web-services - 跨账户访问 AWS 资源
- python - 选择名称以某些字母开头的所有python变量?
- load-balancing - 禁用内部负载平衡器的 Docker Swarm 中的滚动更新?
- angular - 从 api 读取的 Angular Wrapper 方法
- c++ - 为什么 std::allocator 不能轻易复制?
- android - 带参数的 Gradle 任务
- python - 在嵌套循环中附加数据框