协慌网

登录 贡献 社区

最优雅的方法来检查 Python 中的字符串是否为空?

Python 是否有类似空字符串变量的地方,你可以这样做:

if myString == string.empty:

无论如何,检查空字符串值的最优雅方法是什么?每次检查空字符串都不太好时,我发现硬编码""

答案

空字符串是“falsy” ,这意味着它们在布尔上下文中被视为 false,因此您可以这样做:

if not myString:

如果您知道您的变量是字符串,那么这是首选方法。如果您的变量也可以是其他类型,那么您应该使用myString == "" 。有关布尔上下文中为 false 的其他值,请参阅真值测试文档。

PEP 8 开始 ,在“编程建议” 部分中

对于序列,(字符串,列表,元组),请使用空序列为假的事实。

所以你应该使用:

if not some_string:

要么:

if some_string:

只是为了澄清,如果序列是空的,则在布尔上下文中将序列评估FalseTrue 。它们不等于 FalseTrue

最优雅的方式可能是简单地检查它是真的还是假的,例如:

if not my_string:

但是,您可能希望剥离空格,因为:

>>> bool("")
 False
 >>> bool("   ")
 True
 >>> bool("   ".strip())
 False

你可能应该更明确一点,除非你确定这个字符串已经通过了某种验证,并且是一个可以通过这种方式测试的字符串。