一、什么是函数?
函数是一段可重复调用的、封装了一定代码功能的程序段。在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是表达式,最后是该表达式的返回值。