Python基础 笔记14

一、笔记说明

  1. 本博客专栏《Python基础》的所有笔记均为.py格式文件,复制后均可无误执行(注意修改文件路径,每个人的工作区不一样)。
  2. 在复制代码时,若代码段标明了文件名称,即该笔记包含多个文件,请注意每个代码段标明的文件名称,并在本地创建文件夹以便于运行。
  3. 代码运行环境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

三、转载说明

  1. 本文内容完全原创,文章完成时间2021.3.17。
  2. 若要转载本文,请在转载文章末尾附上本文链接:https://blog.csdn.net/qq_35772105/article/details/114919698
  3. 本文"Python笔记16.py"部分唯一MD5:C159E27D147BA231BE9B894057AEB7C5。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔菲赫伯特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值