1.模块
- 模块化指将一个完整的程序分解成一个个的小模块
- 通过将模块组合,来搭建出一个完整的程序
- 模块化的优点
- 方便开发
- 方便维护
- 模块可以复用
2.模块的创建
- 在Python当中一个py文件就是一个模块
- 在一个模块中引入外部模块 import 模块名(模块名就是py文件)
- 可以引入同一个模块多次,但是模块的实例只会创建一次
- import 模块名 as 模块别名
- 在一个模块内部都有一个__name__。通过它我们可以获取模块的名字
- 如果py文件直接运行时,那么__name__默认等于字符串’main’。__name__属性值为__main__的模块是主模块。一个程序中只有一个主模块
3.模块的使用
- import xxx
- import xxx as yyy
- from xxx import yyy,zzz,bbb
- from xxx import *
- from xxx import yyy as zzz
4.推导器
- 语法 [变量 for 变量 in 旧列表] 或者 [变量 for 变量 in 旧列表 if 条件判断]
names = ['jerry','amy','tony','james','anny','mcheal','abc','nba']
new_lst = [i for i in range(1,101) if i % 3 == 0]
print(new_lst)
5.生成器
-
一边循环一边计算的机制我们称之为生成器 generator
-
生成器可以减少内存的使用
-
生成器的实现
- 1.通过列表推导式来得到生成器 符合Python的语法
- 格式是列表推导式的语法格式 [] --> ()
g = (x*3 for x in range(10))
-
2.通过函数来得到生成器
- 1.定义一个函数,函数中要使用yield关键字,只要在函数中出现yield关键字,那么这个函数就是一个生成器函数
- 2.调用函数,接收调用的结果 结果就是一个生成器
- 3.借助next() next 获取元素
def fn(): num = 0 while True: num += 1 # print(num) yield num g = fn() print(g.__next__()) print(next(g))
- 1.通过列表推导式来得到生成器 符合Python的语法
6.迭代器
- 迭代 获取元素的一次过程
- 可迭代 一般就是指可迭代对象 简单理解可以for循环的
- 可迭代对象包含哪些? 1 列表 集合 字典 字符串 元祖 2 生成器
- 如何判断一个对象是否是可迭代的?
from collections import Iterable
g = (x*3 for x in range(10))
lst = [1,2,3]
r = isinstance(g,Iterable)
print(r)
- 迭代器 可以被next()函数调用并不断返回下一个值的对象成为迭代器 Iterator
- 生成器是可迭代的,也是迭代器
- 列表是可迭代的,但是不是迭代器
- 通过iter()函数可以将可迭代的变成一个迭代器
lst1 = [1,2,3]
lst1 = iter(lst1)`