异常处理

使程序能够应对异常情况

普通用法 try-except

基本使用方式:
image.png
在函数下使用:
image.png

高级用法 try-except-else-finally

使用方式:
image.png
在函数下使用:

  1. return一旦执行,函数返回即结束
  2. finally一定会执行;执行任意一个return之前会转到finally函数
  3. try执行完else才会执行,当try中有return,else不执行

image.png

  1. def f(a):
  2. try:
  3. print(1/a)
  4. return 1/a
  5. except:
  6. print("except")
  7. return "except"
  8. else:
  9. print("exse")
  10. return "else"
  11. finally:
  12. print("finally")
  13. return "finally"
  14. f(1)

函数

函数是一段代码的抽象表示
函数定义:
image.png
注意事项:

  • 默认情况下,参数类型无需声明
  • 默认情况下,返回值类型无需声明
  • 参数和返回值可以是0个或多个

参数传递
函数位置和名称传递:
函数调用时可选择按位置或者按名称进行参数传递
默认按位置,参数较多时按名称

  1. def fact(n,m):
  2. ...
  3. fact(10,5) #按位置传递
  4. fact(m=5,n=10)#按名称传递

可选参数传递:
函数定义时为某些参数指定默认值,构成可选参数
可选参数要放在最后

  1. def fact(n,m=1)
  2. ...
  3. fact(10)
  4. fact(10,5)

可变参数传递:元组和字典形式
函数可以接受不确定总数的参数变量
image.png
image.pngimage.png
多返回值:
局部变量和全局变量
是什么,有什么关系,怎么转换?
规则1:局部和全局变量是不同的变量

  • 局部变量是函数内部占位符,与全局变量可以重名但不同
  • 函数运算结束后,局部变量被释放
  • 使用global 保留字,在函数内部声明并使用全局变量

规则2:局部变量为组合数据类型且未创建,等同于全局变量
image.pngimage.png
SUM:

  • 基本数据类型,无论是否重名,局部变量与全局变量不同
  • 可通过global保留字在函数内部声明全局变量
  • 组合数据类型,局部变量未创建,则被当作全局变量

lambda函数:
匿名函数, 没有名字的函数,
返回函数名作为结果,
用于定义一行内表示的函数