4

如果 a 或 b 为空,我想打印一条消息。

这是我的尝试

a = ""
b = "string"

if (a or b) == "":
    print "Either a or b is empty"

但只有当两个变量都包含空字符串时才会打印消息。

仅当 a 或 b 为空字符串时,如何执行打印语句?

4

5 回答 5

6

更明确的解决方案是:

if a == '' or b == '':
    print('Either a or b is empty')

在这种情况下,您还可以检查元组中的包含:

if '' in (a, b):
    print('Either a or b is empty')
于 2012-06-25T17:01:42.880 回答
4
if not (a and b):
    print "Either a or b is empty"
于 2012-06-25T17:04:28.503 回答
3

你可以这样做:

if ((not a) or (not b)):
   print ("either a or b is empty")

因为bool('')是假的。

当然,这相当于:

if not (a and b):
   print ("either a or b is empty")

请注意,如果要检查两者是否为空,可以使用运算符链接:

if a == b == '':
   print ("both a and b are empty")
于 2012-06-25T17:03:07.087 回答
2
if a == "" and b == "":
    print "a and b are empty"
if a == "" or b == "":
    print "a or b is empty"
于 2012-06-25T17:02:42.403 回答
1

或者您可以使用:

if not any([a, b]):
    print "a and/or b is empty"
于 2012-06-25T17:04:56.160 回答