Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
当前回答
空字符串是“falsy”(python 2或python 3引用),这意味着它们在布尔上下文中被视为false,因此您可以这样做:
if not myString:
如果知道变量是字符串,这是首选方法。如果变量也可以是其他类型,则应使用:
if myString == "":
有关布尔上下文中为假的其他值,请参阅真值测试文档。
其他回答
如果要检查字符串是否完全为空
if not mystring
因为空字符串为false但如果字符串仅为空白,则为真,因此您可能希望
if not mystring.strip()
我会在剥离之前测试无。此外,我将使用空字符串为False(或Falsy)的事实。这种方法类似于Apache的StringUtils.isBlank或Guava的Strings.isNullOrEmpty
这是我用来测试字符串是否为None或Empty或Blank的方法:
def isBlank (myString):
return not (myString and myString.strip())
如果字符串不是None NOR Empty NOR Blank,则与测试正好相反:
def isNotBlank (myString):
return bool(myString and myString.strip())
正如prmatta在上面发布的,但有错误。
def isNoneOrEmptyOrBlankString (myString):
if myString:
if not myString.strip():
return True
else:
return False
return False
对于那些期望类似apacheStringUtils.isBlank或Guava Strings.isNullOrEmpty的行为的人:
if mystring and mystring.strip():
print "not blank string"
else:
print "blank string"
空字符串是“falsy”(python 2或python 3引用),这意味着它们在布尔上下文中被视为false,因此您可以这样做:
if not myString:
如果知道变量是字符串,这是首选方法。如果变量也可以是其他类型,则应使用:
if myString == "":
有关布尔上下文中为假的其他值,请参阅真值测试文档。