场景: 做接口返回 结果的校验,想判断 返回的某个字符串,或者列表是否为空
比如:
返回的结果 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 ,是个 空元组