~什么是函数?
!函数是一段具有特定功能的、可重用的语句组,是一种功能的抽象。一般函数表达特定功能。
~它的一般表示形式为:
def <函数名>(参数):
<函数体>
return <返回值>
注意:上面的参数可有可无,但是我们括号一定得有。
示例:
def fact(n): s=1 for i in range(1,n+1): s*=i return s print(fact(10))
其中,上面的def ... return 是函数的定义,后面的print(fact(10))是函数的调用
~函数调用
!函数调用是运行函数代码的方式
这里需要指明的地方是:调用的时候需要给出实际参数,然后我们代码运行的时候,实际参数会v替代定义中的形式参数,然后通过最后得到返回值。我们上面那个案例是将返回值输出来了。
!函数定义中的参数,有一部分为可选参数,一部分为非可选参数。函数定义时可以为某些参数指定默认值,构成可选函数;我们可以这样理解,函数定义的时候,有一部分参数是必须要有的,这一部分是不可选参数,有一部分参数是可有可无的,这一部分是可选参数。为了区分,我们需要注意的是可选函数必须放在不可选函数的后面。
!可变参数传递
函数定义的时候,可以设计不确定参数总数量,示例:
def <函数名>(参数,*b): //b是指不确定参数总数量
<函数体>
return <返回值>
示例:
def fact(n,*a): s=1 for i in range(1,n+1): s*=i for item in a: s*=item return s print(fact(10,3))
!参数传递的两种方式
位置传递与名称传递
~函数的返回值
return 保留字用于传递返回值,函数可以有返回值,也可以没有,返回值数量不定,甚至returrn 可有可无,
!函数的局部变量与全局变量
很好理解,局部变量就是在函数内部有效的变量,全局变量就整个程序都有效。然后,我们需要注意的是:在程序中我们可以使用global 保留字在函数内部使用全局变量:
示例:
n,s=10,100 def fact(n): global s #此处s为全局变量 for i in range(1,n+1): s*=i return s print(fact(n),s)
除了使用global 保留字,在局部变量为组合数据类型且未创建,则等同于全局变量,如果它在函数内部被创建了,那么它就是一个局部变量。
示例:
l=["F","f"] def fun(a): l.append(a) return fun("R") print(l) def func(b): l=[] l.append(b) return func("M") print(l)
输出结果: