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

Python中的参数和返回值

发布时间:2023-06-09 22:13:14

在Python中,函数的参数和返回值是非常重要的语言特性,下面我将详细介绍它们。

### 函数参数

在Python中,函数的参数是指在函数定义时设置的输入变量。在调用函数时,我们需要给这些参数传入具体的值,这些值被称为实参。

Python中的函数参数可以分为以下几类:

#### 1. 位置参数

位置参数是最常用的参数形式。当我们定义一个函数时,可以通过指定参数的顺序来定义位置参数,调用函数时需要按照参数顺序传入实参。例如:

def sum(a, b):
    return a + b
    
print(sum(1, 2)) # 3

在上述代码中,sum函数定义了两个参数ab,分别代表两个相加的数。在调用sum函数时,我们传入了两个实参12

#### 2. 关键字参数

位置参数有一个缺点,就是在调用函数时必须按照参数顺序传入实参,这样容易出错。为了解决这个问题,Python提供了关键字参数。

关键字参数是指在调用函数时使用参数名来指定传入的实参的值。例如:

def sum(a, b):
    return a + b
    
print(sum(a=1, b=2)) # 3

在上述代码中,我们使用参数名ab来指定传入的实参的值,这样就可以不按照参数顺序传入实参了。

#### 3. 默认参数

默认参数是指在函数定义时给参数设置默认值,如果在调用函数时没有传入实参,则使用默认值。例如:

def sum(a, b=2):
    return a + b
    
print(sum(1)) # 3

在上述代码中,我们给b参数设置了默认值2,如果在调用sum函数时不传入b参数,则使用默认值。

#### 4. 可变参数

可变参数可以接受任意数量的实参,并将这些实参转换为一个元组或列表进行处理。Python中有两种可变参数形式:

- *args,接受任意数量的位置参数,将它们打包成元组传递给函数。

- **kwargs,接受任意数量的关键字参数,将它们打包成字典传递给函数。

例如:

def sum(*args):
    total = 0
    for i in args:
        total += i
    return total
    
print(sum(1, 2, 3)) # 6

在上述代码中,我们定义了一个可变参数*args,将传入的实参打包成元组,然后使用循环遍历求和。

def person(name, age, **kwargs):
    print(name, age, kwargs)
    
person('Tom', 18, gender='Male', city='Beijing')
# Tom 18 {'gender': 'Male', 'city': 'Beijing'}

在上述代码中,我们定义了一个可变参数**kwargs,将传入的实参打包成字典,然后打印出来。

### 函数返回值

在Python中,函数的返回值是指函数执行完成后向外界传递的信息。函数可以有多个返回值,返回值可以是任意Python对象。

#### 单个返回值

默认情况下,函数会返回None作为返回值。我们可以使用return语句来指定函数的返回值。例如:

def sum(a, b):
    return a + b
    
print(sum(1, 2)) # 3

在上述代码中,sum函数使用return语句返回了两个数的和。

#### 多个返回值

Python中的函数允许返回多个值,这些值被打包成元组或列表返回。例如:

def get_circle_info(r):
    area = 3.14 * r * r
    circumference = 2 * 3.14 * r
    return area, circumference
    
print(get_circle_info(5)) # (78.5, 31.400000000000002)

在上述代码中,get_circle_info函数计算了圆的面积和周长,并将这些值打包成元组返回。

#### 拆包返回值

多个返回值时,我们可以使用拆包来获取这些返回值。例如:

def get_circle_info(r):
    area = 3.14 * r * r
    circumference = 2 * 3.14 * r
    return area, circumference
    
area, circumference = get_circle_info(5)
print(area, circumference) # 78.5 31.400000000000002

在上述代码中,我们使用拆包将返回的元组拆分成两个变量areacircumference

### 总结

Python中的函数参数和返回值是非常重要的语言特性,掌握好这些知识可以让我们更好地编写高效的函数,并且可以提高代码的可读性和可维护性。