Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
Python是否有类似空字符串变量的功能,您可以在其中执行以下操作:
if myString == string.empty:
无论如何,检查空字符串值最优雅的方法是什么?我发现每次检查空字符串的硬编码“”都不太好。
当前回答
not str(myString)
对于空字符串,此表达式为True。非空字符串、None和非字符串对象都将产生False,但需要注意的是,对象可能会重写__str__,通过返回一个falsy值来阻止此逻辑。
其他回答
您可能会看到Python中的“分配空值或字符串”
这是关于比较空字符串的。因此,你可以测试你的字符串是否等于空字符串,而不是用not测试空字符串。。。
这个怎么样?也许它不是“最优雅的”,但它似乎非常完整和清晰:
if (s is None) or (str(s).strip()==""): // STRING s IS "EMPTY"...
当您逐行读取文件并想确定哪一行是空的时,请确保使用.strip(),因为“空”行中有换行符:
lines = open("my_file.log", "r").readlines()
for line in lines:
if not line.strip():
continue
# your code for non-empty lines
我曾经写过类似于Bartek的答案和javascript的灵感:
def is_not_blank(s):
return bool(s and not s.isspace())
测试:
print is_not_blank("") # False
print is_not_blank(" ") # False
print is_not_blank("ok") # True
print is_not_blank(None) # False
如果你只是使用
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