Python(十一)——自定义函数的详细使用

1、函数的定义和调用

函数定义格式:

def 函数名(参数列表):
    #代码块
    [return [返回值]]
  • 参数列表:函数可以接收多个参数,参数之间用逗号隔开

  • 返回值:返回值可以有也可以没有

使用实例:打印两个数的最大值

def fun1(a, b):
    if a >= b:
        return a
    else:
        return b
#调用函数
print(fun1(10, 20))

执行结果:

20

形参和实参

形参:在定义函数时,函数名后面括号中的参数

实参:在调用函数时,函数名后面括号中的参数

#obj 形参
def demo(obj):
    print(obj)
#a 实参    
a = 'abc'    
def(a)

位置参数和关键字参数

使用实例:

#位置参数:
fun1(10, 20)
#关键字参数:
fun1(a=10, b=20)
#混合传参:关键字参数必须位于所有的位置参数之后
fun1(10, b=20)

默认参数

在定义函数时,可以直接给形式参数指定一个默认值,在调用时不指定参数的值,也可以直接使用定义函数时设置的默认值。

定义时,有默认值的参数要定义在后面:

def fun2(b, a=10):
    c = a+b
    print(c)
    
#调用函数    
fun2(20)

执行结果:调用时给b传的值为20,而a使用的是默认值10

30

2、全局变量和局部变量

局部变量:定义在函数内部的变量,只能在函数内部使用

def fun3():
    #局部变量
    a = 10
    b = 20
    print(a+b)
fun3()
#在外部使用局部变量
print(a+b)

执行结果:使用局部变量时报错,NameError: name ‘a’ is not defined 变量未定义

30
Traceback (most recent call last):
  File "E:/Python学习代码/function.py", line 28, in <module>
    print(a+b)
NameError: name 'a' is not defined

全局变量:定义在函数外部的变量,可以在函数外部使用,也可以在函数内部使用

#定义全局变量
c = 20
d = 30
def fun4():
    print(c+d)
fun4()
print(c+d)

执行结果:全局变量在函数内外都被使用

50
50

3、局部函数

在函数内部定义的函数,称为局部函数

def outdef ():
    #定义局部函数
    def innerdef():
        print("定义局部函数")
    #局部函数作为返回值
    return innerdef1()
outdef()

执行结果:将局部函数作为返回值,就可以在全局范围内使用

定义局部函数

注意事项:局部函数中不能定义有和所在函数中变量同名的变量,会报如下错误:UnboundLocalError: local variable ‘name’ referenced before assignment

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐