模块、推导式、生成器和迭代器介绍

一、模块

1.模块化指的是将一个完整的程序分解成一个个的小模块
2.通过将模块组合,来搭建出一个完整的程序
3.特点:方便开发和维护、模块可复用
4.模块的创建
一个py文件相当于一个模块,在一个模块中引入外部模块

语法:
   import 模块名(py文件名)
   import 模块名 as 模块别名

在这里插入图片描述
在这里插入图片描述
运行后结果如下图
在这里插入图片描述

5.通过__name__,可以获取模块名,_name__默认等于字符串’main’。__name__属性值为__main__的模块是主模块。一个程序中只有一个主模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
6.模块的使用
6.1.访问模块中的变量 语法是 模块名.变量名
6.2.访问模块中的函数 语法是 模块名.函数名
6.3.访问模块中的对象 语法是 模块名.对象名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.4.引入部分模块中的部分内容

语法:
   from 模块名 import 变量(函数、类等)

在这里插入图片描述
在这里插入图片描述
6.5.当主模块与被引用模块有相同的方法或时,可以使用别名方式,这样为会丢失部分功能

语法: from 模块名 import 变量 as 别名

在这里插入图片描述
在这里插入图片描述
6.6.关于if name=='main’一般在子模块测试时应用,避免被主程序误用
6.7.模块或部分引入需看应用场景,具体用法如下

#1.import xxx
#2.import xxx as yyy(文件名过长可使用此方法)
#3.from xxx import aa,bb,cc
#4.from xxx import *
#5.from xxx import yy as cc

二、推导式、生成器

2.1.列表推导式
使用[]生成列表

#语法:[变量 for 变量 in 旧列表]或[变量 for 变量 in 旧列表 if 判断条件]

在这里插入图片描述

在这里插入图片描述
2.2.字典推导式
在这里插入图片描述
在这里插入图片描述
2.3.集合推导式
在这里插入图片描述

在这里插入图片描述
2.4.生成器(generator)

1.特点:可以优化内存、提高性能,避免资源过度消耗
2.生成器的生成有两种方式:一是通过推导式生成 一是通过yield函数 生成
3.生成器是一个可迭代对象,也是一个可迭代器
4.查看生成器的值使用生成器名__next___或netx(生成器名)方法

#使用推导式()生成一个生成器
s=(x*2 for x in range(10))
print(s,type(s))
print(next(s))
print(s.__next__())
print('-------------------------------------------')
#使用yield函数生成一个生成器
def fn_sum(a,b):
    yield a+b
c=fn_sum(5,6)
print(c,type(c))

2.5.迭代器(Iterator)

1.迭代理解,可以遍历的东西,任何可以遍历的东西都是可迭代的
2.迭代(Iterable)对象,像如列表、元组、字曲、集合等,判断一个对象是否为可迭代对象,可以使用isinstance
3.可迭代器中每使用完一项,它就会自动在迭代器中消失
4.迭代器特征:可以被next()方法调用
5.迭代对象转换成迭代器可以使用iter()函数

alst=[1,2,3,4,5,6]
print(isinstance(alst,Iterable))
n=iter(alst)#转换成迭代器
print(n)
print(next(n))

2.6.生成器、迭代器和迭代对象关系如下图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值