摘要: 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list、tuple、dict、set、str等; 一类是generator,包括生成器和带yield的generator function。 这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 阅读全文
posted @ 2018-12-01 16:58 离去墨染 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不 阅读全文
posted @ 2018-12-01 15:44 离去墨染 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式。 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用list(range(1, 11)): 但如果要生成[1x1, 2x2, 3x3, . 阅读全文
posted @ 2018-12-01 15:29 离去墨染 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。 在Python中,迭代是通过for ... in来完成的,Python的for循环抽象程度要高于C的for循环,因为Python的for循环不仅可以用在list或tupl 阅读全文
posted @ 2018-12-01 15:23 离去墨染 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一个list或tuple的部分元素是非常常见的操作。比如,一个list如下: 取前3个元素,应该怎么做? 笨办法: 之所以是笨办法是因为扩展一下,取前N个元素就没辙了。 取前N个元素,也就是索引为0-(N-1)的元素,可以用循环: 对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提 阅读全文
posted @ 2018-12-01 15:18 离去墨染 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出: fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! 阅读全文
posted @ 2018-12-01 15:10 离去墨染 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 定义函数的时候,把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。 Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变 阅读全文
posted @ 2018-12-01 15:04 离去墨染 阅读(183) 评论(0) 推荐(0) 编辑