1.模块的使用
python 中一个py文件就是一个模块,可以通import 或者from-import,在一个模块中去使用另一个模块的内容。
1.导入模块
a. import 模块 ---- 将整个模块的所有内容都导入
当文件中导入模块后,会执行模块的所有内容,使用模块内容是方式是: 模块.变量名
b. from 模块名 import 变量名1 变量名2...
----将模块内的 所有内容导入,但是只能用import后面的变量
c. from 模块名 import * ----将模块所有内容导入
2.模块的重命名
a. import 模块名 as 新模块名
给模块重新命名,使用的时候用新名字
b. from 模块名 import 变量名 as 新名字
给变量重新命名,使用时使用新名字
2.模块内容的选择性导入(阻止导入)
if __name__ == '__main__'
代码块
不想被其他导入的部分放在这个if条件语句下面
说明:
if name == 'main': --- 固定写法
代码块 ---- 直接执行当前模块,可以执行。如果在别的模块被导入,代码块不会执行
3.迭代器(item)
迭代器在python中是一种数据类的容器,但是没有具体的字面量
其他序列转换为迭代器
item()
迭代器的特点
a.迭代器中只能用next()方法取出元素,取出元素后,迭代器中就不存在这个元素了
item1 = item('abc')
print(next(item1)) #a
print(next(item1)) #b
print(next(item1)) #c
print(next(iter1)) #StopIteration
注意:用next()取元素,从第一个元素开始取,依次取出
b.遍历迭代器
for x in item1:
print(x)
3.生成式和生成器
生成器就是迭代器,但是迭代器不一定是生成器
生成式就是生成器特殊形式的一种
变量 for 变量in 序列
#练习 产生一个生成器,里面包含1-9
ge1 = x for x in rang(1,10)
print(ge1) #ge1的地址 <generator object <genexpr> at 0x000001401DC75938>
print(next(ge1))# 1
生成器就时一种有关键字yield的函数体
-----函数体中有yield,那么这个函数不再是执行函数体并且产生一个返回值,而是一个生成器
通过next获取生成器元素时,会去执行生成器对应的函数体,当遇到yield时函数执行结束,并返回yield后面的值作为返回值,然后保存当前位置,下次获取生成器元素时,从当前这个位置开始执行,遇到yield时返回yield后面的值。。。。
生成器可以当成一个序列来使用
def fuc ():
for x in rang(10):
print(x)
yiedl x