模块
模块化:将一个完整的程序分成一个个小模块
优点
- 方便开发与维护
- 复用性
1 | print('这是一个模块') |
1 | import test |
- 多次导入模块只能有一次结果
- print模块会显示路径
1 | import test |
- 可以对模块重命名
1 | import test as t |
- 调用模块内容
1 | a = 1 |
1 | import test as t |
- 调用函数
1 | def fn(): |
1 | import test |
- 调用类
1 | from python.模块.test import Person #从python文件夹下模块文件夹导入test模块中Person类 |
1 | from test import Person |
- 运行渡口,不调用,不执行
1 | def fn(): |
1 | from test import Person,fn,fn1 |
列表推导式
从旧的列表中得到新的列表
语法
- [变量 for 变量 in 旧列表(容器)]
- [变量 for 变量 in 旧列表(容器)if 条件表达式]
1
2
3
4
5a = [1,2,3,4,5,6,7,8,9,10]
b = [i for i in a if i % 3 == 0]
print(b)
[3, 6, 9]
生成器
- 方法一 用列表推导式得到生成器
1 | g = (i * 3 for i in range(1,21)) |
- 用函数实现 用yield 可以阻塞程序 若果不继续调用next 那么会一直阻塞,如果直接进行while,会陷入死循环
1 | def fn(): |
- 生成器只能执行一次
1 | def fn(): |
迭代器
- 可迭代对象:能用for循环遍历的对象都是可迭代对象,字符串、列表、元组、集合等容器都是可迭代对象:Iterable
- 可迭代对象拥有__iter__方法,即返回自身的方法
- 迭代器:可以被next函数调用并不断返回下一个值的对象成为迭代器:Iterator
- 迭代器也只能执行一次
1 | list1 = [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10] |