当前位置: 首页 > article >正文

day13 模块和异常捕获总结

day13 模块和异常捕获

一、生成器
(一)、什么是生成器
1)容器(是一种可以创建多个数据的容器),生成器中保存的是创建数据的方法,而不是数据本身。

2)特点:
a. 打印生成器无法查看元素
b.不能通过len统计生成器中的元素的个数
c.如果需要生成器中的数据,必须将数据取出来,而且去一个就少一个

c.生成器获取元素的方法和得嗲气获取元素的方式一样
(二)、怎么创建生成器

调用带有yield关键字的函数,就可以得到一个生成器

def func():
    yield
    print('hello')
(三)、怎么控制生成器中元素的个数和元素的值

执行创建生成器的函数的函数体的时候,会遇到几次yield,对应的生成器就可以创建几个数据,每次遇到yield,yield后面的值就是能创建出来的数据。

二、模块
(一)、什么是模块

python中一个py文件就是一个模块

(二)、怎么在一个模块中使用另外一个模块中的内容
1)前提:如果想要在一个模块中使用另外一个模块中的内容,被使用的模块的模块名必须复合变量名的要求

2)导入模块
a. import 模块名  —— 导入后可以通过‘模块名.xxx’的方式使用这个模块中所有的内容
b.from 模块名 import 内容1,内容2,...   —— 导入指定模块,导入后可以直接使用指定内容。
c. from 模块名 import *  —— 导入指定模块,导入后可以直接使用模块中所有的内容
d. import 模块名 as 新模块名  —— 导入指定模块后,对模块进行重命名:‘新模块名.xxx’
e. from 模块名 import 内容1 as 新内容1  —— 对导入的内容重命名
导入方式1:
import test
print(test.func1())
print(test.a)
导入方式2:
from test import a, func1
func1()
print(name)   # 会报错,因为name模块没有从test模块中导入进来
导入方式3:
from test import *
print(a)
print(name)
func1()
导入方式4:
import test as t1
print(t1.name)
print(t1.a)
t1.func1()
导入方式5:
from test import name as t_name
print(t_name)  # 小明

from test import a as t_a
print(t_a)   # 100

from test import func1 as t_func1
t_func1()    # 你好,世界!
三、包
(一)、什么是包
包含_ _init_ _.py文件的文件夹就是包
(二)、怎么使用包或者文件夹中的模块中的内容
1)import 包名   —— (只适用于包)导入指定的包,导入后可以通过‘包名.xxx’去使用__init__.py文件中所有的内容

2)from 包名 import 模块名1,模块名2,模块名3,...   —— (同时适用于包和普通文件夹)导入指定包中指定的模块,导入后可以通过‘模块名.xxx’来使用模块中的内容
3)from 包名 import 内容1,内容2,...   —— (只适用于包)导入指定包中__init__.py文件中的指定内容
4)import 包名.模块名   —— (同时适用于包和普通文件夹)
5)from 包名.模块名 import 内容1,内容2,...   —— (同时适用于包和普通文件夹)
导入方式1:
import files2
导入方式2:
from files1 import abc
导入方式3:
from files2 import age
导入方式4:
import files1.abc
导入方式5:
from files1.abc import xjh 

注:以上几种方式设计的文件和模块都是在pycharm中创建好了的包或者文件

四、异常捕获
(一)、异常 —— 程序中的错误

程序出现异常(报错)会直接让程序结束运行,在哪个位置出现的异常,程序就会在哪个位置结束

(二)、异常捕获 —— 让程序在出现异常的时候程序不结束,还可以接着往后执行
1)语法结构1   —— 捕获所有异常
try:
	代码段1   —— 需要捕获异常的代码
except:
	代码段2   ——  出现异常后立刻执行的代码
finally:
	代码段3   ——  最后无论如何都会执行的代码
	
执行过程:先执行代码段1,执行代码段1的时候如果没有出现异常,就不执行代码段2,如果出现异常,程序不会报错,并且马上执行代码段2
try:
	age = int(input('请输入你的年龄:'))
except:
	print('年龄输入有误')
2)语法结构(推荐使用)  —— 捕获指定类型的异常
try:
	代码段1  —— 需要捕获异常的代码
except 异常类型:
	代码段2  —— 出现异常后立刻执行的代码
finally:
	代码段3  —— 最后无论如何都会执行的代码
3)语法结构3   —— 同时捕获多种异常
try:
	代码段1  —— 需要捕获异常的代码
except (异常类型1,异常类型2,...)
	代码段2  —— 出现异常后立刻执行的代码
finally:
	代码段3  —— 最后无论如何都会执行的代码
4)语法结构  —— 同时捕获多种异常
try:
    代码段1
except 异常类型1:
    代码段11 
except (异常类型2,异常类型22,...):
    代码段22
except 异常类型3:
    代码段33
finally:
    代码段3  —— 最后无论如何都会执行的代码
...  

http://www.kler.cn/a/2432.html

相关文章:

  • 提炼关键词的力量:AI驱动下的SEO优化策略
  • 拼多多电子面单接入:常见问题及专业解决方案
  • 深入解析MySQL Explain关键字:字段意义及调优策略
  • es使用knn向量检索中numCandidates和k应该如何配比更合适
  • uniApp上传文件踩坑日记
  • 37. Three.js案例-绘制部分球体
  • 【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(7)
  • 银行数字化转型导师坚鹏:基于案例研究的银行APP运营成功之道
  • Word2010(详细布局解释)
  • 栈----数据结构
  • 测试用例的价值与体系(软件测试入门)
  • 字符串的反转以及巧用反转 ------关于反转,看这一篇就足够了
  • 架构师必须要掌握的大小端问题
  • TCP/UDP协议
  • 【CMake手册篇】CMake帮助手册的使用
  • 第二十天SpringBootWeb请求、响应、分层解耦
  • 【Unity入门】3D物体
  • Spring《一》快速入门
  • Java SpringBoot接口,用于代理转发,隐藏真实接口
  • python绘制三维图
  • 从头开始完成一个STM32例程
  • java坦克大战(2.0)
  • 用队列实现栈和用栈实现队列(C 语言)
  • 51单片机之喝水提醒器
  • 点云目标检测
  • 【Linux】进程优先级 环境变量