介绍
函数是一个包含指令的可调用单元,旨在减少代码重复并组织复杂的任务。有两种类型:void 函数(无返回值)和有返回值的函数。
这是Python中函数的基本结构。
def function_name(args): function body
这是 Python 中 void 函数(无返回值)的示例。
# create a function def hello(): print("hello!") # call the function hello()
输出
hello!
基于上面的代码,创建了名为 hello() 的函数。通过指定函数名称后跟括号 () 来调用该函数。
这是一个带有返回值的函数示例。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
输出
6
基于上面的代码,创建了名为 add() 的函数来对两个数字求和。 add() 函数的返回值存储在 result 变量中。
使用返回值函数时,请确保使用返回值。
参数和关键字参数
Python 中的函数可以动态地接受多个参数。有两种方法可以在函数中实现多个参数:
参数:多个参数在函数中实现,无需指定关键字。参数可以使用 *args.
来实现
关键字参数:多个参数在具有指定关键字的函数中实现。关键字参数可以使用 **kwargs 来实现。
参数和关键字参数都必须位于函数中参数定义的最后位置。
这是使用参数方法动态计算数字总和的多个参数实现的示例。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
输出
3 6 24
基于上面的代码,可以使用不同数量的参数来调用 sum() 函数。
这是使用关键字参数方法实现多个参数的示例。
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
输出
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
基于上面的代码,可以使用不同数量的参数来调用display_info()函数。通过使用**kwargs,可以用关键字定义参数。
参数和关键字参数可以一起使用。这是一个例子。
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
输出
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
递归函数
递归函数是在完成任务时调用自身的函数。递归函数可以解决很多问题,包括阶乘数、斐波那契数列等等。
递归函数有两个主要组成部分:
- 基本情况:基本情况定义函数何时停止。
- 递归关系:递归关系定义了函数的递归过程。
在此示例中,阶乘计算是使用递归函数实现的。
def function_name(args): function body
输出
# create a function def hello(): print("hello!") # call the function hello()
让我们仔细看看阶乘()函数。该函数涉及两个组件:
基本情况:如果 n 的值等于 0 或 1,则函数执行终止。
递归关系:当n大于1时函数执行。
hello!
factorial() 函数如下图所示。
拉姆达
lambda 是一个匿名函数。 lambda 可以包含许多参数,就像一般的函数一样。 lambda 函数适合创建直接返回值的小函数。
这是 sum() 函数的示例。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
这是 lambda 函数对两个数字求和的示例。 lambda 函数存储在名为 sum_func 的变量中。
6
要使用 lambda 函数,请通过变量名称调用该函数。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
地图和过滤器
地图功能
map() 函数为列表中的每个项目执行提供的回调函数。
这是 map() 函数将每个数字乘以 3 的示例。
3 6 24
输出
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
基于上面的代码,triple()函数充当map()函数的回调,这意味着为数字列表中的每个项目调用triple()函数。然后,map() 函数的结果被转换为列表,然后存储在名为 result 的变量中。
上面的示例可以使用 lambda 函数进行简化。
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
输出
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
过滤功能
filter() 函数根据给定的回调函数选择列表中的项目。 filter() 函数适合使用提供的回调函数过滤列表中的项目。 filter() 函数需要一个返回布尔值的回调函数。
这是 filter() 函数仅选择列表中偶数的示例。
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
输出
def factorial(n): if n == 0 or n == 1: return 1 else: return n * factorial(n-1) # call the function result = factorial(5) print(result)
基于上面的代码,filter()函数使用is_even()作为回调函数从列表中选择偶数。
可以使用 lambda 函数简化此示例。
120
输出
def function_name(args): function body
示例 - 删除重复代码
该功能可用于删除重复代码。例如,有两个函数,称为register()和login()。这两个函数都使用验证过程。
# create a function def hello(): print("hello!") # call the function hello()
验证过程有重复的代码。要删除这些重复项,可以将验证过程包装在单独的函数中。
hello!
validate()函数可以在register()和login()函数内部使用。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
基于上面的代码,代码更干净,更容易修改,因为如果更新额外的验证规则,可以在一处(validate()函数内部)更新验证规则。
尖端
这些是在 Python 中使用函数时的关键技巧。
该函数必须完成单个任务。如果需要多个任务,请为其他任务创建一个单独的函数。
函数参数的最大数量为 3。如果参数看起来超过 3,请考虑为函数参数使用专用数据对象。
函数参数的最大数量似乎有争议。
这是使用参数的 create_account() 函数的示例。
6
可以修改 create_account() 函数以使用数据对象来获得更简洁的代码。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
- 使用文档来解释功能描述。可以使用“””语法添加文档。
这是在函数内使用文档的示例。
3 6 24
来源
- 函数中的参数和关键字参数
- 递归函数图解
希望这篇文章对你学习Python有所帮助。如果您有任何意见,请在评论区告诉我。
以上是Python 教程 - 函数的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

本文指导Python开发人员构建命令行界面(CLIS)。 它使用Typer,Click和ArgParse等库详细介绍,强调输入/输出处理,并促进用户友好的设计模式,以提高CLI可用性。

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

文章讨论了虚拟环境在Python中的作用,重点是管理项目依赖性并避免冲突。它详细介绍了他们在改善项目管理和减少依赖问题方面的创建,激活和利益。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器