python语言 之

函数概述

函数就是把能实现各种功能的代码打包封装成一个一个代码块,可以被重复使用,把复杂变简单。

1. 函数的定义

python中定义一个函数是使用 def 关键字来声明函数的

定义函数常用格式:def 后接函数标识符名称再加上”():“

def func_name(args):
	function
	return ...
  • ​ 首先,函数名结尾必须加上冒号,

  • ​ 函数代码部分必须以 def 关键字开头,任何传入的参数必须放在括号内

  • ​ 由 return 指定函数返回值,也就是结束函数,如果不指定的话,相当于函数结尾默认加上 return None

  • ​ 如果 function 的部分只有一行,那么整段可以简化和 def 同行。

2.语法

python中函数的语法:

def 函数名([形式参数列表]):
    函数体
    return 返回值

3.函数的调用

定义了函数后,要想执行函数,就需要调用函数

函数调用的一般形式为:

函数名([实际参数列表])

4.函数的返回值

​ 函数并非总是直接输出数据,它可以处理一些数据,并返回一人或一组值,函数返回的值被称为返回值

​ 函数使用 return 语句返回值,并退出函数,函数返回值可以 0个,1个或者多个结果给被调用处的变量

5.参数

参数按类型分:必备参数,关键字参数,默认参数和不定长参数

  • 必备参数(位置参数) 必填参数就是必须要填的参数,没有参数就会报缺少参数的异常,

  • 默认参数 默认参数及在函数的定义的时候就给了个默认值,在函数调用的时候可以不传这个默认参数

  • 不定长参数 可变参数是指参数的个数是可变化的,可以是 0 个,可以是 1 个,也可以是多个,可变参数在定义的时候用符号 *args 表示,而且在函数被调用的时候参数会被组装成一个 tuple (类似 list 数组的一种基本数据类型)

  • 关键字参数 关键词参数与可变参数相似,参数的数量是可变的,因此也常被称为可变关键词参数。

$\textcolor{blue}{重点注意点}$

  1. 必备参数(位置参数): 调用函数时,实参和形参的顺序严格一致,并且实参和形参的数量必须相同;

  2. 默认参数 :可以不用为设置了默认值的形参进行传值,函数会直接使用函数定义时设置的默认值;也可以通过显示赋值来替换默认值;$\textcolor{blue}{默认参数必须出现在函数形参列表的最右边,否则会提示语法错误}$

    • 多次调用函数并不为默认参数传递值,默认参数只在定义时进行一次解释和初始化,因此要避免使用可变数据类型作为函数的默认参数值,
    • 如果在定义函数时某个参数为一个变量,那么参数的默认值只依赖于函数定义时该变量的值
    • 可以使用 (函数名.__defaults__)随时查看函数所有默认的值参数的当前值,其返回值为一个元组,其中的元素依次表示每个默认值参数的当前值
  3. 关键字参数 :是一种按参数名传递值的方式,使用关键字参数允许函数用时参数的顺序与定义时不一致,解释器能用参数名匹配参数值;

  4. 不定长参数 :’ *args ‘ 和 ’**kwargs‘ 为不定长参数,前者是用来接收任意多个实参并将其放在一个元组中,后者是用来接收类似关键字参数一样显式赋值形式的多个实参并将其放入字典中。

实参和形参

定义函数时,圆括号内是使用逗号分隔的形式参数列表(简称形参),

调用函数时,向其传递的参数为实参,根据不同的参数类型,将实参的值或引用传递给形参

  • 当参数类型为固定类型(如:int , float, string, tuple等)时,在函数内部直接修改形参的值不会影响实参
  • 但当参数为可变类型时,修改后的结果是可以反映到函数之外的,即实参也会等到相应的修改。