Python 检查多个字符串中是否有空字符串

6 投票
2 回答
9154 浏览
提问于 2025-04-18 05:37

我知道这个问题很基础,但请耐心听我说。假设我们有下面这四个字符串:

a = ''
b = 'apple'
c = 'orange'
d = 'banana'

通常,如果我想检查这三个字符串 abc 中有没有空的,我可以用 len() 这个函数。

if len(a) == 0 or len(b) == 0 or len(c) == 0:
    return True

但是我觉得如果字符串很多,像这样写就太麻烦了。所以,我用了

if not a:
    return True

但是,当我用上面的方法检查多个字符串 bcd 时,它却返回了 True,这让我很困惑,因为 bcd 都不是空的。

if not b or c or d:
    return True

这是怎么回事呢?

2 个回答

3

“not”这个运算符的优先级比“or”要高。

return not b or not c or not d

应该可以正常工作。

9

问题出在这一行:

if not b or c or d:

你需要为每个字符串加上“不是”的条件。所以:

if not b or not c or not d:

你也可以这样做:

    return '' in [a, b, c, d]

撰写回答