重庆企业网站制作公司,广东确诊病例最新消息,要制作一个自己的网站,网站的前台和后台Python 函数的学习笔记 0. Python 函数的概要说明1. 自定义函数示例2. 匿名函数示例3. 内置函数示例3-1. filter() 示例3-2. map() 示例3-3. reduce() 示例 4. 可变长参数*args和**kwargs示例4-1. *args#xff08;Positional Variadic Arguments#xff09;4-2. **kwargs*args和**kwargs示例4-1. *argsPositional Variadic Arguments4-2. **kwargsKeyworded Variadic Arguments4-3. 结合使用*args和**kwargs4-4. 解包参数 0. Python 函数的概要说明
在Python中函数是一块组织好的、可重复使用的代码用于执行单一、相关的动作。函数可以接受输入参数也可以返回结果。使用函数可以让你编写更整洁、更可读、更易于维护的代码同时也能够减少代码重复提高开发效率。
下面是关于Python函数的一些介绍
定义函数 Python中使用def关键字来定义函数。函数定义包括函数名、参数列表位于括号内和冒号。函数体是缩进的代码块。def greet(name):这是一个简单的问候函数return fHello, {name}!在这个例子中greet是一个接受一个参数name的函数它返回一个包含名字的问候语。函数参数 位置参数按照定义时的顺序传递的参数。关键字参数通过参数名来指定参数值的参数这样可以不按照顺序传递参数。默认参数在定义函数时可以给参数指定默认值。可变长参数函数可以接受任意数量的参数如*args和**kwargs。 返回值 函数可以使用return语句返回一个或多个值。如果没有return语句函数会在执行完毕后自动返回None。文档字符串Docstrings Python函数通常包含一个文档字符串这是一个位于函数定义下方第一行的字符串用于解释函数的作用。可以使用或来定义文档字符串。作用域 函数内的变量作用域是局部的意味着在函数外部无法访问这些变量。函数可以访问全局作用域的变量但无法直接修改全局变量。如果需要在函数内部修改全局变量可以使用global关键字声明。匿名函数 Python支持匿名函数也称为Lambda函数。Lambda函数可以接受任何数量的参数但只能有一个表达式。它们通常用于编写简单的、一次性的小函数。add lambda x, y: x y递归 函数可以调用自身这种操作称为递归。递归函数在处理分而治之的问题时非常有用如树的遍历、阶乘计算等。高阶函数 Python函数是一等公民可以作为参数传递给其他函数也可以从其他函数返回甚至可以被赋值给变量。能够接受函数作为参数或返回函数的函数称为高阶函数。
1. 自定义函数示例
示例代码
def square(x):squared x * xreturn squaredprint(square(2))输出结果
42. 匿名函数示例
示例代码
square lambda x: x * x
print(square(2))输出结果
43. 内置函数示例
示例代码
filtered list(filter(lambda x: x 2, range(1, 5)))
filtered输出结果
[3, 4]3-1. filter() 示例
示例代码
filtered list(filter(lambda x: x 2, range(1, 5)))
filtered输出结果
[3, 4]3-2. map() 示例
示例代码
mapped list(map(lambda x: x * x, range(1, 5)))
mapped输出结果
[1, 4, 9, 16]3-3. reduce() 示例
示例代码
from functools import reducereduced reduce(lambda x, y: x y, range(1, 5))
reduced输出结果
104. 可变长参数*args和**kwargs示例
在Python中可变长参数允许函数接受任意数量的位置参数和关键字参数。这提供了极大的灵活性使得函数可以处理不同数量和类型的参数。
4-1. *argsPositional Variadic Arguments
*args允许你传递任意数量的非关键字参数给一个函数。在函数内部*args被解释为一个元组。
示例
def sum_all(*args):计算所有传入数字的和total 0for num in args:total numreturn total# 调用函数
print(sum_all(1, 2, 3, 4, 5)) # 输出: 15在这个例子中sum_all函数接受任意数量的参数并将它们相加。当你调用sum_all(1, 2, 3, 4, 5)时*args在函数内部被当作(1, 2, 3, 4, 5)这个元组来处理。
4-2. **kwargsKeyworded Variadic Arguments
**kwargs允许你传递任意数量的关键字参数给一个函数。在函数内部**kwargs被解释为一个字典其中键是参数名值是参数值。
示例
def print_info(**kwargs):打印所有传入的关键字参数for key, value in kwargs.items():print(f{key}: {value})# 调用函数
print_info(nameAlice, age25, jobEngineer)
# 输出:
# name: Alice
# age: 25
# job: Engineer在这个例子中print_info函数接受任意数量的关键字参数并打印它们。当你调用print_info(nameAlice, age25, jobEngineer)时**kwargs在函数内部被当作{name: Alice, age: 25, job: Engineer}这个字典来处理。
4-3. 结合使用*args和**kwargs
你可以在同一个函数中同时使用*args和**kwargs这样可以处理任意数量的位置参数和关键字参数。
示例
def func(*args, **kwargs):print(Positional arguments:, args)print(Keyword arguments:, kwargs)# 调用函数
func(1, 2, 3, a4, b5)
# 输出:
# Positional arguments: (1, 2, 3)
# Keyword arguments: {a: 4, b: 5}
在这个例子中func函数接受任意数量的位置参数和关键字参数并分别打印它们。
4-4. 解包参数
你还可以在调用函数时使用*和**操作符来解包迭代器和字典将它们作为参数传递给函数。
示例
def multiply(x, y):return x * y# 已有元组和字典
numbers (2, 3)
keywords {x: 4, y: 5}# 使用*和**解包元组和字典
print(multiply(*numbers)) # 等同于multiply(2, 3)
print(multiply(**keywords)) # 等同于multiply(x4, y5)
在这个例子中multiply函数接受两个参数。通过使用*numbers元组(2, 3)被解包成两个位置参数通过使用**keywords字典{x: 4, y: 5}被解包成两个关键字参数。
完结