python函数的目的
Python 函数的主要目的是封装可重用的代码块,以便在程序的不同部分中多次调用这些代码块,从而提高代码的可读性、可维护性和可重用性。函数通过定义一组特定的操作(通常与某种计算或数据处理任务相关联)来工作,这些操作可以接收输入(称为参数)并可能返回输出(称为返回值)。
1.提高代码的复用
2.减少代码的重复性
3.提高了写代码的效率
4.使代码清晰,方便修改错误
python函数的定义
在Python中,函数是通过def关键字来定义的。函数定义的基本语法如下:
def 函数名(参数列表):
"""函数文档字符串(可选)"""
# 函数体
# 可以是任何有效的Python代码
# 可以使用return语句返回一个值(可选)
return 返回值 # 如果函数不需要返回任何值,可以省略return语句
函数名:是标识符的一种,用于唯一标识函数。函数名后面跟着一对圆括号,圆括号中可以包含一些变量名,这些变量名被称为函数的参数**。
参数列表:是函数接收外部传入数据的接口。参数列表中的每个参数都是函数的局部变量,它们仅在函数内部有效。参数列表是可选的,如果函数不需要接收任何参数,那么圆括号内可以留空。
函数文档字符串(也称为docstring):是一个可选的字符串,用于描述函数的功能、参数、返回值等信息。它应该紧跟在函数定义的第一行,并使用三引号(“”")包围。
函数体:是函数内部包含的代码块,用于实现函数的具体功能。函数体以冒号(:)开始,并且必须缩进。
返回值:是函数执行完毕后返回给调用者的值。如果函数不需要返回任何值,可以使用return语句单独出现(不带任何值),或者完全省略return语句。
python函数的调用
在python中定义过一个函数就可以调用
函数名(参数列表)
函数名:是之前通过def关键字定义的函数的名称。
参数列表:是传递给函数的值或变量的列表。这些值必须与函数定义时指定的参数数量、顺序和类型相匹配(除非使用了默认参数、可变参数或关键字参数等高级特性)。
返回值
如果函数通过return语句返回了一个值,那么该值会成为函数调用的结果。如果函数没有使用return语句,或者return语句后面没有跟任何值,那么函数将返回None。
python的参数列表
不带参数的函数调用
如果函数定义时没有指定任何参数,那么在调用时也不需要在圆括号内提供任何实参。
def say_hello():
"""打印问候语"""
print("Hello, World!")
# 调用函数
say_hello() # 输出: Hello, World!
在Python中,函数的参数类型主要分为几种,这些类型在函数定义时指定,并在函数调用时提供相应的值。以下是Python函数参数的主要类型:
位置参数
位置参数也称为必传参数,是最常见的参数类型。在调用函数时,实参的顺序必须与函数定义时形参的顺序一致。如果函数定义中包含了位置参数,那么在调用函数时必须提供相应数量的实参。
def add(x, y):
return x + y
result = add(3, 4) # 调用函数时,必须按顺序提供两个参数
print(result) # 输出: 7
关键字参数
关键字参数允许在调用函数时通过参数名来指定参数值,这样就不需要遵循参数在函数定义中的顺序了。同时,关键字参数也允许在调用时只传递部分参数(只要这些参数不是位置参数)。
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet(name="Alice") # 使用关键字参数指定name的值
greet(greeting="Hi", name="Bob") # 同时使用关键字参数指定greeting和name的值
默认值参数
默认值参数在函数定义时就被赋予了一个默认值。如果在调用函数时没有为这些参数提供值,那么就会使用它们的默认值。需要注意的是,默认值参数必须放在位置参数之后。
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Alice") # 调用时只提供了name的值,greeting使用默认值
可变参数
Python提供了两种方式来处理可变长度的参数:*args和**kwargs。
*args:用于接收任意数量的位置参数,并将它们存储在一个元组中。
**kwargs:用于接收任意数量的关键字参数,并将它们存储在一个字典中。
def func(*args, **kwargs):
print("args:", args) # args是一个元组
print("kwargs:", kwargs) # kwargs是一个字典
func(1, 2, 3, name="Alice", age=30)
# 输出:
# args: (1, 2, 3)
# kwargs: {'name': 'Alice', 'age': 30}
命名关键字参数
命名关键字参数通过在一个星号(*)后面定义参数名来指定,这样这些参数就只能通过关键字参数的形式来传递了。这有助于限制传递给函数的参数名称。
def person(name, age, *, city, job):
print(f"{name} is {age} years old. They live in {city} and work as a {job}.")
person("Alice", 30, city="New York", job="Developer")
# 输出: Alice is 30 years old. They live in New York and work as a Developer.
总结
Python函数的参数类型包括位置参数、关键字参数、默认值参数、可变参数(*args和**kwargs)以及命名关键字参数。这些参数类型提供了灵活的方式来定义和调用函数,使得Python函数能够处理各种复杂的场景。