Python中if后直接加变量

python中有时候会使用if语句,后边直接加一个变量,而不是一个布尔表达式,这是在判断神马呢?

其实意思是判断这个变量是否有值,这个值需要是非零非空的值,这行代码返回TrueFalse
Python中除了’’、””、0、()、[]、{}、None为False之外,其他的都是True。
举例

1
2
3
4
5
6
ls = [[], 0, '', "", {}, (), [1], 2, '3', "4", {5}, (6)]
for i in ls:
if i:
print('i =', i, '有值')
else:
print('i =', i, '没值')

结果

1
2
3
4
5
6
7
8
9
10
11
12
i = [] 没值
i = 0 没值
i = 没值
i = 没值
i = {} 没值
i = () 没值
i = [1] 有值
i = 2 有值
i = 3 有值
i = 4 有值
i = {5} 有值
i = 6 有值