首页 > 解决方案 > 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) 会给我一个错误。

标签: regexpython-3.xif-statement

解决方案


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.


推荐阅读