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

python学习笔记3:函数和参数

发布时间:2023-05-17 00:34:36

Python中的函数和参数是编程中非常重要的一部分。函数是一组代码,这组代码可用来实现某些特定的功能。在完成某种任务时,函数可以帮助我们更好地组织代码、提高代码的复用性、减少代码的重复等。

一、函数的定义和调用

Python中函数的定义格式如下:

def func_name(param1, param2, ..., paramN):

    statement(s)

    return [expression]

其中,函数名为func_name,参数为param1, param2, ..., paramN,语句段为statement(s),返回值为expression(可选)。

函数的调用格式如下:

result = func_name(arg1, arg2, ..., argN)

其中,调用的函数名为func_name,参数为arg1, arg2, ..., argN,返回值为result。

例如,定义一个求和函数add:

def add(x, y):

    return x + y

调用add函数计算1+2:

result = add(1, 2)

print(result)  # 输出:3

二、函数的参数类型

Python中函数的参数可以分为可变参数和关键字参数两类。

1. 可变参数

可变参数使用*args表示,它可以接收任意数量的位置参数。当函数被调用时,所有的位置参数都会被封装为一个元组(tuple)。

例如,定义一个求和函数sum:

def sum(*args):

    result = 0

    for arg in args:

        result += arg

    return result

调用sum函数计算1+2+3:

result = sum(1, 2, 3)

print(result)  # 输出:6

2. 关键字参数

关键字参数使用**kwargs表示,它可以接收任意数量的关键字参数。当函数被调用时,所有的关键字参数都会被封装为一个字典(dict)。

例如,定义一个输出函数print_info:

def print_info(**kwargs):

    for key, value in kwargs.items():

        print('{}: {}'.format(key, value))

调用print_info函数输出'Name: John'和'Age: 20':

print_info(Name='John', Age=20)

# 输出:

# Name: John

# Age: 20

三、参数的默认值

在定义函数时,我们可以指定参数的默认值,这样当函数被调用时,如果没有传递该参数,就会使用默认值。

例如,定义一个乘法函数multiply,其中参数y的默认值为1:

def multiply(x, y=1):

    return x * y

调用multiply函数计算2*3和2:

result1 = multiply(2, 3)  # 传递了两个参数

result2 = multiply(2)  # 未传递y参数,默认使用y=1

print(result1)  # 输出:6

print(result2)  # 输出:2

四、传递参数的方式

在Python中,参数传递有两种方式:值传递和引用传递。

1. 值传递

值传递是指当我们向函数传递参数时,会在内存中创建参数的一个副本,并将参数的副本传递给函数。这样,在函数中对参数进行修改不会对原始数据产生影响。

例如,定义一个函数modify_value,它可以修改参数的值:

def modify_value(x):

    x = x + 1

    return x

调用modify_value函数:

a = 1

b = modify_value(a)

print(a)  # 输出:1

print(b)  # 输出:2

可以看到,在调用函数modify_value时,参数a被传递给函数并被复制到一个新的变量x中,接着x被修改,但是原始数据a并没有被修改。

2. 引用传递

引用传递是指当我们向函数传递参数时,会将参数的指针传递给函数,函数可以直接访问原始数据并进行修改。

例如,定义一个函数modify_list,它可以向列表中添加新元素:

def modify_list(lst):

    lst.append(4)

    return lst

调用modify_list函数:

a = [1, 2, 3]

b = modify_list(a)

print(a)  # 输出:[1, 2, 3, 4]

print(b)  # 输出:[1, 2, 3, 4]

可以看到,在调用函数modify_list时,列表a作为参数被传递给函数,并且在函数内部被直接修改,所以函数返回的结果和原始数据a都被修改了。

总结:

函数和参数是Python编程中非常重要的一部分,可以帮助我们更好地组织代码、提高代码的复用性、减少代码的重复等。Python中函数的参数可以分为可变参数和关键字参数两类,还可以指定参数的默认值,参数的传递方式也有值传递和引用传递两种。学会如何定义和调用函数,以及如何灵活地使用参数,将帮助我们更好地掌握Python编程。