模块
Python程序架构
Python源代码文件:*.py
一个py文件是一个模块(module) 多个模块可以组成一个包(package)
第三方工具包:
创建packet包
创建的每一个packet包中会自带一个_init_.py模块,而且这个模块在import这个包时,会自动加载出现
模块导入方式
packet1下的module1代码:
i = 1
def func():
print("func1")
# 这里在导入模块时会自动导入
# 不想被自动导入的话,可以将代码放入main方法中
if __name__ == '__main__':
print("module会自动导入")
func()
实现代码:
from packet1 import module1
# 取别名,防止出现模块重名
from packet1 import module1 as m1
# 直接导入模块中的方法和变量
from packet1.module1 import i, func
# 直接导入
import packet1.module1 as mm1
print(module1.i)
module1.func()
异常处理
六种典型异常
1.除零错误(ZeroDivisionError):除数为0
2.名称错误(NameError):变量使用前未进行申明或者初始化
3.类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果 对数据类型的操作不当,就会产生类型错误
4.数值错误(ValueError):在输入类型正确的情况下,具体输入值错误
5.索引错误(IndexError):超出序列长度的索引操作
6.属性错误(AttributeError):方法或者属性不适用该对象
异常处理
try:
print(10 / 0)
print("上面异常发生,这不会执行")
except ZeroDivisionError as e:
print(e)
print("发生除零异常")
except NameError as e:
print(e)
print("NameError异常")
else:
print("没有异常")
finally:
print("不管发生什么都会执行")
division by zero
发生除零异常
不管发生什么都会执行
自定义异常
# 自定义异常
class AlienError(Exception):
def __init__(self):
super(AlienError, self).__init__("error")
age = int(input("请输入年龄"))
try:
if age < 0:
raise AlienError
else:
print("age is %d" % age)
except AlienError as e:
print(e)
请输入年龄-1
error