1.函数
- 函数语法
def 函数名(形式参数1,形式参数2...):
功能代码
return 执行结果(返回值)
- 注意点
①def是python中定义函数的语法
②函数名是该功能代码的标识,函数名字要遵循标识符的命名规则
③功能代码被作为一个语句块出现,必须是缩进
④默认return进行返回
- 调用函数
①语法
(1)函数名()
②注意点
(1)def 函数():只是用来定义函数,而不是执行函数,函数只有调用才会执行。
(2)函数必须先定义后调用否则将会出现错误。
(3)如果想多次执行函数,就多次调用。
- 使用函数的原因
①函数可以封装一个功能,该功能可以被多次使用从而达到代码段重复使用。函数是代码封装和代码复用的体现。
- 函数定义的三部曲
①确定函数名字
②确定函数形式参数
③确定函数返回值
- 空语句 pass
①pass的概念
(1)pass是一个空的语句. 什么也不做
②pass的作用
(1)pass是一个空的语句. 不做任何事情,一般用做占位语句。是为了保持程序结构的完整性。
2.函数加强
- 函数注释
①函数名字下面,连续三对引号之间编写对函数说明的文字
- 匿名函数
①概念
(1)用lambda关键词能创建小型匿名函数。这种函数的定义省略了用def声明函数的标准步骤。
②语法
(1)lambda 形式参数1,形式参数2......:函数代码语句
- 注意事项
①lambda 只是一个表达式,函数体比 def 简单很多。
②lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
③lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
3.参数加强
- 位置参数
①函数的参数默认就是位置参数的含义,以正确的顺序传入函数。调用时的数量必须和声明时的一样并且一一对应
②案例
def fun(x1, x2, x3):
print(x1, x2, x3)
fun(1, 2, 3)
- 命名参数(实参)
①关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
②使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
③案例
def show_info(name, age):
print(“名字:”, name)
print(“年龄:”, age)
show_info(age=18, name=’Jim’)
- 默认参数(形参)
①调用函数时,如果没有传递参数,则会使用默认参数。以下实例中如果没有传入 age 参数,则使用默认值
②案例
def show_stu_info(name, age=18):
print(“学生姓名{}, 年龄{}”.format(name, age))
show_stu_info(‘Jim’)
show_stu_info(‘Sam’, age=20)
- 不定长参数
在python设计函数接口时,为了让调用者可以更方便的使用接口,提供了2种形式的不定长形式参数表现
①**args:接收未命名的多参数,以元组形式表现
②**kwargs:接收已命名的多参数,以字典形式表现
4.返回值加强
- return关键字的作用
①退出函数执行。return后面的代码不再执行
②将函数的执行结果返回到函数调用的位置
- 无返回值(None)
①return仅仅用来退出函数的执行。
②函数功能不关心执行结果也不使用return
③无返回值的函数执行结果为None
- 返回多个值
①函数可以一次性返回多个值,同时也需要多个变量保存这些返回值
②语法
def 函数名字(形式参数1,形式参数2):
return 返回值1,返回值2
变量1,变量2 = 函数名字(实际参数1,实际参数2)
5.变量的作用域
- 作用域范围
①函数外变量全局变量
②函数内变量局部变量
- 局部变量的特点
①局部变量:只能够在变量所在函数内使用,在函数外和其他函数中不能够被使用。
- 全部变量的特点
①默认情况下
(1)可以被程序中的任何代码访问.
(2)可以被外部的代码修改变量的值, 但函数内的代码不能够修改变量的值.
②global关键字
(3)如果一个全局变量需要在函数中被修改.那么在函数中通过global声明这个全局变量.
- 使用变量作用域的原因
①局部变量可以在不同的函数中可以使用相同的变量名字。
②局部变量在函数执行完毕之后立即释放,节约内存资源。
- 如何选择变量的作用域
①如果变量的数据只在函数内部使用,请使用局部变量。
②如果变量的数据函数内部和外部都要使用,请使用全局变量。
网友评论