好好学python·函数
程序员文章站
2022-07-14 23:10:11
...
函数
函数的定义
def 函数名([形参列表]):
当前函数的具体功能的代码
当前函数的具体功能的代码
。。。。
函数的调用
函数名(实参列表[])
函数使用的规范
- 函数只有在被调用时执行
- 不能在函数定义前调用
- 函数的调用不受次数影响
- 函数的命名要遵守命名规范
- 字母数字下划线,不能以数字开头
- 严格区分大小写,不能使用关键字
- 命名有意义且不使用中文
- 函数名不能冲突
函数的参数
函数参数概念及分类
- 函数参数:调用时需要传递的数据.
. 形参: 函数定义时的参数
. 实参: 函数调用时的参数 - 函数调用时,形参和实参个数需要一一对应
- 形参: 普通参数,默认参数,普通收集参数,命名关键字参数,关键字收集参数
- 实参: 普通实参,关键字实参
普通参数
普通的参数,接收实参传递的值
def func(a)
# a即为普通参数
默认参数:
位于普通参数后面,具有默认值的参数
def func(a,b=1)
# b在普通参数a的后面,默认值为1
普通收集参数:
专门收集在函数调用时传递的多余的非关键字实参
def func(a,b=1,*args):
print(a,b,args)
func(1,2,3,4,5,6)
#打印结果为1 2 (3,4,5,6)
#其中a=1,b=2,args=(3,4,5,6) 相当于接受了多余的非关键字形参,结果为元组
命名关键字参数
定义时在普通收集参数后的参数,调用时必须传入指定参数名才能调用
def func(a,b=1,*args,name)
print(a,b,args,name)
func(1,2,3,4,5,6,name='1234567')
#输出结果 1 2 (3, 4, 5, 6) 1234567
关键字收集参数有
用于专门收集多余关键字实参,输出结果为字典
def func(a,b=1,*args,name,**kwargs):
print(a,b,args,name,kwargs)
func(1,2,3,4,5,6,name='1234',age=18.school='HEBTU')
#输出结果为 1 2 (3, 4, 5, 6) 1234 {'age': 18, 'school': 'HEBTU'}
形参声明的位置顺序:
普通参数 -> 默认参数 ->普通收集参数 -> 命名关键字参数 -> 关键字收集参数
函数返回值
- 返回值可有可无
- 可以使用return 返回 任意内容或数据
- 若没有return,默认返回None
- return 意味着函数的结束,return之后的代码不在执行
变量作用域
变量分类
-
全局变量:函数内外都可以使用
①在函数内使用global定义的变量
②在函数外定义,在函数内用global引用的变量 -
局部变量:函数内定义的变量,只能在函数内使用
获取变量数据
- globals() 获取全局数据
- locals() 获取当前作用域的数据
注意事项
- 在函数外定义的变量,函数可以访问,但是不能更改
- 对于定义在函数外的列表和字典可以通过函数更改,其他不能更改,只能访问
函数作用域
def outer():
print('this is outer function...')
def inner():
print('this is inner function...')
inner() #在函数内定义的函数,称为局部函数,只能在函数内调用
outer()
#inner()#会报错
nonlocal
在内函数中使用外层函数的变量,需要使用 nonlocal 关键字引用
def outer():
# 外函数的局部变量
num = 10
def inner():
# nonlocal 关键字在局部函数中使用
nonlocal num # 可以引用,但依然不能提升为全局变量
num += 1
print(num)
inner()
outer()
关于函数的文档
def outer():
'''
这里是让你些当前函数的文档说明的。
需要说明当前函数的作用,
如果当前函数还有行参,那么也需要对行参进行一一说明
name: 这个是一个name参数,有什么作用。。。
age : 这个表示当前的一个年龄
:return: 此处说明当前函数的返回值。。。
'''
print(globals())#输出全局变量
print(__name__) # 获取当前脚本的文件名,
print(__doc__) # 获取当前脚本的说明文档
# print(outer.__doc__) # 获取当前函数的说明文档
'''
魔术变量
__name__ ==> 当前脚本作为主程序,值是 __main__,如果是当做模块,值是当前文件的名字
__doc__ ==> 当前脚本的文档说明 在当前脚本当中的第一个 三引号注释就是当前脚本的说明文档
'''
上一篇: 蓝桥杯 好好学习
下一篇: 20170130检视阅读《好好学习》