如何在Python中防止空值
在Python中,我怎么检查一个字符串是空的还是没有值的呢?
在C#中,我们有一个方法叫做 String.IsNullOrEmpty(some_string)
另外,我正在做一些正则表达式的操作,比如:
p = re.compile(...)
a = p.search(..).group(1)
如果某个组在索引1的位置没有内容,这段代码就会出错,我该怎么防止这种情况发生呢?也就是说,你会怎么安全地重写那两行代码?
5 个回答
1
如果没有找到任何东西,p.search(..) 会返回 None,所以你可以这样做:
a = p.search(..)
if a is None:
# oops
print "Nothing found"
else:
print "Hooray!"
2
使用re模块的常见方法是:
m = p.search(..)
if m:
a = m.group(1)
或者
m = p.search(..)
a = m.group(1) if m else ''
不幸的是(或者说幸运的是),Python不允许你把所有东西都写在一行里。
5
只要检查一下就行了。明确的比隐含的要好,而且多写一行代码也不会有什么大不了的。
a = p.search(...)
if a is not None:
# ...