在编程的世界里函数就像代码的积木可以将一段代码封装起来赋予其特定的功能。 通过使用函数你可以构建模块化的程序提高代码的重用性、可读性和可维护性。 本文将带你深入了解 Python 函数从基础概念到高级技巧让你掌握构建强大程序的核心技能。一、函数基础代码的封装什么是函数函数是一段完成特定任务的、可重复使用的代码块。 你可以给函数一个名称并在程序中通过这个名称来调用它从而执行函数中的代码。函数的定义创建你的代码积木在 Python 中使用def关键字来定义函数。语法def function_name(parameters): 函数的文档字符串 (可选) # 函数体实现函数功能的代码 return return_value # 可选的返回值def定义函数的关键字。function_name函数的名称用于调用函数。 命名规则与变量类似建议使用小写字母和下划线。parameters函数的参数 (可选)。 参数是在调用函数时传递给函数的值。 可以有多个参数用逗号分隔。docstring函数的文档字符串 (可选)。 用于描述函数的功能、参数和返回值。 良好的文档字符串可以提高代码的可读性和可维护性。return函数的返回值 (可选)。 函数可以返回一个值供调用者使用。 如果没有return语句函数默认返回None。return_value要返回的值。代码示例# 定义一个简单的函数用于计算两个数的和 def add_numbers(x, y): 计算两个数的和. Args: x: 第一个数. y: 第二个数. Returns: 两个数的和. sum x y return sum函数的调用使用你的代码积木定义函数后就可以在程序中使用函数名和括号()来调用它。 如果函数有参数需要在括号中传递相应的参数值。语法result function_name(arguments)function_name要调用的函数的名称。arguments传递给函数的参数值与函数定义中的参数顺序对应。result接收函数的返回值 (如果函数有返回值)。代码示例# 调用 add_numbers 函数 result add_numbers(3, 5) print(f3 5 {result}) # 输出3 5 8运行结果二、函数参数传递信息灵活定制函数参数允许你向函数传递数据从而使函数的功能更加灵活和通用。参数的类型位置参数参数的传递顺序必须与函数定义中参数的顺序一致。关键字参数在调用函数时使用参数名来指定参数值。 这样可以不依赖参数的顺序提高代码的可读性。默认参数在函数定义时可以为参数设置默认值。 如果在调用函数时没有提供该参数的值则使用默认值。可变参数允许函数接收任意数量的参数。 Python 提供了两种可变参数*args和**kwargs。*args接收任意数量的位置参数并将它们存储在一个元组中。**kwargs接收任意数量的关键字参数并将它们存储在一个字典中。代码示例# 位置参数 def greet(name, greeting): print(f{greeting}, {name}!) greet(Alice, Hello) # 输出Hello, Alice! # 关键字参数 greet(greetingHi, nameBob) # 输出Hi, Bob! # 默认参数 def power(base, exponent2): return base ** exponent print(power(2)) # 输出4 (exponent 使用默认值 2) print(power(2, 3)) # 输出8 (exponent 使用参数值 3) # *args 可变参数 def sum_numbers(*args): total 0 for num in args: total num return total print(sum_numbers(1, 2, 3, 4)) # 输出10 # **kwargs 可变参数 def print_info(**kwargs): for key, value in kwargs.items(): print(f{key}: {value}) print_info(nameCharlie, age30, cityNew York) # 输出 # name: Charlie # age: 30 # city: New York运行结果三、函数返回值传递结果代码联动函数可以返回一个值供调用者使用。 使用return语句来指定要返回的值。return语句函数可以有多个return语句但只有一个会被执行。 当函数执行到return语句时会立即结束函数的执行并返回指定的值。如果没有return语句函数默认返回None。代码示例def get_max(a, b): if a b: return a else: return b max_value get_max(10, 5) print(f最大值是{max_value}) # 输出最大值是10 def calculate_sum_and_product(x, y): sum_result x y product_result x * y return sum_result, product_result # 返回一个元组 sum_value, product_value calculate_sum_and_product(2, 3) print(f和{sum_value}, 积{product_value}) # 输出和5, 积6运行结果四、函数作用域变量的活动范围函数作用域指的是变量在程序中的可见范围。局部作用域在函数内部定义的变量只能在函数内部访问。全局作用域在函数外部定义的变量可以在整个程序中访问 (包括函数内部)。global关键字修改全局变量如果在函数内部需要修改全局变量需要使用global关键字来声明。代码示例# 全局变量 global_variable 10 def my_function(): # 局部变量 local_variable 5 print(f函数内部局部变量{local_variable}) print(f函数内部全局变量{global_variable}) my_function() # print(local_variable) # 报错NameError: name local_variable is not defined print(f函数外部全局变量{global_variable}) # 使用 global 修改全局变量 global_variable 10 def modify_global(): global global_variable global_variable 20 # 修改全局变量 print(f函数内部修改后的全局变量{global_variable}) modify_global() print(f函数外部修改后的全局变量{global_variable})运行结果五、匿名函数 (lambda 函数)简洁的代码匿名函数是指没有名称的函数也称为 lambda 函数。lambda关键字语法lambda arguments: expressionlambda定义匿名函数的关键字。arguments函数的参数 (可选)。expression函数体只能是一个表达式。匿名函数通常用于简单的操作例如作为其他函数的参数。代码示例# 定义一个匿名函数用于计算两个数的和 add lambda x, y: x y print(f3 5 {add(3, 5)}) # 输出3 5 8 # 将匿名函数作为其他函数的参数 numbers [1, 2, 3, 4, 5] # 使用匿名函数对列表中的元素进行排序 (按绝对值) numbers.sort(keylambda x: abs(x - 3)) print(numbers) # 输出[3, 2, 4, 1, 5]运行结果六、函数文档字符串 (docstring)清晰的说明函数文档字符串 (docstring) 是用于描述函数的功能、参数和返回值。 良好的文档字符串可以提高代码的可读性和可维护性。文档字符串的编写文档字符串应该位于函数定义的开始处用三引号 () 括起来。文档字符串通常包括函数的功能描述、参数说明、返回值说明和示例用法。查看文档字符串可以使用help()函数或函数名.__doc__来查看函数的文档字符串。代码示例def greet(name, greetingHello): 向指定的人打招呼. Args: name: 要打招呼的人的名字. greeting: 问候语默认为 Hello. Returns: 无返回值直接打印问候语. Examples: greet(Alice) Hello, Alice! greet(Bob, Hi) Hi, Bob! print(f{greeting}, {name}!) help(greet) # 或者 print(greet.__doc__)运行结果七、总结构建你的代码世界函数是 Python 编程的核心概念掌握函数的使用能够让你写出更简洁、更易于维护的代码。 通过本文的学习你应该对 Python 函数有了全面的了解包括函数定义、参数、返回值、作用域和匿名函数。 在实际编程中多练习、多实践你就能熟练运用函数构建你的代码世界解决各种问题