python巩固2: 判断字符串/列表/元组/字典 是否为空 【区分None(字段本身没有赋值)和 空 (“”/[ ]/()字段有值,不过内容是空的) 】

场景: 做接口返回 结果的校验,想判断 返回的某个字符串,或者列表是否为空
比如:
返回的结果 data=[ ] 或者 data =" " 需要判断data内容是否为空
理解这个需要分清两个概念

1. None是一个空的对象,代表什么都没有。不占用任何存储空间,即没有赋值

比如:

c = None
if c:     # 如果c是true  ,即不是 0,空字符串‘ ’,空列表[]和None 
    print("c已经赋值")
else:
    print("c is " + "无值")

输出结果为:

c is 无值

这里注意: 在python中,默认把0,空字符串‘ ’,空列表[]和None都看作False,把其他数值和非空字符串都看作True
所以,很少且一般不用 is None来判断是否为空

2.判断字符串/列表/元组/字典是否为空,一般用 if a:

(1) 通用的方法
比如:

# 判断字符串/列表/元组/字典   是否为空
a = ""
b = []
c = 0
d = ()
e = {}
f = "aa"

# 在python中None,False,空字符串,空列表,空字典,空元组都相当于False, 所以if a 相当于: if a 不是false,   则输出 if 的结果

if a:
    print("not Empty")
else:
    print("a is " + "Empty")

if b:
    print("not Empty")
else:
    print("b is " + "Empty")

if c:
    print("not Empty")
else:
    print("c is " + "Empty")

if d:
    print("not Empty")
else:
    print("d is " + "Empty")

if e:
    print("not Empty")
else:
    print("e is " + "Empty")

if f:
    print("not Empty")
else:
    print("f is " + "Empty")

输出结果为:

a is Empty
b is Empty
c is Empty
d is Empty
e is Empty
f is not Empty

说明用 if a : 这种方法,可以判断出 是否为 “ ”,[ ],(),{ },非常方便,
如果a属于上面几种,则if a: 不成立,执行 else 的结果

(2)判断字符串为空

# 对于字符串  a=""
if a.strip() == "":    # 方法1:去掉空格后进行对比
    print("a 是个空字符串")
    
if len(a) == 0:      # 方法2: 判断字符串长度
    print("a长度为 0,是个空字符串")
 

执行结果为:

a 是个空字符串
a长度为 0,是个空字符串

(3)判断列表或元组为空

# 对于列表 b=[]
if len(b) == 0:
    print("b长度为0 ,是个 空列表")

# 对于元组 d=()
if len(d) == 0:
    print("d长度为0 ,是个 空元组")

输出结果为:

b长度为0 ,是个 空列表
d长度为0 ,是个 空元组

你可能感兴趣的:(python)