如何检查两字符串是否相同
大家好
这是个傻问题,但让我有点困惑
print test
print test == "None"
在终端里,这段代码输出了
None
False
你可以看到,test的值是None,但检查它们是否相等的结果却是假的
这是为什么呢?
4 个回答
1
这是因为 None
不是一个字符串,它属于 NoneType
类型。可以把它和其他语言中的 'null' 做个比较。值为 "None"
的字符串和 None
是不一样的。
也许 文档 能给你更多帮助。
1
我觉得你并没有把字符串 "None"
赋值给 test
。很可能 test
是一种叫做 NoneType
的类型,所以你应该这样来检查它:
print test is None
这个结果和 test == None
是一样的,但 PEP8 规范建议你用关键字 is
来判断像 None
这样的单例对象是否相等,而不是用 ==
。
1
试试这个:
print test
print test == "None"
print test == None
print type(test)
1
在Python中,None
是一种数据类型,所以在你可以使用数字或字符串的地方,也可以使用None。
在你的情况下,要检查它是否是None
,只需要去掉引号:
print test == None
不过你已经掌握了检查两个字符串是否相同的原则:
test = "Hello"
print test
print test == "Hello"
结果是:
Hello
True