Python 教程 - 函数
介绍
函数是一个包含指令的可调用单元,旨在减少代码重复并组织复杂的任务。有两种类型: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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

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

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

Python在开发效率上优于C ,但C 在执行性能上更高。1.Python的简洁语法和丰富库提高开发效率。2.C 的编译型特性和硬件控制提升执行性能。选择时需根据项目需求权衡开发速度与执行效率。
