为什么 re.match("c", "cat") 不返回 true?

use*_*752 2 python regex python-2.7

为什么

not re.match("c", "cat")
Run Code Online (Sandbox Code Playgroud)

返回 False,但是

re.match("c", "cat")
Run Code Online (Sandbox Code Playgroud)

不返回 True 而是返回对象在内存中的位置。我找不到让这个语句返回真的方法,但我知道它是真的,因为:

if re.match("c", "cat"):
    print "Yes!"
Run Code Online (Sandbox Code Playgroud)

返回“是!”。

正如我所说,这没有实际意义,至少目前没有,但它确实让我感到困惑。

Kas*_*Lee 6

使用bool()要转换为布尔值(true / false):

bool(re.match("c", "cat")) == true
Run Code Online (Sandbox Code Playgroud)

当您re.match("c", "cat")if语句中使用时,它会自动转换为布尔值true,这就是为什么它会return Yes!

Usingnot将自动将其转换为布尔值,然后将其反转,因此:

not re.match("c", "cat") == false
Run Code Online (Sandbox Code Playgroud)