云计算百科
云计算领域专业知识百科平台

2025.8.13

2025.8.13

# 2025.8.13

# 一、异常
# (一)、异常的定义和种类
# 异常:是一个事件,这个事件在程序执行过程中发生,影响了程序的正常运行
# print(a) # 当系统检查测到一个异常时,程序将不会继续执行。
# 常见异常种类:
# AttributeError:试图访问一个对象没有的属性
# IOError:输入 / 输出异常;基本上是无法打开文件
# ImportError:无法引入模块或包;基本上是路径问题或名称错误
# IndentationError:语法错误(的子类);代码没有正确对齐
# IndexError:下标索引超出序列边界
# KeyError:试图访问字典里不存在的键
# KeyboardInterrupt:用户中断执行(通常是Ctrl + C被按下)
# NameError:使用一个还未被赋予对象的变量
# SyntaxError:Python代码非法,代码不能编译
# TypeError:传入对象类型与要求的不符合
# ValueError:传入一个调用者不期望的值

# (二)、异常处理
# 异常处理(程序出现错误时仍可以继续执行)
# 异常处理格式1:
# try:
# 可能出现异常的语句
# except:(基类异常)
# 出现异常现象的处理代码
try:
print(a)
except:
print("出现错误")
b = 10
print(b)
# 运行结果
# 出现错误
# 10
try:
print(a)
except NameError as e:
print(e)
b = 10
print(b)
# 运行结果
# name 'a' is not defined
# 10
try:
print(a)
except Exception as e: # 万能异常Exception
print(e)
b = 10
print(b) # 运行结果和上面相同
# 多分支异常
try:
print(a)
except IndexError as e:
print(e)
except KeyError as e:
print(e)
except NameError as e:
print(e)
b = 10
print(b) # 运行结果和上面相同
# 异常格式2:
# try:
# 可能异常的代码
# except:
# 出现异常的处理代码
# else:
# try代码块结束后运行的代码
# else 是只有在没有异常时才会执行的代码。可以将except理解为if,except和else不能同时执行
try:
print("我喜欢单依纯")
except Exception as e:
print("出现异常")
else:
print("没有出现异常")
# 运行结果
# 我喜欢单依纯
# 没有出现异常
# 异常处理格式3:
# try:
# 可能出现异常的代码
# except:
# 出现异常的处理代码
# finally:
# try代码块结束后运行的代码 (无论是否出现异常都会执行该语句)
try:
print(我喜欢单依纯)
except Exception as e:
print("出现异常")
finally:
print("没有出现异常")
# 运行结果:
# 出现异常
# 没有出现异常
# 异常处理格式4:
# try:(必选)
# 可能出现异常的代码
# except:(和finally二选一)必选
# 出现异常的处理代码
# else:(可选)
# 未出现异常现象执行的代码
# finally:(和except二选一)必选
# try代码块结束后运行的代码

try:
n = int(input("请输入一个整数:"))
print(10/n)
except ValueError:
print("请输入正确的数据")
except Exception as e:
print("未知错误 %s" %e)
else:
print("没有发生异常现象才会执行的代码")
finally:
print("无论是否异常都会执行的代码")

# (三)、异常传递
# 异常传递:在主函数里设置“异常捕获”机制。调用子函数
# 1)
def funa(): # 子函数
return int(input("请输入整数"))
def funb(): # 主函数
return funa()
try:
print(funb()) # 在主函数中增加异常捕获
except Exception as e:
print("错误:%s" %e)
# 2)
def test():
num = int(input("请输入:"))
return 10/num
def test2():
print(test())
try:
test2()
except ValueError:
print("类型错误。请重新输入:")
except ZeroDivisionError:
print("除零错误")
else:
print("运行成功")
finally:
print("最后执行")
# 运行结果
# 请输入:0
# 除零错误
# 最后执行

# (四)、抛出异常
# 抛出异常raise关键字
# 主动抛出异常的步骤:
# 1)创建一个Exception("…")的对象。"…"是异常的提示信息
# 2)raise抛出这个对象
def user():
pwd = input("请输入密码:")
if len(pwd) >= 6: # 判断密码长度是否大于等于6位数
return pwd
# 创建一个异常对象
ex = Exception("密码长度不够")
raise ex
try:
upwd = user()
print(upwd)
except Exception as e:
print("错误:%s" %e)
# 输入密码的长度大于等于6位数时,直接输出用户密码,当小于6位数时,抛出异常 错误:密码长度不够

# 二、模块
# (一)、模块的介绍
# 1)模块的概念:模块就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块
# 2)执行步骤:
# 在python模块加载路径中查找相应的模块文件
# 将模块文件编译成中间代码
# 执行模块文件中的代码
# 3)模块的作用:可以提高可维护性,可重用,避免函数名和变量的冲突
# 4)模块的分类:
# 内置模块:time 、random 、re
# 第三方模块:通过包管理工具pip安装
# 自定义模块:模块名要遵循Python变量名命名规范,不要使用中文或特殊字符
# 内置模块:time 、random 、re(标准库,python解释器提供的)
# 查看内置函数
import builtins
print(dir(builtins))
# 库(6000多个)也叫第三方模块,使用pip安装库
# 示例:pip install 模块名
# 自定义模块注意变量名的使用

# (二)、模块的使用
# 1)模块的导入
# 语法:
# 导入模块
# 第一种:
# import 模块名1
# import 模块名2
# 调用功能
# 模块名.功能名
import pytest
# 调用模块中的变量
print(pytest.name)
# 调用模块中的函数
pytest.funa()
# 运行结果
# 这是pytest模块
# weijie
# 这是test模块中的funa
# 第二种
# from 模块名 import 功能名
from pytest import funa
funa() # 直接调用,不用再加上模块名
# funb() # 报错,没有导入的功能名或变量名无法直接调用
# 第三种
# from 模块名 import * 导入模块中的所有变量和函数功能
from pytest import *
funa()
funb()
print(name)
# 运行结果
# 这是test模块中的funa
# 这是test模块中的funb
# weijie
# 注意!!尽量减少使用from…import…,避免变量名或函数名的冲突
# 因为在调用时,是直接调用。如果有冲突的变量名或函数名,将会直接调用最后一次导入模块中的变量名或函数名

# (三)、给模块起别名
# 1)用as给模块起别名
import pytest as pt
print(pt.name)
# 2)用as给功能起别名
from pytest import funa as a,name,funb as b
a() # 这是test模块中的funa
b() # 这是test模块中的funb
print(name) # weijie
# 可以同时给模块中的多个功能和变量起别名,但是注意要使用“,”隔开

赞(0)
未经允许不得转载:网硕互联帮助中心 » 2025.8.13
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!