您的位置:首页 > 编程语言 > Python开发

python: all & any 函数

2017-10-27 15:59 477 查看

API

all(iterable)

return bool(全都
不为''/0
)

any(iterable)

return bool(起码有一个
不为''/0
)

设计实验

待解决问题

all函数
any函数
定义

iterable参数
数据类型 是否会对函数结果 产生影响?

猜想 对 任一
iterable参数
,俩函数的返回结果是否满足 互补

实验思路

设置实验一,对
all函数
的返回结果进行探究;同时替换
iterable参数
的 数据类型 以探究问题二;

仿照实验一,设置实验二,对
any函数
的返回结果进行探究;

设置实验三,根据先验知识(如果能互补,那python就没必要内建俩函数了),举反例以证明问题三猜想的不正确。

实验代码

实验一

# coding=utf-8

### list
# char型list
assert all(['a', 'b']) == True
assert all(['a', 'b', '']) == False
# int型list
assert all([1, 2]) == True
assert all([1, 2, 0]) == False
# 混合型list
assert all(['a', 'b', 0]) == False  # 不幸地含有 0 或 '' , 只能返回 False 了
assert all([1, 2, '']) == False  # 不幸地含有 0 或 '' , 只能返回 False 了
# empty list
assert all([]) == True  # 完全不含有 0 或 '' , 可以返回 True

### tuple
# char型list
assert all(('a', 'b')) == True
assert all(('a', 'b', '')) == False
# int型tuple
assert all((1, 2)) == True
assert all((1, 2, 0)) == False
# 混合型tuple
assert all(('a', 'b', 0)) == False
assert all((1, 2, '')) == False
# empty tuple
assert all(()) == True


实验二

# coding=utf-8

### list
# char型list
assert any(['a', 'b', '']) == True
assert any(['', '', '']) == False
# int型list
assert any([1, 2, 0]) == True
assert any([0, 0, 0]) == False
# 混合型list
assert any(['a', 'b', 0]) == True
assert any([1, 2, '']) == True
assert any([0, '']) == False   # 既不存在 "不为0" ,又不存在 "不为''" ,return False
# empty list
assert any([]) == False   # 既不存在 "不为0" ,又不存在 "不为''" ,return False

### tuple
# char型list
assert any(('a', 'b', '')) == True
assert any(('', '', '')) == False
# int型tuple
assert any((1, 2, 0)) == True
assert any((0, 0, 0)) == False
# 混合型tuple
assert any(('a', 'b', 0)) == True
assert any((1, 2, '')) == True
assert any((0, '')) == False
# empty tuple
assert any(()) == False


实验三

iterable = [1]
assert all(iterable) == any(iterable)


实验结论

all函数
return bool(全都
不为''/0
)
; 
any函数
return bool(起码有一个
不为''/0
)
 。

iterable参数
的 数据类型 不会 对函数结果 产生影响。

对 任一 
iterable参数
,俩函数的返回结果  满足互补 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: