参数传递和返回值-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中的函数参数传递和返回值进行了详细介绍。参数传递可以按值传递和按引用传递,返回值可以返回单个值或多个值。在使用函数时,我们需要考虑参数类型和返回值类型,以便实现我们的逻辑需求。
