https://www.xin3721.com/eschool/pythonxin3721/
前言
过年也没完全闲着每天用一点点时间学点东西本文为大家介绍几个python操作的细节包含all、any、for in等操作以及介绍我解决问题的思路。
一、开篇
先从我看到的一个简单的语句开始。
刚看到这个语句的时候我整个人完全懵住了完全看不懂这是干啥的。不过其实编程难的不是这些东西这些东西再也不怕也能想办法解决掉而隐藏在这后面的编程思维及数学等知识是很难解决的。
1.1 any、all
言归正传看到这个语句后我想到的就是如何将复杂的问题简单化。
于是我先查了一下any函数查到any和all函数都是对于集合而言的。
描述
any() 函数用于判断给定的可迭代参数 iterable 是否全部为空对象如果都为空、0、false则返回 False如果不都为空、0、false则返回 True。
函数等价于
语法
以下是 all() 方法的语法:
all(iterable)
参数
iterable -- 元组或列表。
返回值
如果iterable的所有元素不为0、’’、False或者iterable为空all(iterable)返回True否则返回False
注意空元组、空列表返回值为True这里要特别注意。
简单点说any函数用于判断给定的可迭代参数iterable是否全部为空对象如果都为空、0、false中的一种以下简称为空则返回False如果不都为空则返回True而all函数刚好相反如果全不为空则返回True否则返回False。
1.2 for in
这就是说上面的语句any里面是一个iterable对象。我们再来看一下里面的语句
for 循环语句
Python for循环可以遍历任何序列的项目如一个列表或者一个字符串。
语法
for循环的语法格式如下
流程图
可以明显的看到一个forfor in在python里面很明显简单的说就是循环一个集合并对此集合进行过滤、计算等操作。同样先简化它
这很明显生成的集合与原来相同但是平常我们看到的都是这样的
这里面就牵涉到python生成器的概念。
1.3 生成器
生成器的优点在于不需要事先计算只需要在需要的时候才会调用不浪费存储空间和计算时间。简单的说生成器是一种特殊的集合这种集合并不像普通的集合一样事先全部算出而是在需要的时候才去计算。其实实现方式很简单将[]换成()即可于是就有了上面的语句。关于生成器的其他操作和生成方式可以在网上查阅相关资料这里不再赘述。
1.4 继续for in
接着上面的for in继续介绍(word for word in [“拍照”, “拍张照”])结果与原始数据相同那么如果我们想要产生一点变化就要对第一个word执行一个函数于是就有了word in text这里的in就是个函数判断word是否是在text中即word是否是text的子串相当于其他语言的contain。
这样就很清楚了(word in text for word in [“拍照”, “拍张照”])表示循环原始集合判断每个元素是否是给定的text字符串的子串返回的是个True、False集合。
当然我们也可以在循环的时候实现过滤看如下语句
貌似这条语句跟上面的差别就在于word in text的位置发生了变化并多了个if。其实二者差别非常大这里实现的功能是判断word是否是text的子串如果是则取出相当于过滤掉不是子串的对象最终返回的是一个字符串集合。
1.5 总体
那么这里我们再来看一下最开始的语句
综合以上语句就可以知道此语句实现的是循环集合判断每一个字符串是否是给定的text的子串最终如果不全为空的话就返回True即text只要包含集合中的任意一个字符串则返回True。可以用于命令检测等等场合。
二、总结
本文通过一个稍微复杂的语句为大家介绍了python中几个常用的函数和概念并分析了由繁而简的过程。
转自python一条语句分析几个常用函数和概念 -侵删