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

python程序设计第11课第五章函数

2020-05-11 04:12 81 查看

这堂课主要是对各种概念的辨析而且花了很长时间复习上节课内容

*这节课课件上的很多尝试自己构造iterator和iterable例子都涉及了类class的知识,
因为这部分没学所以就不分析了,自己看课件等到时候学完了再回来看

十,可迭代对象 vs. 迭代器 vs.生成器(iterable vs. iterator vs. generator)

• a container 容器
• an iterable 可迭代对象
• an iterator 迭代器
• a generator 生成器
• a generator expression 生成器表达式
• a {list, set, dict} comprehension 列表,集合,列表推导式

这几个概念的辨析要仔细看他上课讲的PPT上的关系图, a generator expression和a generator function虽然语法形式不同,但是它们被调用都会产生generator。generator是特殊的iterator。iterator内部需要实现. _ next _ ()方法。iterable内部必定要有. _ iter() _ 方法返回iterator,右边 {list,set,dict} comprehension总会返回相应的container,container一般都是iterable

1.container

容器是容纳元素的数据结构,并且支持in成员测试。可以询问一个对象是否包含某个元素时,它就是一个容器

例子:
>>>1 in [1,2,3]
True
>>>1 in (1,2,3)
True
>>>1 in {1,2,3}
True
>>>'spam' in {1:'spam',2:'ham',3:'eggs'}
False
>>>1 in {1:'spam',2:'ham',3:'eggs'}
True
*字典只能判断键,不能判断值

>>>'foo' in 'foobar'
True
>>>'f' in 'foobar'
True
*甚至可以判断字符串的子串
2.iterable

大多数容器也是可迭代的。但是还有更多的东西是可迭代的。例如打开的文件等。iterable可以通过iter()返回iterator

*把列表放在for循环里遍历的本质
x=[1,2,3]
for element in x:

先把这个列表(the iterable)交给iter()返回列表对应的iterator,for循环帮你调用next()函数(本质上是调用. _ next _ ()方法)

3.iterator

iterator对象在迭代期间生成iterable的值。调用next()或 _ next _ ()于iterator以产生下一个值。迭代结束时抛出StopIteration异常,如果对iterator对象再用iter()函数将返回它自身

4.generator与generator expression,generator function

这节课接下来的内容花了十分钟讲的很水,自己看PPT吧

十一,两个模块(itertools functools)

(只讲了三四分钟,主要还是自己看。不太用得到,只要知道有这东西就行)

番外:

functional Programming(函数式编程,函数型程序设计)

Procedural() vs. Object-Oriented

Procedural Program Design

Object-Oriented Program Design

编辑于2020-4-28 18:03

CS_Lee_ 原创文章 16获赞 0访问量 2296 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: