前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python: all & any 函数

python: all & any 函数

作者头像
JNingWei
发布2018-09-28 14:16:46
5490
发布2018-09-28 14:16:46
举报
文章被收录于专栏:JNing的专栏JNing的专栏

API

all(iterable)

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

any(iterable)

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

设计实验

待解决问题

  1. all函数any函数定义
  2. iterable参数数据类型 是否会对函数结果 产生影响?
  3. 猜想 对 任一 iterable参数,俩函数的返回结果是否满足 互补

实验思路

  1. 设置实验一,对 all函数 的返回结果进行探究;同时替换 iterable参数 的 数据类型 以探究问题二;
  2. 仿照实验一,设置实验二,对 any函数 的返回结果进行探究;
  3. 设置实验三,根据先验知识(如果能互补,那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)

实验结论

  1. all函数return bool(全都 不为''/0); any函数return bool(起码有一个 不为''/0) 。
  2. iterable参数 的 数据类型 不会 对函数结果 产生影响。
  3. 对 任一 iterable参数,俩函数的返回结果  满足互补 。


本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年10月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • API
  • 设计实验
    • 待解决问题
      • 实验思路
      • 实验代码
        • 实验一
          • 实验二
            • 实验三
            • 实验结论
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档