函数定义
函数是一段可重复使用的代码块,用于实现特定的功能。
类似的前面已学过print(),len(),input(),str(),list(),tuple()等内置函数
自定义函数
内置函数是python类库的已定义好的函数,如果某些功能不能满足时,需要我们自定义函数,组织好代码,重复使用。
函数的定义结构
def 函数名(参数1, 参数2, ...):
# 函数体 代码块
return 返回值
函数调用
函数名(参数1, 参数2, ...)
语法解析
动手自定义函数
实现len自定义函数
函数参数
函数参数是用于接收函数调用时传递的数据或变量。在Python中,函数参数有多种类型,包括以下几种:
def add(a, b):
return a + b
result = add(3, 5)
print(result)
2)默认参数(Default Arguments):函数定义时就已经赋予了一个默认值,如果调用函数时没有传递该参数的值,则会使用默认值。
def greet(name, message="Hello"):
print(message, name)
greet(“李小龙”) # 输出:李小龙
greet(“李小龙”, “Hi”) # 输出:Hi 李小龙
3)关键字参数(Keyword Arguments):关键字参数是根据参数名来传递和接收的,不需要按照位置顺序
def multiply(a, b):
return a * b
result = multiply(b=8, a=2)
print(result) # 输出16
4)不定长参数:
*args 参数:用于接收不定数量的位置参数,传递的参数会被封装成一个元组(tuple)。
**kwargs 参数:用于接收不定数量的关键字参数,传递的参数会被封装成一个字典(dictionary)。
def add_numbers(*args):
sum = 0
for num in args:
sum += num
return sum
result = add_numbers(1, 2, 3, 4, 5)
print(result) # 输出15
def print_person_info(**kwargs):
for key, value in kwargs.items():
print(key + ": " + value)
# 输出: # name:李小龙# age: 25 # city: Beijing
print_person_info(name="李小龙", age="25", city="佛山")
函数返回值
一般来说,函数调用求值的结果,称为函数的“返回值”,函数可以通过使用关键字return来返回一个值或多个值。
函数返回值
局部变量&全局变量
局部变量是在函数内部定义并且只能在函数内部使用的变量。其作用范围被限制在函数内部,函数执行完毕后,局部变量会被销毁。局部变量只能在所属的函数内访问,其他函数无法直接访问该变量。
全局变量是在函数外部定义的变量,其可以在函数内部和外部访问。全局变量的作用范围是整个程序,在任何地方都可以使用。但是,在函数内部如果要修改全局变量的值,需要用到global关键字。
函数嵌套
函数嵌套指的是在一个函数内部定义另一个函数。这种嵌套定义的函数称为内部函数或嵌套函数。
函数嵌套在Python中有以下几个特点:
lambda匿名函数
匿名函数,也称为lambda函数,在Python中是一种特殊的函数形式,可以在没有定义函数名称的情况下创建一个函数。它通常用于只在某个函数内部使用一次的简单函数。
匿名函数的定义语法如下:
lambda 参数列表: 表达式
参数列表是匿名函数的参数,可以是零个或多个参数,多个参数之间使用逗号分隔。表达式是匿名函数的执行体,表示对参数进行计算或操作的逻辑。
求两个数的和:
sum = lambda x, y: x + y
print(sum(3, 5)) # 输出8
递归函数
递归函数是一种通过自身调用来解决问题的函数。可以使用递归来实现一个函数调用自身的过程。
def factorial(n):
# 基线条件
if n == 0:
return 1
# 递归步骤
return n * factorial(n - 1)
递归函数factorial计算一个整数n的阶乘。当n为0时,满足基线条件,函数直接返回结果1。否则,递归调用factorial(n-1)来解决规模更小的子问题,然后将结果与n相乘并返回。
注意,在使用递归函数时,需要确保递归能够终止,即基线条件一定会被满足。否则,递归函数将无限循环调用,导致程序崩溃。
函数总结
函数是一段封装了特定功能的可重复使用的代码块。通过函数,我们可以将代码模块化,提高代码的可读性、可维护性和复用性。
函数可以存在于模块中,通过import语句导入并使用。
Python标准库和第三方库提供了大量的函数,可以用于各种任务和领域。
通过合理地使用函数,我们可以提高代码的复用性和可维护性。函数使得代码结构更清晰、可读性更高,并且可以将复杂的问题分解为简单的子问题,提供了更好的代码组织和管理方式。