20个Python函数程序实例

前面介绍的函数太简单了:
以下是 20 个不同的 Python 函数实例

下面深入一点点:
以下是20个稍微深入一点的,使用Python语言定义并调用函数的示例程序:

20个函数实例

  1. 简单函数调用
def greet():print("Hello!")greet()
  1. 带参数的函数
def greet(name):print("Hello, " + name + "!")greet("Alice")
  1. 返回值的函数
def add(x, y):return x + yresult = add(3, 5)
print(result)
  1. 默认参数
def greet(name="World"):print("Hello, " + name + "!")greet()
greet("Alice")
  1. 可变参数
def add(*args):total = 0for num in args:total += numreturn totalresult = add(1, 2, 3, 4, 5)
print(result)
  1. 关键字参数
def greet(name, age):print("Hello, " + name + "! You are " + str(age) + " years old.")greet(name="Alice", age=25)
  1. 使用lambda创建匿名函数
double = lambda x: x * 2
print(double(5))
  1. 递归函数
def factorial(n):if n == 0 or n == 1:return 1else:return n * factorial(n-1)result = factorial(5)
print(result)
  1. 函数作为参数传递
def add(x, y):return x + ydef operation(func, a, b):return func(a, b)result = operation(add, 3, 4)
print(result)
  1. 返回函数
def make_multiplier(n):def multiplier(x):return x * nreturn multipliertimes3 = make_multiplier(3)
print(times3(5))
  1. 在函数中修改列表
def add_one(numbers):for i in range(len(numbers)):numbers[i] += 1my_list = [1, 2, 3, 4]
add_one(my_list)
print(my_list)
  1. 使用assert断言
def divide(x, y):assert y != 0, "Cannot divide by zero!"return x / yresult = divide(10, 2)
print(result)
  1. 函数递归调用
def fibonacci(n):if n <= 1:return nelse:return fibonacci(n-1) + fibonacci(n-2)print(fibonacci(7))
  1. 匿名函数与map函数结合
nums = [1, 2, 3, 4, 5]
doubles = list(map(lambda x: x * 2, nums))
print(doubles)
  1. 使用filter过滤列表
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_nums = list(filter(lambda x: x % 2 == 0, nums))
print(even_nums)
  1. 使用reduce进行累积计算
from functools import reducenums = [1, 2, 3, 4, 5]
total = reduce(lambda x, y: x + y, nums)
print(total)
  1. 列表推导式应用
squared = [x**2 for x in range(10)]
print(squared)
  1. 生成器函数的定义与使用
def square_generator(n):for i in range(n):yield i**2squared = square_generator(5)
print(list(squared))
  1. 装饰器的使用
def my_decorator(func):def wrapper():print("Something is happening before the function is called.")func()print("Something is happening after the function is called.")return wrapper@my_decorator
def say_hello():print("Hello!")say_hello()
  1. 使用functools.partial创建偏函数
from functools import partialdef power(x, y):return x ** ysquare = partial(power, y=2)
cube = partial(power, y=3)print(square(5))
print(cube(5))

函数参考基础知识

在 Python 中,函数使用关键字 def 来定义,后面跟着函数名和参数列表,然后是一个冒号,之后是函数体,包含了函数的具体操作和返回值。例如:

def greet(name):return "Hello, " + name

以上是一个简单的函数定义,函数名为 greet,接受一个参数 name,返回一个拼接了 "Hello, " 和 name 的字符串。

Python 函数还支持默认参数值和关键字参数,可以在定义函数时为参数指定默认值,也可以通过关键字参数来在调用函数时明确指定参数的值。这使得函数在使用时更加灵活。

在 Python 中,函数也支持返回多个值,实际上,Python 的函数返回的是一个元组(tuple),即使看起来只有一个值。这让函数可以返回多个数据,提高了函数的灵活性。

另外,在 Python 中函数也可以嵌套定义,即在一个函数内部再定义一个函数。这种嵌套定义的函数称为内部函数,可以帮助组织代码,提高代码的可读性。

Python 还支持匿名函数,即 lambda 函数,可以用来编写简单的函数,通常用于传递给高阶函数或需要一个简短的函数定义的场合。

总的来说,Python 的函数是 Python 编程中不可或缺的部分,通过函数可以将代码结构化、模块化,提高代码的重用性和可维护性,是 Python 编程中非常重要的基础知识之一。

相关学习:

以下是 20 个不同的 Python 函数实例

我的图书

下面两本书欢迎大家参考学习。

OpenCV轻松入门

李立宗,OpenCV轻松入门,电子工业出版社,2023
本书基于面向 Python 的 OpenCV(OpenCV for Python),介绍了图像处理的方方面面。本书以 OpenCV 官方文档的知识脉络为主线,并对细节进行补充和说明。书中不仅介绍了 OpenCV 函数的使用方法,还介绍了函数实现的算法原理。

在介绍 OpenCV 函数的使用方法时,提供了大量的程序示例,并以循序渐进的方式展开。首先,直观地展示函数在易于观察的小数组上的使用方法、处理过程、运行结果,方便读者更深入地理解函数的原理、使用方法、运行机制、处理结果。在此基础上,进一步介绍如何更好地使用函数处理图像。在介绍具体的算法原理时,本书尽量使用通俗易懂的语言和贴近生活的实例来说明问题,避免使用过多复杂抽象的公式。

本书适合计算机视觉领域的初学者阅读,包括在校学生、教师、专业技术人员、图像处理爱好者。
本书第1版出版后,深受广大读者朋友的喜爱,被很多高校选为教材,目前已经累计重印9次。为了更好地方便大家学习,对本书进行了修订。
在这里插入图片描述

计算机视觉40例

李立宗,计算机视觉40例,电子工业出版社,2022
近年来,我深耕计算机视觉领域的课程研发工作,在该领域尤其是OpenCV-Python方面积累了一点儿经验。因此,我经常会收到该领域相关知识点的咨询,内容涵盖图像处理的基础知识、OpenCV工具的使用、深度学习的具体应用等多个方面。为了更好地把所积累的知识以图文的形式分享给大家,我将该领域内的知识点进行了系统的整理,编写了本书。希望本书的内容能够对大家在计算机视觉方向的学习有所帮助。
本书以OpenCV-Python(the Python API for OpenCV)为工具,以案例为载体,系统介绍了计算机视觉从入门到深度学习的相关知识点。
本书从计算机视觉基础、经典案例、机器学习、深度学习、人脸识别应用等五个方面对计算机视觉的相关知识点做了全面、系统、深入的介绍。书中共介绍了40余个经典的计算机视觉案例,其中既有字符识别、信息加密、指纹识别、车牌识别、次品检测等计算机视觉的经典案例,也包含图像分类、目标检测、语义分割、实例分割、风格迁移、姿势识别等基于深度学习的计算机视觉案例,还包括表情识别、驾驶员疲劳监测、易容术、识别年龄和性别等针对人脸的应用案例。
在介绍具体的算法原理时,本书尽量使用通俗易懂的语言和贴近生活的示例来说明问题,避免使用复杂抽象的公式来介绍。
本书适合计算机视觉领域的初学者阅读,适于在校学生、教师、专业技术人员、图像处理爱好者使用。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

寻找最近的公共父视图

题目 求两个视图的最近公共父视图 暴力解法 采用的是两个 while 循环嵌套迭代来查询最近的公共父视图, 时间复杂度 O(n), 详见 Masonry 的实现&#xff1a; - (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view {MAS_VIEW *closestCommonSuperview nil;MAS_VIEW *…

css-vxe-form-item中输入框加自定义按钮(校验位置错误)

1.浮动错误效果 提示内容不对 2.不使用浮动&#xff0c;使用行内块元素 代码如下 <vxe-form-item title"yoyo:" field"assembleWorkNo" span"8"><template #default><vxe-input style"width:70%;display:inline-block;&quo…

NLP神器Transformers入门简单概述

在这篇博客中,我们将深入探索 🤗 Transformers —— 一个为 PyTorch、TensorFlow 和 JAX 设计的先进机器学习库。🤗 Transformers 提供了易于使用的 API 和工具,使得下载和训练前沿的预训练模型变得轻而易举。利用预训练模型不仅能减少计算成本和碳足迹,还能节省从头训练…

全天候购药系统(微信小程序+web后台管理)

PurchaseApplet 全天候购药系统&#xff08;微信小程序web后台管理&#xff09; 传统线下购药方式存在无法全天候向用户提供购药服务&#xff0c;无法随时提供诊疗服务等问题。为此&#xff0c;运用软件工程开发规范&#xff0c;充分调研建立需求模型&#xff0c;编写开发文档…

Java输入和输出处理

一、Java I/O 文件、内存、键盘--->程序--->文件、内存、控制台 二、文件 相关记录或放在一起的数据的集合 思考&#xff1a; Java程序如何访问文件属性&#xff1f; 解答&#xff1a; Java API:java.io.File类 三、File类 File类的常用方法 方法名称说明boole…

maven项目结构管理统一项目配置操作

一、maven分模块开发 Maven 分模块开发 1.先创建父工程&#xff0c;pom.xml文件中&#xff0c;打包方式为pom 2.然后里面有许多子工程 3.我要对父工程的maven对所有子工程进行操作 二、解读maven的结构 1.模块1 <groupId>org.TS</groupId><artifactId>TruthS…

黑马点评-分布式锁业务

分布式锁原理和实现 分布式系统部署了多个tomcat&#xff0c;每个tomcat都有一个属于自己的jvm&#xff0c;那么假设在服务器A的tomcat内部&#xff0c;有两个线程&#xff0c;这两个线程由于使用的是同一份代码&#xff0c;那么他们的锁对象是同一个&#xff0c;是可以实现互…

智能dns服务器、自建DNS服务器、自架DNS服务器、DNS分流

smart安装链接 [https://github.com/pymumu/smartdns/releases](https://github.com/pymumu/smartdns/releases)wget https://github.com/pymumu/smartdns/releases/download/all-best-ip/smartdns.1.2022.05.03-1046.x86_64-linux-all.tar.gz[rootlocalhost ~]# ls anaconda-k…

前端面试实战补丁24.3.7

1.CSS的position属性 在CSS中&#xff0c;position属性用于指定元素的定位方式。position属性有以下几个可能的值&#xff1a; static&#xff1a; 默认值。元素按照文档流进行定位&#xff0c;不会被特别地定位&#xff0c;也不会受到top、right、bottom、left或z-index属性的…

2024 PhpStorm激活,分享几个PhpStorm激活的方案

文章目录 PhpStorm 公司简介我这边使用PhpStorm的理由PhpStorm 2023.3 最新变化AI Assistant 预览阶段结束 正式版基于 LLM 的代码补全测试代码生成编辑器内代码生成控制台中基于 AI 的错误解释 Pest 更新PHP 8.3 支持#[\Override] 特性新的 json_validate() 函数类型化类常量弃…

effective c++ 笔记 条款41-46

条款41&#xff1a;了解隐式接口和编译器多态 显式接口和运行期多态&#xff1a; 面向对象的世界总是以显式接口和运行期多态解决问题 显式接口的构成&#xff1a; 函数名称&#xff0c;参数类型&#xff0c;返回类型&#xff0c;常量性也包括编译器产生的copy构造函数和copy …

142.环形链表II

142.环形链表II 力扣题目链接(opens new window) 题意&#xff1a; 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0…

Linux性能分析之CPU实战

本课程专注于教授学员如何利用各种工具和技术来分析Linux系统中的CPU性能问题。通过实际操作和案例研究&#xff0c;学员将深入了解CPU性能优化和故障排除&#xff0c;提升其在Linux环境下的技能水平。 课程大小&#xff1a;1.9G 课程下载&#xff1a;https://download.csdn.…

例行性工作(at,crontab)

目录 单一执行的例行性工作at 语法 选项 时间格式 at的工作文件存放目录 at工作的日志文件 实例 命令总结&#xff1a; 循环执行的例行性工作crond 语法 选项 crontab工作调度对应的系统服务 crontab工作的日志文件 用户定义计划任务的文件所在目录 动态查看 crontab文件格式 文…

js拓展-内置对象

目录 1. 数组对象 1.1 数组的四种方式 1.2 JS中数组的特点 1.3 常用方法 2. 日期对象 2.1 日期对象的创建 2.2 日期对象的方法 2.3 案例&#xff1a;输出现在的时间 3. 全局对象 3.1 字符串转换成数字类型 3.2 编码解码函数 1. 数组对象 注&#xff1a;数组在JS中是一…

企业如何进行数据分析,实现科学决策和业务增长

在当今信息时代&#xff0c;数据已经成为企业运营和发展的重要资源。企业拥有大量的数据&#xff0c;包括但不限于销售数据、客户数据、市场数据、企业内部管理数据等等&#xff0c;这些数据记录了企业的运营状况和业务发展情况。但是&#xff0c;这些数据如果不进行分析和利用…

尤雨溪:Vue 未来展望新的一轮

十年&#xff0c;一个既漫长又短暂的时光跨度&#xff0c;对于技术世界来说&#xff0c;更是沧海桑田的瞬间。在这十年里&#xff0c;Vue.js 从无到有&#xff0c;从默默无闻到蜚声全球&#xff0c;不仅改变了前端开发的面貌&#xff0c;更成为了无数开发者手中的得力工具。 在…

软件开发未来发展方向

传统的软件开发行业未来的趋势将会是更加自动化和智能化。随着人工智能和机器学习技术的发展&#xff0c;软件开发过程中的一些重复性、繁琐的工作将会被自动化取代&#xff0c;从而提高开发效率和质量。同时&#xff0c;随着物联网、大数据和云计算等技术的成熟&#xff0c;软…

react项目请求无法自动携带上一次请求的JSESSIONID

存在问题 页面依次发起多次请求&#xff0c;服务端会根据有无携带Set-Cookie从而生成新的JSESSIONID返回&#xff0c;前端需要在后续请求自动携带该值&#xff08;浏览器行为&#xff0c;无需代码控制&#xff09; 但目前的情况为&#xff1a;前端请求无法自动携带&#xff0c;…

建图以及DFS、BFS模板

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有限&am…