python基础
异常介绍
异常:代码语法格式本身没有任何问题,但是在某些条件下运行时会报错。
语法错误:代码语法格式本身就有问题,运行时一定会报错。
捕获异常的格式
try:
尝试捕获的代码
# 捕获指定类型的异常
except 异常类型1:
当出现异常类型1时的补救代码
# 多个异常分开处理
except 异常类型2:
当出现异常类型2时的补救代码
except 异常类型3:
当出现异常类型3时的补救代码
# 多个异常统一处理
except(异常类型4,异常类型5...):
当出现异常类型4或5时的补救代码
# 捕获未知类型的异常
except Exception as e:
# e 为捕获到的异常的信息描述
当出现任何异常时的补救代码
# 当没有异常时要执行的代码
else:
没有异常执行的代码
# 无论是否有异常都要执行的代码
finally:
都会执行的代码
抛出异常
# 自定义异常类
class AgeError(Exception):
# def __init__(self, *args, **kwargs):
pass
class Person(object):
def __init__(self, name, age):
if age < 0:
# 抛出异常
# 创建异常类的对象
e = AgeError('age less than zero')
# 抛出该对象
raise e
self.name = name
self.age = age
p = Person('Tom', -1)
print(p)
模块
- 模块就是一个以.py结尾的文件。
- 模块中包含全局变量,函数,类,还有测试代码。
- 模块的命名需要遵循标识符命名规则。
模块的导入
# 模块的导入
# 方式一:import 模块名
# 用法:模块名.全局变量名/函数名/类名
# 方式二:from 模块名 import 全局变量/函数名/类名
# 用法:全局变量名/函数名/类名
# 方式三: from 模块名 import *
# 用法:全局变量名/函数名/类名
# 方式三,可以在模块中添加__all__来约束可以导入的内容,__all__ = ['函数名','类名']
模块的原则
# 模块的原则
# 如果是自己运行的话,测试代码应该执行,被其他模块导入的话,测试代码不应该执行
# __name__ == '__main__'可以解决这个问题
# 如果自己运行的话,__name__的值就是__main__会执行测试代码
# 如果被导入的话,则__name__的值为被导入的模块名
# 测试代码
if __name__ == '__main__':
print(height)
demo(10, 20)
p = Person('Tom', 18)
print(p)
包的导入
# 包的导入
# 方式一 import 包名.模块名
# 用法:包名.模块名.全局变量/函数名/类名
# 方式二 from 包名 import 模块名
# 用法:模块名.全局变量/函数名/类名
# 方式三 from 包名 import *
# 用法:模块名.全局变量/函数名/类名
# 方式一
import msg.package
msg.package.msg()
# 方式二
from msg import package
package.msg()
# 方式三
from msg import *
package.msg()
# 注意:当使用方式三时,必须在__init__.py的文件中添加__all__=['模块名1','模块名2',...]这行代码