合肥网站建设怎么做湖南seo优化报价
生成器、捕获异常、模块、包
生成器
-
容器(是一种可以创建多个数据的容器),生成器中保存的是创建数据的方法,而不是数据本身
- 特性:
- 打印生成器无法查看元素
- 不能通过len统计元素的个数
- 如果需要生成器中的数据,必须将数据取出,取一个少一个
-
执行生成器的函数的函数体的时候,遇到几次yield,对应的生成器就可以创建几个数据
-
当生成器中,数据取完,再取会报错
-
优势:节约大量内存
-
创建生成器:调用带有yield关键字的函数,就可以得到一个生成器
-
生成器获取元素和迭代器获取一样:用next
def func1():yield 1print('hello')yield 2return 100
print(next(func1()))
捕获异常
-
结构1:
-
try:
-
代码段1
-
except:
-
代码段2
-
finally: (程序唯一一个,报错前,必须要执行的)
-
代码段3无论如何都会执行的)
-
执行过程:先执行代码段1,执行代码段1的时候如果没有出现异常,就不执行代码段2;如果出现异常,程序不会报错,会执行代码段2
-
-
结构2:捕获指定类型的异常
- try:
- 代码段1(需要捕获异常的代码)
- except 异常类型:
- 代码段2(出现异常后执行的代码)
- finally:
- 代码段3(无论如何都会执行)
结构3 -同时捕获多种
try:代码段1
except (异常类型1,异常类型2,..):代码段2(出现异常后执行的代码)
finally:代码段3(无论如何都会执行)"""# print('+++++')
# print('abc')
# try:
# age=int(input('输入年龄:'))
# print(age)
# except:
# print('年龄输入有误!')try:print('a'[1])
except KeyError:print('c')
finally:print('123')
模块(module)
- python一个py文件就是一个模块
- 如果想要再一个模块使用另一个模块的内容,被时候的模块的模块名必须符合变量名
b.导入模块1.improt模块名 -导入指定模块,导入后通过 '模块名.xxx'的方式是使用这个模块中所有内容2.from 模块名 import 内容1,内容2,.. 导入指定模块,导入可以直接使用指定内容3.from 模块名 import * -导入模块所有内容4.import 模块名 as 新模块名 - 导入指定模块后对应模块进行重命名5.from 模块名 import 内容1 as 新内容1,新内容2"""
#方法1
# import test
# print(test.a)
# print(test.name)#方法2
# from test import a,name
# print(a)
# print(test.name)#方法3
from test import *
包
- 什么是包:包含__init__.py文件的文件夹就是包
2.怎么使用包或者文件夹中的模块中的内容
improt 包名 - (只适用于包)导入指定的包,导入后可以通过‘包名.xxx’去使用'__init__'中的函数
from 包名 import 模块名1,模块2,...-导入指定包指定的模块,导入后可以通过'模块名.xxx'使用指定模块中的内容
from 包名 import 内容,.. -(只使用包)导入指定包中__init__.py文件中的指定内容
from 包名.模块名
from 包名.模块名 improt 内容1,....
"""
import files
files.a()
print(files.s)from files.d1 import aa
print(aa.s)