好好学python·函数

Posted 有理想、有本领、有担当的有志青年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了好好学python·函数相关的知识,希望对你有一定的参考价值。

函数的定义

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__   ==> 当前脚本的文档说明 在当前脚本当中的第一个 三引号注释就是当前脚本的说明文档

'''


以上是关于好好学python·函数的主要内容,如果未能解决你的问题,请参考以下文章

好好学python·函数进阶(递归函数,回调函数,闭包函数,匿名函数,迭代器)

撸起袖子好好学Python

好好学python·集合

好好学python·集合

好好学python · 字符串(find(),index(),split(),join(),strip(),replace())

好好学python · 字符串(find(),index(),split(),join(),strip(),replace())