迭代器和模块

1. 什么是迭代器(iter)

迭代器是容器型数据类型;
打印一个迭代器无法查看这个迭代器中所有的元素,迭代器无法通过len获取元素个数;
如果想要使用迭代器中元素,必须将元素从迭代器中取出,而且在取的时候只能从上往下按顺序,取一个就少一个,取出来的数据无法再放回迭代器。

2. 创建迭代器

  1. 用iter将其他序列转换成迭代器
  2. 创建生成器

3. 迭代器的查操作

不管以什么样的方式获取到了迭代器中元素,那被获取到的元素一定会从迭代器中消失
1)获取单个元素: next(迭代器)
2)遍历
3)迭代器转换成序列

1. 什么是生成器

生成器是容器型数据类型(具备创建多个数据的能力,而不是保存多个数据的能力)。
打印生成器无法查看所有的元素,生成器也不支持len操作。
如果需要使用生成器中的数据,必须将数据取出来,而且取一个就少一个。
生成器获取数据的方式和迭代器一样。

2.创建生成器

生成器保存的并不是数据本身,而是产生数据的算法

1. 什么模块 - python中一个py文件就是一个模块

2. 怎么在一个模块中使用另外一个模块的内容

“”"
前提:被使用的模块的模块名(py文件的文件名)必须符合变量名的要求
使用原则:先导入才能使用(能被别的模块使用的内容只能是全局变量)
“”"

3.导入模块

“”"
import 模块名 - 导入指定模块,导入可以通过’模块名.xxx’的方式使用这个模块中所有的全局变量
from 模块名 import 变量1,变量2,… - 导入指定模块中的指定变量,导入后可以直接使用所有指定的变量
from 模块名 import * - 导入指定模块中所有的变量,导入后可以直接使用所有变量
import 模块名 as 新模块名 - 导入模块的时候对模块重命名,通过’新模块名.xxx’的方式只用模块中所有的全局变量
from 模块名 import 变量1 as 新变量1, 变量2 as 新变量2, … - 对导入的变量重命名
“”"

import test1
print(test1.a)
print(test1.name)
test1.func1()


from test1 import a, func1
print(a)
func1()

# =======导入方式3========
from test1 import *
print(a)
print(name)
func1()


import numpy as np
import test1 as t1
test1 = 22
print(t1.a, t1.name)
t1.func1()

# ========对变量重命名======
from test1 import a, name as tname

name = '小明'
print(a)
print(name)
print(tname)


1. 什么是包

包就是包含__init__.py文件的文件夹

包就是用来管理py文件,对py文件按照特定的方式进行分类。

2.怎么使用包中的内容

“”"

  1. import 包名 - 导入指定的包(必须是包,文件夹无意义),导入后可以通过’包名.xxx’的方式使用__init__.py文件中所有内容
  2. import 包名.模块名 - 导入指定包中的指定模块(文件夹也可以用)
  3. from 包名 import 模块名1,模块名2,…
  4. from 包名.模块名 import 变量1, 变量2,…
    “”"
# ===== 直接导入包 ======
# import fileManager
# 
# fileManager.create_file()
# print(fileManager.m)
# 
# 
# ===== 直接导入包中的模块 =====
# import fileManager.operateFile
# import files.test2
# 
# fileManager.operateFile.open_file()
# fileManager.operateFile.close_file()
# 
# print(files.test2.x)
# files.test2.func2()
# 
# ===== 直接导入包中的模块,然后重命名 =====
# import fileManager.operateFile as file
# file.close_file()
# file.open_file()
# 
# ===== 直接导入包中指定多个模块 =====
# from fileManager import operateFile, operateJsonFile as json
# operateFile.open_file()
# 
# ===== 导入指定包名中指定模块中的指定内容 =====
# from files.test2 import x, func2
# print(x)
# func2()
# 
# 
# from files.images.image import load_image
# load_image()
# 

from fileManager import add_filter, remove_file
add_filter()
remove_file()


1. 异常

“”"
异常就是错误。
执行程序的过程中,如果出现异常,会中断程序的执行(让程序提前结束)

exit() - 让程序正常退出

2.异常捕获 - 让程序在出现异常的时候,不崩溃,还可以接着往后执行

“”"
注意:不要滥用异常捕获。如果是因为使用者使用不当导致程序出现异常,又希望在出现异常程序可以继续执行才使用异常捕获。

结构1 - 捕获所有异常
try:
代码段1(需要捕获异常的代码段)
except:
代码段2(捕获到异常需要执行的代码段)

执行过程:先执行代码段1,如果出现异常直接马上执行代码段2;如果没有出现异常,就不执行代码段2

结构2 - 捕获指定异常
try:
代码段1(需要捕获异常的代码段)
except 异常类型:
代码段2(捕获到异常需要执行的代码段)

结构3 - 同时捕获多种异常
try:
代码段1(需要捕获异常的代码段)
except (异常类型1, 异常类型2,…):
代码段2(捕获到异常需要执行的代码段)

结构4 - 同时捕获多种异常
try:
代码段1(需要捕获异常的代码段)
except 异常类型1:
代码段11
except 异常类型2:
代码段22

“”"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值