Python基础14 - 模块、生成器与迭代器

八、面向对象(点击跳转)

九、模块

任何Python程序都可以作为模块导入;

模块的优点:

方便开发、维护、复用

1、模块的使用

可以使用 import 导入模块
每个py为后缀的文件都是模块

语法:
import 模块名
1.1、as 别名

as 指定模块别名

语法:
import 模块名 as 模块别名
1.2、导入模块变量和对象调用
  • 模块.变量(对象)

导入单个对象
import 后可以是模块中任意一个对象(变量、函数、对象)

语法:
from 模块名 import 对象

导入多个对象

语法:
from 模块名 import 对象,对象,对象,......

导入全部内容

语法:
from 模块名 import *

部分导入并改名

示例1from 模块名 import 对象 as 对象别名


  • name

在调用模块时通过__name__获取模块的名字,

在当前文件调用__name__会获得__mian__,表示当前文件时主文件

示例1:获取导入模块的名字
import turtle as hg
print(hg.__name__)

>> turtle
示例2:
r = __name__
print(type(r),r)

>> <class 'str'> __main__
检测是否主模块:
if __name__ == '__mian__':
	pass # 代码块

十、推导式、生成器、迭代器

1、推导式

1.1、列表推导式

列表推导式是从其他列表创建列表的方法,列表推导式类似于for循环

语法:
[变量 for 变量 in 旧列表] or [变量 for 变量 in 旧列表 if 条件判断]
示例1:
l = [x * x for x in range(10)]
print(l)

>> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

示例2:
l = [x for x in range(20) if x % 2 == 0 ]
print(l)

>> [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

示例3:
l = [(x,y) for x in range(3) for y in range(3)]
print(l)

>> [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
1.2、字典推导式

推导式语法都是通用的

示例1:
d = {'i':'%d'%i for i in range(3)}
print(d)

>> {'i': '2'}
示例2:
l = ['a','b','c']
d = {f'{y}':f'{i}' for y in l for i in range(3)}
print(d)

>> {'a': '2', 'b': '2', 'c': '2'}
1.3、集合推导式
示例1:
s = {i for i in range(5)}
print(s)

>> {0, 1, 2, 3, 4}

2、生成器

一边循环一边计算的机制称之为 生成器
生成器是为了节约内存和优化程序
生成器类型:generator

语法:
i = (变量 for 变量 in range( ))

获取元素:
生成器.__next__()
next(生成器)

next 每执行一次,就会生成器就会生成一个值

2.1、通过列表推导式来得到生成器

用圆括号包括的推导式不是元组推导式,而是生成器

示例1:
g = (i for  i in range(1,6))
print(next(g))
print(next(g))
print(next(g))
print(d.__next__())
print(d.__next__())

>> 1
>> 2
>> 3
>> 4
>> 5
2.2、通过函数得到生成器
  • yield

在函数中,每次使用 yield 生成一个值后函数都将冻结,停止执行,等待被重新唤醒,唤醒后函数将从停止的地方开始继续执行

包含 yield语句的函数都称为生成器

示例1def sum():
    for i in range(1,10000):
        yield i

d = sum()
print(d.__next__())
print(next(d))

>> 1
>> 2

3、迭代器 (Iterator)

迭代( iterate ) 指的是 获取元素的一次过程
可迭代 指的是可迭代对象,简单理解为 for 循环

可迭代对象:
1、列表 集合 字典 元组 字符串
2、生成器

迭代器 可以被next()调用的并不断返回下一个值得对象

1、迭代器的使用
  • iter

通过 iter 函数可以将可迭代的变成迭代器

示例1:
l = [1,2,3,4]
print(next(l))

>> TypeError: 'list' object is not an iterator

示例2:
l = [1,2,3,4]
l = iter(l)
print(next(l))

>> 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值