欢迎访问宙启技术站
智能推送

参数传递和返回值-Python函数详解

发布时间:2023-06-23 19:50:10

函数是Python程序设计中最基本的概念之一,它可以帮助我们实现程序模块化开发,提高程序的可读性和可维护性。

在Python中,我们可以定义各种不同类型的函数,包括有参数的函数、无参数的函数、返回值函数、递归函数等。

参数传递

Python中的函数传递参数可以分为以下两种方式:

1. 按值传递

按值传递是指把参数的值复制一份传递给函数,函数内部对参数值的修改不会影响原来的值。例如:

def add(a, b):
    a += 1
    b += 1
    print("a=", a)  # a=6
    print("b=", b)  # b=8

a = 5
b = 7
add(a, b)
print("a=", a)  # a=5
print("b=", b)  # b=7

2. 按引用传递

按引用传递是指把参数的引用(内存地址)传递给函数,函数内部对引用所指向的值的修改会影响原来的值。例如:

def change_list(lst):
    lst[0] = 1
    lst[1] = 2
    print("lst=", lst)  # lst=[1, 2]

lst = [0, 0]
change_list(lst)
print("lst=", lst)  # lst=[1, 2]

在Python中,按引用传递的对象有可变对象(如列表、字典、集合)和不可变对象(如数字、字符串、元组)。对于不可变对象,由于其值一旦创建就不可修改,所以不管是按值传递还是按引用传递都没有影响,

返回值

函数执行完成后可以返回一个值,可以用return语句实现,例如:

def add(a, b):
    return a + b

result = add(5, 7)
print(result)  # 12

当函数中有多个return语句时,只有 个被执行到的return语句会返回一个值,其他的return语句不再执行。

def absolute_value(x):
    if x < 0:
        return -x
    else:
        return x

print(absolute_value(5))   # 5
print(absolute_value(-5))  # 5

值得注意的是,函数可以不返回任何值,此时返回的是None

def print_hello():
    print("Hello World!")

result = print_hello()
print(result)  # None

另外,Python中的函数可以返回多个值,这些值被封装在一个元组中返回,例如:

def rectangle_area_and_perimeter(width, height):
    area = width * height
    perimeter = (width + height) * 2
    return area, perimeter

result = rectangle_area_and_perimeter(3, 4)
print(result)  # (12, 14)

area, perimeter = rectangle_area_and_perimeter(3, 4)
print("area=", area)  # area=12
print("perimeter=", perimeter)  # perimeter=14

总结

本文对Python中的函数参数传递和返回值进行了详细介绍。参数传递可以按值传递和按引用传递,返回值可以返回单个值或多个值。在使用函数时,我们需要考虑参数类型和返回值类型,以便实现我们的逻辑需求。