python学习笔记3:函数和参数
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编程。
