异常
是指程序运行中出现了错误。
捕获异常:
对bug进行提醒,使整个程序继续运行。
捕获所有异常:
try:#可能出错的代码
except:如果出现异常执行的代码
可以输出异常的类型:
try:a=1b='huish'print(a+b)
except Exception as i:print('error',i)#error unsupported operand type(s) for +: 'int' and 'str'
捕获多个异常
可以把要捕获的异常类型写在except()括号中:
try:a=1b='huish'print(a+b)
except(NameError,TypeError)as i:print('error',i)
异常else:
try:a=1b=3print(a+b)
except(NameError,TypeError)as i:print('error',i)
else:print('无异常出现')
异常finally:
表示无论是否出现异常都要执行的代码。
try:a=1b='ygbu'print(a+b)
except(NameError,TypeError)as i:print('error',i)
else:print('无异常出现')
finally:print('无论异常是否都会执行。')#error unsupported operand type(s) for +: 'int' and 'str'
#无论异常是否都会执行。
异常具有传递性
def fun1():num=1/0def fun2():fun1()def main():try:fun2()except Exception as i:print('error',i)main()#error division by zero
模块的导入方式:
语法:
from 模块名 import 模块/类/变量/函数/* as 别名
常用的组合形式如下:
- import 模块名
- from 模块名 import 类/变量/方法
- from 模块名 import *
- import 模块名 as 别名
- from 模块名 import 功能名 as 别名
import 类名:
import time
print('123')
time.sleep(5)
print('456')
from 模块名 import 功能名:
针对某一个功能去使用
from time import sleep
print('123')
sleep(5)
print('456')
from 模块名 import *:
导入模块的所有方法,不用写time.sleep(),直接写sleep()
from time import *
print('123')
sleep(5)
print('456')
as定义别名:
import time as i
print(123)
i.sleep(5)
print(456)
自定义模块:
模块一:
def sum(a,b):print(a+b)
模块二导入模块一:
import homeworkhomework.sum(1,2)
__main__变量:
if __main__=="__main__"表示,只有当程序是直接执行的才会进入if内部,如果是被导入的则if无法进入。
main1模块:
def sum(a,b):print(a+b)if __name__=='__main__':sum(1,2)
main2模块导入main1:
import main1
main1.sum(2,3)#5
若不书写main,则输出的是3 5,因为导入main1模块时,会先自动运行main1
__all__变量:
main1模块:
__all__=['sum']
#all变量是一个列表,其他模块用*导入main1时,只能导入all中所写的方法。def sum(a,b):print(a+b)def fun(a,b):print(a*b)
main2模块导入main1模块:
from main1 import *sum(1,2)#main2只能使用main1中的sum方法