目录
八、面向对象(点击跳转)
九、模块
任何Python程序都可以作为模块导入;
模块的优点:方便开发、维护、复用
1、模块的使用
可以使用 import 导入模块
每个py为后缀的文件都是模块
语法:
import 模块名
1.1、as 别名
as 指定模块别名
语法:
import 模块名 as 模块别名
1.2、导入模块变量和对象调用
- 模块.变量(对象)
导入单个对象
import 后可以是模块中任意一个对象(变量、函数、对象)
语法:
from 模块名 import 对象
导入多个对象
语法:
from 模块名 import 对象,对象,对象,......
导入全部内容
语法:
from 模块名 import *
部分导入并改名
示例1:
from 模块名 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语句的函数都称为生成器
示例1:
def 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