我正在sololearan课程上自学python3。我现在正在学习正则表达式。在
以下是源代码:
import re
pattern = r"spam"
if re.match(pattern, "spamspamspam"):
print("Match")
else:
print("No match")
---根据Sololearn Python 3教程--
if语句中的条件让我很困惑。据我所知,if语句中的条件应该是布尔表达式。 但是重新匹配函数,确定它是否匹配字符串的开头,不返回布尔值(如果匹配,则返回表示匹配的对象。如果不是,则返回None)。在
所以,我不太明白上面代码的if语句?谁能给我解释一下吗?在
Python使用“Truthy”和“Falsy”值。因此,任何匹配都是真实的,一个“无”都是假的。这个概念扩展到语言的许多地方,例如检查列表中是否有任何内容:
将打印错误。在
有关详细信息,请查看this question。在
观察
re.match
的输出:这将返回一个匹配对象。现在,如果我们改变一下我们的模式。。。在
^{pr2}$基本上,}。
None
的真值是False
,而对象的真值是{if
条件评估结果的“真实性”,并相应地执行if主体。在您的if条件可以重写一点,如下所示:
这个和
if re.match(pattern, "spamspamspam")
是一个相同的。在如果您正在学习python,您应该知道如何评估对象的“真实性”。所有非空的数据结构都计算为}是{}。在
True
。所有空数据结构都是False
。对象是True
,而{相关问题 更多 >
编程相关推荐