Python-函数参数与返回值

265 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1. 函数参数与返回值的作用

函数的参数:外界希望在函数内部处理的数据

函数的返回值:向外界报告函数的执行结果

函数根据有没有参数以及有没有返回值,可以相互结合,一共4种组合形式。

  1. 无参数,无返回值
  2. 无参数,有返回值
  3. 有参数,无返回值
  4. 有参数,有返回值

定义函数时,是否接收参数,或者是否返回结果,是根据实际功能需求来决定的:

  1. 如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部
  2. 如果希望一个函数执行完成后,向外界汇报执行结果,就可以增加函数的返回值

2. 函数多个返回值

函数的返回值可以有多个,通过使用元组可以让函数一次返回多个值,如果函数返回的类型是元组,return后的小括号可以省略,例如return temp, wetness

  • 在使用或处理返回值时,可以通过元组直接调用返回值,例如result[0]

  • 还可以使用多个变量,一次接收函数的返回结果,例如gl_temp, gl_wetness = measure(),使用了两个变量分别接收了函数返回的结果。

注意:使用多个变量接收结果时,变量的个数应该和元组中元素的个数保持一致

# 函数多个返回值
def measure():
    """测量温度和湿度"""
    print("测量开始...")
    temp = 39
    wetness = 90
    print("测量结束...")

    # 元组-可以包含多个数据,因此可以使用元组让函数一次返回多个值
    # 如果函数返回的类型是元组,小括号可以省略
    return temp, wetness


result = measure()
print("函数返回值:", result)

# 需要单独的处理温度或者湿度--不方便
print("测量温度为:", result[0])
print("测量湿度为:", result[1])
print("-"*50)

# 如果函数返回的类型是元组,同时希望单独的处理元组中的元素
# 可以使用多个变量,一次接收函数的返回结果
gl_temp, gl_wetness = measure()
print("测量温度为:", gl_temp)
print("测量湿度为:", gl_wetness)
print("-"*50)

程序运行结果如下图所示:代码中使用的两种方式都可以调用返回值。

image.png

3. 函数内部修改可变参数

无论传递的参数是可变还是不可变,只要针对的参数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到外部变量的引用。

如果传递的参数是可变类型,在函数内部,使用方法修改了数据内容,同样会影响到外部的数据。

# 函数内部通过方法修改可变参数
def demo(num_list):
    print("函数内部的代码")

    # 使用方法修改列表的内容
    num_list.append(9)

    print(num_list)
    print("函数执行完成")


gl_list = [1, 2, 3]
demo(gl_list)
print(gl_list)

程序运行结果如下图所示:

image.png