如何在Python中防止空值

1 投票
5 回答
2946 浏览
提问于 2025-04-16 11:32

在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:
    # ...

撰写回答