异常处理
普通用法 try-except
高级用法 try-except-else-finally
使用方式:
在函数下使用:
- return一旦执行,函数返回即结束
- finally一定会执行;执行任意一个return之前会转到finally函数
- try执行完else才会执行,当try中有return,else不执行
def f(a):
try:
print(1/a)
return 1/a
except:
print("except")
return "except"
else:
print("exse")
return "else"
finally:
print("finally")
return "finally"
f(1)
函数
函数是一段代码的抽象表示
函数定义:
注意事项:
- 默认情况下,参数类型无需声明
- 默认情况下,返回值类型无需声明
- 参数和返回值可以是0个或多个
参数传递:
函数位置和名称传递:
函数调用时可选择按位置或者按名称进行参数传递
默认按位置,参数较多时按名称
def fact(n,m):
...
fact(10,5) #按位置传递
fact(m=5,n=10)#按名称传递
可选参数传递:
函数定义时为某些参数指定默认值,构成可选参数
可选参数要放在最后
def fact(n,m=1)
...
fact(10)
fact(10,5)
可变参数传递:元组和字典形式
函数可以接受不确定总数的参数变量
多返回值:
局部变量和全局变量:
是什么,有什么关系,怎么转换?
规则1:局部和全局变量是不同的变量
- 局部变量是函数内部占位符,与全局变量可以重名但不同
- 函数运算结束后,局部变量被释放
- 使用global 保留字,在函数内部声明并使用全局变量
规则2:局部变量为组合数据类型且未创建,等同于全局变量
SUM:
- 基本数据类型,无论是否重名,局部变量与全局变量不同
- 可通过global保留字在函数内部声明全局变量
- 组合数据类型,局部变量未创建,则被当作全局变量
lambda函数:
匿名函数, 没有名字的函数,
返回函数名作为结果,
用于定义一行内表示的函数