Python 函数中的参数类型
在 Python 函数中,可以接受多种类型的参数,包括必需参数、默认参数、关键字参数和可变参数。每种不同类型的参数都有自己的特点和使用方法。
必需参数
必需参数是函数定义中的普通参数,也称作“位置参数”,必须按照顺序传递,且在调用函数时必须传递指定数量的参数。
以下是一个求和函数的例子,需要输入两个参数:
def add(x, y):
return x + y
result = add(1, 2)
print(result) # output: 3
默认参数
默认参数是指在函数定义时为某个参数指定默认值,如果调用函数时不传递该参数,则使用默认值。
以下是一个带有默认参数的求和函数的例子:
def add(x, y=0):
return x + y
result1 = add(1)
result2 = add(1, 2)
print(result1) # output: 1
print(result2) # output: 3
其中,y 参数的默认值为 0。
另外,需要注意默认参数的默认值只会在 Python 程序编译时计算一次。因此如果默认参数是一个对象(例如列表、字典等),而该对象在函数调用时发生了变化,那么下一次调用该函数时,该默认参数将使用上一次更改后的值。
以下是一个默认参数为列表的例子:
def add(x, l=[]):
l.append(x)
return l
print(add(1)) # output: [1]
print(add(2)) # output: [1, 2]
print(add(3)) # output: [1, 2, 3]
关键字参数
关键字参数是指在调用函数时,按照参数名进行传递的参数。在函数定义时不需要设置默认值,而是在函数运行时指定参数名和值即可。
以下是一个带有关键字参数的函数的例子:
def add(x, y=0, z=0):
return x + y + z
result1 = add(1)
result2 = add(1, y=2)
result3 = add(1, y=2, z=3)
print(result1) # output: 1
print(result2) # output: 3
print(result3) # output: 6
其中,y 和 z 为关键字参数,可以按照名称指定值。
可变参数
有些时候,我们可能需要传递不定数量的参数给函数。在 Python 中,可以使用可变参数来实现。
以下是一个带有可变参数的函数的例子:
def add(*args):
result = 0
for arg in args:
result += arg
return result
result1 = add(1, 2, 3)
result2 = add(1, 2, 3, 4, 5)
print(result1) # output: 6
print(result2) # output: 15
在这个例子中,使用了单个星号将可变参数 args 放在函数定义中,这表示可以接受任意数量的参数,并将这些参数保存在一个元组 args 中。
示例说明
示例 1
假设我们需要编写一个函数,可以用来计算多个数的乘积,但输入的数的个数不确定。例如,我们需要计算 2x3x4x5x6,可以在函数中这样调用:
multiply(2, 3, 4, 5, 6)
请编写一个函数 multiply,实现上述功能。
示例 2
假设我们需要编写一个函数,可以从输入的矩阵中提取某一列数据,并返回该列数据的列表。例如,输入一个 3x3 的矩阵:
1 2 3
4 5 6
7 8 9
如果我们需要提取第 2 列数据,可以在函数中这样调用:
extract_column(matrix, 2)
请编写一个函数 extract_column,实现上述功能。
解答
示例 1
下面是一个实现解法:
def multiply(*args):
result = 1
for arg in args:
result *= arg
return result
print(multiply(2, 3, 4, 5, 6)) # output: 720
在这个解法中,使用可变参数 *args 来接受输入的参数,然后遍历这些参数并计算乘积。
示例 2
下面是一个实现解法:
def extract_column(matrix, column_index):
column = []
for row in matrix:
column.append(row[column_index])
return column
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(extract_column(matrix, 2)) # output: [3, 6, 9]
在这个解法中,我们首先定义一个空列表 column,然后遍历 matrix 中的每一行,将第 column_index 列的元素添加到 column 中。最后返回 column 即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 函数中的参数类型 - Python技术站