【python篇——一周速通python语法】一篇文章带你学会python的函数
作者主页现有专栏算法篇Linux篇QT百日筑基篇数据结构篇python篇python函数语法简介目录/索引目录数学中的函数vs计算机中的函数一、数学中的函数定义二、Python 中的函数程序函数三、核心区别对照表什么是函数函数return的使用py中函数返回值的进阶global函数变量扬名天下的利器函数的缺省值不同传参函数的递归一、什么是递归二、递归执行原理栈函数数学中的函数vs计算机中的函数一、数学中的函数定义数学函数yf(x)集合映射关系定义域输入x的取值范围值域输出y的取值范围核心规则一个自变量 x 只能对应唯一 y一一映射 / 多对一不能一对多纯映射输入确定输出永远固定无副作用 例f(x)2x1x3 永远得到 7不受外界影响二、Python 中的函数程序函数是一段可复用代码块只是借用 “函数” 名字本质是代码执行单元规则完全放开。三、核心区别对照表对比维度数学函数Python 函数核心本质数集之间的映射关系封装代码、执行操作的代码模块输入规则一个 x 只能对应唯一 y禁止一对多无限制同一个入参可以返回不同结果输出唯一性纯函数输入固定→输出永久固定存在有副作用函数输入相同结果可变返回值一定有唯一对应输出可以无返回值默认返回None是否依赖外部只依赖自变量 x和外界无关可读取 / 修改全局变量、文件、网络、时间等外部数据副作用绝对无副作用只计算数值大量副作用打印、修改变量、读写文件、弹窗参数数量单变量 / 多变量但都是数值任意参数数字、字符串、列表、对象、甚至其他函数定义域限制严格限定 x 取值如x​要求x≥0不强制校验输入传非法值只会报错不会自动限制定义域是否能重复调用只是抽象映射不存在 “调用执行”必须手动调用才会运行可反复执行逻辑复杂度仅数学运算加减乘除、三角函数等可分支、循环、判断、IO、网络、复杂业务逻辑什么是函数函数是封装一段可重复执行代码的代码块实现代码复用、简化逻辑、降低冗余。 分为两类内置函数Python 自带print()、len()、input()自定义函数用户用def关键字自己定义在python中如何去定义一个函数呢语法def 函数名参数...: 缩进 函数体 缩进 return 值 #有返回值使用return来进行接收我们写一个简单的打印程序吧。我们对函数进行了定义在这个函数中我们实现了一个print的功能 然后我们这个函数有参数我们就将参数进行书写没有参数就将不写参数 但是没有参数也是要写这个括号不能进行省略我们函数的功能要写函数名的方式进行调用也就是下面的printf//这个就是一个函数的调用def printf(): print(这是python的一个函数的编写) printf();函数return的使用我们如果想要函数中的值的化我们是需要进行返回我们想要得到的值的 那我们直接进行return就行了向我们下面的程序。我们想得到相加之后的值我们采用了returnxy的值 并在函数外面进行调用打印。def add(x,y): return xy print(add(1,2))py中函数返回值的进阶在py中可以进行多返回值进行返回 在c/c中只能返回一个值。所以这也是py的一些特色吧。这里我们把x1的值给了a 我们把y1给了b 所以在py中可以进行多值的返回。def test(x,y): return x1, y1 a,b test(1,2) print(a) print(b)我们如果返回多个值但是也有几个值不想要我们就能进行_来进行占位像下面的代码我们只将会y1给了bx1给_代表我们不接受这个参数。def test(x,y): return x1, y1 _,b test(1,2) print(b)实参和形参a0 b1 print(f未进入函数前: a{a}b{b}) def test(a,b): a10 b10 print(f函数内: a{a}b{b}) test(a,b) print(f进入函数后: a{a}b{b})我们发现我们的参数在函数体内部进行了10函数体内部的a,b进行了改变出函数时和进函数的值是一样的 所以我们这里进入函数内部a,b出来的时候不会发生任何变化。所以我们在外面传的实参 在函数的参数叫做形参。 所以形参的改变不影响实参的改变。global函数变量扬名天下的利器global用于在函数内部声明要使用 / 修改全局变量只读取全局变量不加global也能读如果要修改、重新赋值全局变量必须先写global 变量名否则 Python 会把它当成局部变量。a0 b1 print(f未进入函数前: a{a}b{b}) def test(a,b): global num num100; a10 b10 print(f函数内: a{a}b{b}) test(a,b) print(f进入函数后: a{a}b{b}) print(num)函数的缺省值缺省规则参数的缺省值只能从右向左进行书写。如果我给这个参数的传参数缺省值没有任何的作用 如果我不传这个参数的话 那么就会用这个缺省值def add(a,b10): return ab; print(add(1,2)); print(add(1));不同传参我可在传参的时候就指定内部的形参要哪个参数。def add(x,y): print(fx{x}, y {y}) return xy add(y1,x2)函数的递归一、什么是递归递归函数自己调用自己把大问题拆解成结构相同、规模更小的子问题直到触达终止条件。 公式基线条件出口停止递归不再调用自身必须写否则无限递归报错递归条件缩小问题规模再次调用自己二、递归执行原理栈每次函数自调用会在调用栈开辟新空间保存当前变量 满足基线条件后逐层返回栈依次释放。 Python 默认递归深度限制约 1000 层超过抛出RecursionError。def factorial(n): # 基线条件 if n 1 or n 0: return 1 # 递归条件 return n * factorial(n - 1) print(factorial(5)) # 120总结递归必须有基线条件作为出口每次自调用要缩小问题规模保证能走到基线递归靠调用栈实现有深度上限重复计算场景用缓存优化简单计算优先循环树形 / 分治类问题适合递归。下篇预告列表和元组的使用

相关新闻

数控立车实力厂家——奥晟博数控机床

数控立车实力厂家——奥晟博数控机床

一、什么是数控立车 数控立式车床(CNC Vertical Lathe,简称数控立车),是主轴垂直于水平面、依靠水平回转工作台承载工件的数字化车削加工设备,区别于主轴水平布置的数控卧车,是工业母机中专门针对大直径、短…

2026/7/18 21:44:03 阅读更多 →
【计算机科学技术】晶圆是什么回事?与芯片的区别与联系!

【计算机科学技术】晶圆是什么回事?与芯片的区别与联系!

晶圆(Wafer)是制造芯片的圆形半导体基材,而芯片(Chip)是晶圆上经过复杂工艺加工后切割出来的、具备完整电路功能的微小单元。 简单来说,晶圆相当于“未切割的硅片蛋糕”,芯片则是从这块蛋糕上切…

2026/7/18 21:44:03 阅读更多 →
机器人来了:AI时代的人类生存法则!

机器人来了:AI时代的人类生存法则!

在AI和机器人技术快速发展的时代,人类确实需要重新思考自己的定位和发展方向。以下是一些关键的生存法则:1. 拥抱终身学习,持续技能升级AI时代知识更新速度极快,传统的一次性教育模式已不再适用。人类需要培养持续学习的能力&…

2026/7/18 21:44:03 阅读更多 →

最新新闻

分享一个鼠标按下就能画线的绘图窗体VBA

分享一个鼠标按下就能画线的绘图窗体VBA

大家好,这里是晚间有雨伴人眠。之前咱们聊过怎么创建自定义对话框窗口,也聊过怎么让窗口显示在屏幕正中间。今天再分享一个新玩法——在窗体上画线绘图。这个功能说大不大,但用对了场景还挺实用的。比如你可以把它做成一个简易的批注工具&…

2026/7/18 23:31:23 阅读更多 →
OpenClaw 合规公开数据采集入门:合法边界、数据源选型与反爬规避实操指南

OpenClaw 合规公开数据采集入门:合法边界、数据源选型与反爬规避实操指南

一、引言:为什么我们需要一套合规的数据采集框架在大模型训练、市场竞品分析、舆情监控以及学术研究等多个领域,公开数据的获取已经从“锦上添花”变成了“刚性需求”。然而,随着全球数据隐私保护法规(如 GDPR、CCPA、中国的《个人…

2026/7/18 23:31:23 阅读更多 →
使用 C# 将 HTML 转 Word 或者 Word 转 HTML

使用 C# 将 HTML 转 Word 或者 Word 转 HTML

清理收藏夹。HTML作为Web内容的标准格式,与Word这种通用的办公文档格式之间的相互转换,是许多企业级应用中的常见需求。无论是将数据库中的动态内容生成为Word报告,还是将现有的Word文档发布为网页,掌握高效的转换方法都能显著提升…

2026/7/18 23:31:23 阅读更多 →
EMB3531-RK3399工控机救砖!进maskrom模式

EMB3531-RK3399工控机救砖!进maskrom模式

参考下恩山的https://www.right.com.cn/forum/thread-8482116-1-1.html文档

2026/7/18 23:31:23 阅读更多 →
Python从入门到精通(六):高级并发、底层原理与系统级架构设计

Python从入门到精通(六):高级并发、底层原理与系统级架构设计

在掌握了全栈工程与自动化测试的宏大版图后,Python的学习之旅终于触及了这门语言的最深处。本篇将彻底褪去高级语法的糖衣,带领开发者潜入CPython解释器的源码世界。我们将从全局解释器锁的底层实现出发,探究内存管理与垃圾回收的精密齿轮&am…

2026/7/18 23:31:23 阅读更多 →
安装nessus(使用Kali Linux)

安装nessus(使用Kali Linux)

一个有效的注册邮箱&#xff0c;用来接收注册码&#xff08;免费30天&#xff09;。2.安装并配置在终端以root执行命令&#xff0c;安装dpkg -i Nessus-10.12.0-debian10_amd64.deb1234567891011121314151617181920212223242526272829303132333435363738394041424344<br>…

2026/7/18 23:30:22 阅读更多 →

日新闻

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;从模糊意图到可执行指令&#xff1a;Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档&#xff08;PRD&#xff09;生成实践中&#xff0c;原始业务意图往往以自然语言片…

2026/7/18 0:00:38 阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Cursor配置生成失效&#xff1f;3大隐藏陷阱4行修复代码&#xff0c;资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效&#xff0c;是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:38 阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者&#xff1a;钟声编辑&#xff1a;Mark出品&#xff1a;红色星际头图&#xff1a;智能驾驶图片据悉&#xff0c;国内某头部智驾公司端到端模型技术大牛Z投身创业&#xff0c;并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈&#xff0c;更是业内…

2026/7/18 0:00:38 阅读更多 →

周新闻

月新闻