all()函数
主要用途是判断参数的所有元素是否不为0、空('')、False则返回True,其中任一不符均返回False。
它是Python的内置函数,在python文件中直接可以使用。
参数: 元组(tuple)或列表(list)(常用参数类型就是这两类,因为字符串无论是否为空都会返回True的,详见下方实例)。
返回值: 如果元祖或列表中所有元素不为0、空(’’)、False返回True,否则返回False;
注意: 空元组、空列表、空字符串返回值为True,这里要特别注意。
实例1:列表(list)
print(all(['a', 'b', 'c', 'd'])) #列表list,元素都不为空或0。
print(all(['a', 'b', '', 'd'])) #列表list,存在一个为空的元素。
print(all(['a', 'b', False, 'd'])) #列表list,存在一个为False的元素。
print(all([0, 1, 2, 3])) #列表list,存在一个为0的元素。
运行结果:
实例2:元组(tuple)
print(all(('a', 'b', 'c', 'd'))) #元组tuple,元素都不为空或0。
print(all(('a', 'b', '', 'd'))) #元组tuple,存在一个为空的元素。
print(all(('a', 'b', False, 'd'))) #元组tuple,存在一个为False的元素。
print(all((0, 1, 2, 3))) #元组tuple,存在一个为0的元素。
运行结果:
实例3:特殊情况(列表和元组)
print(all([])) #空列表list
print(all(())) #空元组tuple
print(all([''])) #列表list,仅有一个空参数。
print(all((''))) #元组tuple,仅有一个空参数。
print(all((0,''))) #元组tuple,有两个空参数。
运行结果:
空列表、空元组返回True;
当列表中仅有一个参数,且为0、空、False时返回False;
元组仅有一个参数,值为空时返回True,值为0或者False会报错;
元组有两个及两个以上参数时,其中有参数为0或者False不会报错,两个都为空False。
实例4:特殊情况(字符串、数字、布尔值)
在一般情况下不建议用all来判断一个独立的值是否为True,all一般用来判断列表及长度大于1的元组。
字符串、数字、布尔值用if就可以了,因为用all时,字符串为空也是返回Ture,而字符串为数字或者布尔值时会报错。
print(all('')) #空字符串
print(all(0)) #参数为数字
print(all(False)) #参数为布尔值
运行结果: