一、笔记说明
- 本博客专栏《Python基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。
- 在复制代码时,若代码段标明了文件名称,即该笔记包含多个文件,请注意每个代码段标明的文件名称,并在本地创建文件夹以便于运行。
- 代码运行环境Python3.7.9,建议使用Pycharm2020.1作为编辑器,使用Anaconda3作为包管理器。
二、代码部分
# Python笔记16.py
print("1.迭代器:仅可对可迭代对象使用(有iter魔术方法的对象)")
li=[1,2,3,4,5]
l=iter(li)#转换为迭代器
print(l)
print(next(l))#用于取迭代器的值
print(next(l))
print(next(l))
print("每次执行不会重复输出且执行次数超过数据个数时,报错")
print(dir(l))
print("2.迭代器在循环中的使用方法:加入异常语句")
l=iter(li)#转换为迭代器
try:
while True:
print(next(l))
except StopIteration as e:
print(e)
print("3.迭代器的魔术方法使用")
l=li.__iter__()
print(l.__next__())
print(l.__next__())
print(l.__next__())
print("4.生成器yield:返回 暂停 等待"
"直接返回一个对象,返回的对象为迭代器"
"即,生成器用于生成迭代器")
def f():
for i in range(10):
yield i#直接返回一个对象
a=f()#取出返回值
print(list(a))
print("迭代器的返回值转换为list对象后,list中包含所有yield参数")
print("5.迭代器与生成器综合:生成器用于生成迭代器")
def f():
for i in range(10):
yield i#直接返回一个对象,相当于迭代器
print("此处将函数实例化,每一次使用迭代器,步长+1,向后计数")
l=f()#函数实例化
print(next(l))
print(next(l))
print(next(l))
print("此处没有将函数实例化,每一次使用迭代器,步长不变,一直初始化")
print(next(f()))
print(next(f()))
print(next(f()))
print("要想在生成器中正确使用迭代功能,必须实例化函数作为参数传入迭代器")
print("6.导入模块及包:模块名称和包名称都要说明"
"要调用包内的属性,则填写包名和属性名")
from copy import deepcopy#精确导入模块中的方法
li=[1,2,3,0]
li2=deepcopy(li)
print(li)
print(li2)
# import test02#虽然报错,但此处是正确的,可导入另一个包的数据
# print(test02.a)
# from test02 import a#虽然报错,但此处是正确的,可导入另一个包的数据
# print(a)
print("7.选择性的执行其他包的语句:注意,该语句应该写在要导入的类中此处以test02为例")
if __name__ == '__main__':#满足条件则执行
print(f())#此处仅执行test02内的f()函数,且导入包时不执行test02其他语句
from test02 import a,b#可导入多个变量,导入多个也可以用'*'
print("test的a:",a)
print("test的b:",b)
print("test的方法f():",f())
print("相对路径导入会报错,路径为严格相对路径,不可为缩写")
# from . import test02#模块为点表示当前目录,..表示上一级
# print(a)#注释区域错误
print("8.相互导入其他模块:多层导入,见a01文件")
print("9.若导入的不同包下有相同的包,加载顺序为:找到即加载(执行),且只执行一次")
路径:Python笔记16/Python笔记16.py
a=1
b=132
def f():
return 123
#接口
print(__name__)#该文件名为__main__,所以下方填写'__main__'
if __name__ == '__main__':#满足条件则执行
print(f())#此处仅执行test02内的f()函数,且导入包时不执行test02其他语句
print("注意:此处接口为有选择的,重定向的接口,不满足条件不执行")
路径:Python笔记16/test02.py
print("A-->a01")
print("导入其他模块:深层导入")
from Python笔记16.B import b01
b01.bbb()
import sys
print("输出主路径下所有文件的路径")
print(sys.path)#查找导入的包的路径,查不到报错,此处为b01路径
print("添加/重定向路径:")
sys.path.append("C:/Users/黄毅凌/Desktop/新建文件夹/Python/Python笔记16")
print(sys.path)#此处为重定向的路径
路径:Python笔记16/A/a01.py
def bbb():
print("B-->b01")
路径:Python笔记16/B/b01.py
三、转载说明
- 本文内容完全原创,文章完成时间2021.3.17。
- 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/114919698
- 本文"Python笔记16.py"部分唯一MD5:C159E27D147BA231BE9B894057AEB7C5。