Python函数调用及参数传递
函数是一种封装代码的方式,可以将代码逻辑封装在函数中,以便重复使用。在Python中,函数可以调用其他函数,并可以传递参数。
一、函数调用
调用函数时,需要使用函数名和参数列表,语法如下:
函数名(参数1, 参数2, ..., 参数n)
例如:
def greet(name):
print("Hello, " + name + "!")
greet("Python") # 输出:Hello, Python!
在上面的例子中,我们定义了一个名为greet的函数,它接收一个参数name,并输出“Hello, name!”。在函数调用时,我们传递一个参数“Python”,输出了“Hello, Python!”。
另外,函数还可以返回值。例如:
def add(x, y):
return x + y
z = add(2, 3) # z的值为5
print(z)
在这个例子中,我们定义了一个名为add的函数,它接收两个参数x和y,并返回它们的和。在函数调用时,我们传递了参数2和3,并将返回值赋值给z,最后输出了z的值5。
二、参数传递
Python函数可以接收两种类型的参数:位置参数和关键字参数。
1. 位置参数
位置参数是指按照参数顺序传递的参数。例如:
def greet(name, message):
print(message + ", " + name + "!")
greet("Python", "Hello") # 输出:Hello, Python!
在这个例子中,我们定义了一个名为greet的函数,它接收两个位置参数name和message,并输出“message, name!”。在调用函数时,我们按照参数顺序传递了参数“Python”和“Hello”,输出了“Hello, Python!”。
2. 关键字参数
关键字参数是指按照参数名称传递的参数。例如:
def greet(name, message):
print(message + ", " + name + "!")
greet(message="Hello", name="Python") # 输出:Hello, Python!
在这个例子中,我们按照参数名称传递了参数“Python”和“Hello”,即使参数顺序不同,函数仍然可以正确输出“Hello, Python!”。
3. 默认参数
默认参数是指函数定义时给参数指定默认值,调用函数时如果没有传递参数则使用默认值。例如:
def greet(name, message="Hello"):
print(message + ", " + name + "!")
greet("Python") # 输出:Hello, Python!
greet("Python", "Hi") # 输出:Hi, Python!
在这个例子中,我们定义了一个名为greet的函数,它接收一个位置参数name和一个默认参数message,默认为“Hello”。在调用函数时,如果不传递message参数,函数使用默认值输出“Hello, name!”;如果传递了message参数,函数使用传递的参数输出“message, name!”。
4. 不定长参数
Python中的函数还支持不定长参数,包括可变长度位置参数和可变长度关键字参数。
可变长度位置参数使用*args表示,可以接收任意数量的位置参数,例如:
def add(*args):
result = 0
for arg in args:
result += arg
return result
z = add(2, 3, 4) # z的值为9
print(z)
在这个例子中,我们定义了一个名为add的函数,它使用可变长度位置参数*args,可以接收任意个位置参数,并将它们的和返回。
可变长度关键字参数使用**kwargs表示,可以接收任意数量的关键字参数,例如:
def print_info(**kwargs):
for key, value in kwargs.items():
print(key + ": " + value)
print_info(name="Python", version="3.9") # 输出:name: Python, version: 3.9
在这个例子中,我们定义了一个名为print_info的函数,它使用可变长度关键字参数**kwargs,可以接收任意个关键字参数,并将它们输出。
总结:
本篇文章介绍了Python函数的调用方式和参数传递方式,包括位置参数、关键字参数、默认参数和不定长参数,希望对读者有所帮助。
