python函数的语法形式

  • Post category:Python

Python函数的语法形式有以下几个部分:

函数定义

def function_name(parameters):
    """
    函数文档字符串
    """
    # 函数体(代码块)
    # ...
    return expression
  • def关键字表示定义函数
  • function_name为函数名,遵循Python命名规则
  • parameters为可选的参数列表,可以为空
  • 用冒号结尾,接下来的所有代码块都是函数体
  • 函数文档字符串是对函数的描述,可以在函数体第一行写
  • return关键字后面的expression是函数返回值,可以为空

示例:

def greet(name):
    """
    打招呼函数,参数为字符串类型的名字
    """
    print(f"Hello, {name}!")

greet("Alice")  # 输出 "Hello, Alice!"

函数调用

function_name(arguments)
  • function_name为函数名,需要和函数定义时一致
  • arguments为函数调用时的实际参数列表,可以为空

示例:

def add(a, b):
    """
    加法函数,参数为两个数值类型的数
    """
    return a + b

sum = add(3, 5)
print(sum)  # 输出 8

位置参数

位置参数是函数定义中最基本的参数形式,按照形参的顺序,按位置传递实参。

示例:

def multiply(a, b):
    """
    乘法函数,参数为两个数值类型的数
    """
    return a * b

product = multiply(3, 5)
print(product)  # 输出 15

关键字参数

关键字参数允许我们以关键字的形式传递参数,可以让函数调用更加清晰。

示例:

def greet(name, age):
    """
    打招呼函数,参数为字符串类型的名字和整数类型的年龄
    """
    print(f"{name} is {age} years old.")

greet(name="Alice", age=25)  # 输出 "Alice is 25 years old."

默认参数

默认参数允许我们在函数定义时给参数设置默认值,如果在调用时没有传递参数,则使用默认值。

示例:

def greet(name="World"):
    """
    打招呼函数,参数为字符串类型的名字,默认为"World"
    """
    print(f"Hello, {name}!")

greet()  # 输出 "Hello, World!"
greet("Alice")  # 输出 "Hello, Alice!"

可变长参数

可变长参数允许我们传递不定个数的参数,可以用*表示。

  • *args表示接受任意个数的位置参数
  • **kwargs表示接受任意个数的关键字参数

示例:

def multiply(*args):
    """
    乘法函数,可接受任意个数的参数
    """
    result = 1
    for arg in args:
        result *= arg
    return result

product1 = multiply(3, 5)  # 3 * 5 = 15
product2 = multiply(3, 5, 7)  # 3 * 5 * 7 = 105

print(product1)  # 输出 15
print(product2)  # 输出 105
def greet(**kwargs):
    """
    打招呼函数,接收任意个数的关键字参数
    """
    name = kwargs.get("name", "World")
    age = kwargs.get("age", 18)
    print(f"{name} is {age} years old.")

greet()  # 输出 "World is 18 years old."
greet(name="Alice", age=25)  # 输出 "Alice is 25 years old."

Python函数的语法形式非常灵活,可以用各种方式定义各式各样的函数,大家可以根据实际需要合理运用。