Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
当前回答
我对“”、“”和“\n”等字符串进行了一些实验。当且仅当变量foo是至少包含一个非空白字符的字符串时,我希望isNotWhitespace为True。我使用的是Python 3.6。以下是我的结论:
isWhitespace = str is type(foo) and not foo.strip()
isNotWhitespace = str is type(foo) and not not foo.strip()
如果需要,将其包装在方法定义中。
其他回答
我对“”、“”和“\n”等字符串进行了一些实验。当且仅当变量foo是至少包含一个非空白字符的字符串时,我希望isNotWhitespace为True。我使用的是Python 3.6。以下是我的结论:
isWhitespace = str is type(foo) and not foo.strip()
isNotWhitespace = str is type(foo) and not not foo.strip()
如果需要,将其包装在方法定义中。
这个怎么样?也许它不是“最优雅的”,但它似乎非常完整和清晰:
if (s is None) or (str(s).strip()==""): // STRING s IS "EMPTY"...
如果你只是使用
not var1
无法将布尔值为False的变量与空字符串“”进行区分:
var1 = ''
not var1
> True
var1 = False
not var1
> True
但是,如果向脚本中添加一个简单的条件,则会产生差异:
var1 = False
not var1 and var1 != ''
> True
var1 = ''
not var1 and var1 != ''
> False
如果您想区分空字符串和空字符串,我建议使用If-len(string),否则,我建议像其他人所说的那样简单地使用If-string。但是,关于充满空格的字符串的警告仍然适用,所以不要忘记剥离。
我会在剥离之前测试无。此外,我将使用空字符串为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())