您的位置:

Python关键字:def创建函数

一、什么是函数?

函数是一段可重复调用的、封装了一定代码功能的程序段。在Python中,函数使用def定义。

def语句最简单的函数形式如下:

def function_name():
    function_body

其中,function_name是你所定义的函数名称;function_body是一段Python代码,用于实现该函数的功能。

当你调用函数时,Python会执行function_body中的代码,然后返回执行结果。函数调用的一般形式如下:

function_name()

函数调用时可以传入参数,以提供更多信息进行运算。在函数定义时,可以指定函数需要哪些参数,以及这些参数的类型。

二、定义函数

在Python中,使用def语句定义函数。函数定义的语法为:

def function_name(parameters):
    statement(s)

其中,function_name为函数名称,parameters是函数的参数列表,用逗号分隔,可以为空;statement(s)是一段Python代码,用于实现该函数的功能。

下面是一个求和函数的示例:

def sum(a, b):
    result = a + b
    return result

在这个示例中,sum是函数名称,a和b是函数参数,result = a + b是函数的代码实现,return表示函数的返回值。

三、调用函数

定义函数后,可通过函数名称来调用它。调用函数时,将按顺序传递参数。例如:

sum(3, 4)

这里传递了两个参数3和4,函数执行后会返回7。

如果函数没有参数,则在调用函数时可以省略括号:

say_hello()

如果函数返回值不需要使用,则可以省略return语句:

def print_info(name, age):
    print("Name:", name)
    print("Age:", age)

print_info("Alice", 25)

调用print_info时传入两个参数,函数中会输出这两个参数的值。

四、参数传递

在Python中,函数可以接收多个参数,包括默认参数、可变参数和关键字参数。

默认参数顾名思义,是函数定义时已经确定了默认值的参数,如果调用时不传值则使用默认值。示例代码如下:

def greet(name, message="Hello!"):
    print("Hi,", name, message)

greet("Alice")
greet("Bob", "How are you?")

示例代码中,message是一个默认参数,函数greet中默认会输出“Hello!”,但是如果在调用该函数时用参数message赋了值,则默认值不再起作用。

可变参数即允许传入任意个参数,这些参数在函数内部会被组装成一个tuple。*args表示任意多个无名参数。

示例代码如下:
def sum(*args):
    result = 0
    for i in args:
        result += i
    print(result)

sum(1, 2, 3)

关键字参数允许你传入0个或任意个含参数名的参数,这些参数在函数内部会被组装成一个字典。**kwargs表示关键字参数。

示例代码如下:

def show_info(name, age, **kwargs):
    print("Name:", name)
    print("Age:", age)
    for k, v in kwargs.items():
        print(k, ":", v)

show_info("Alice", 25, job="teacher", hobby="reading")

在函数定义中,kwargs接收的是一个字典,需要使用.items()遍历。

五、lambda函数

lambda函数是Python的一种匿名函数,常用于较为简单的操作。它的语法是:

lambda arguments: expression

arguments是函数的参数,expression是表达式,最后是该表达式的返回值。