【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/10/18 10:46:38 阅读更多 →
【计算机科学技术】晶圆是什么回事?与芯片的区别与联系!

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

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

2026/10/20 3:23:11 阅读更多 →
机器人来了:AI时代的人类生存法则!

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

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

2026/10/18 10:47:40 阅读更多 →

最新新闻

短缩写命名模块的设计与维护:以rea为例

短缩写命名模块的设计与维护:以rea为例

1. 从“rea”这个标题说起:一个被低估的通用缩写第一次看到“rea”这个标题的时候,我脑子里蹦出来的第一反应是——这大概率又是一个被缩写玩坏了的项目名。在技术圈混久了你会发现,越是短到只有三个字母的标题,背后藏的东西往往越…

2026/10/20 4:28:41 阅读更多 →
从工具到认知:三层技能体系搭建指南,告别样样通样样松

从工具到认知:三层技能体系搭建指南,告别样样通样样松

1. 从“skills”这个词说起:为什么它突然成了高频搜索词最近后台收到不少私信,问的都是同一个方向的问题:技能到底该怎么学、怎么攒、怎么用。有人问“2025年学什么技能还不算晚”,有人问“简历上写skills那一栏到底填什么才有竞争…

2026/10/20 4:28:41 阅读更多 →
技术人如何高效提升技能:从工具层到元技能的完整路径

技术人如何高效提升技能:从工具层到元技能的完整路径

1. 从“skills”这个标题说起:一个被低估的硬核话题“skills”这个词,乍一看平平无奇,甚至有点太宽泛了。但如果你在技术社区或者职场成长圈子里待过一段时间,就会发现一个很有意思的现象:越是看起来简单的词&#xff…

2026/10/20 4:28:41 阅读更多 →
AI模特图生成全攻略:电商主图降本增效的完整链路

AI模特图生成全攻略:电商主图降本增效的完整链路

做电商的人应该都有同感,现在上新款最磨人的往往不是选品和定价,而是主图。一件衣服要拍出让人有点击欲望的模特图,传统流程是约模特、订摄影棚、排化妆师,淡季价格还能谈,旺季直接翻倍不说,时间上还完全不…

2026/10/20 4:28:41 阅读更多 →
圣灵珠放进 ABAP 系统,会是什么样的机制

圣灵珠放进 ABAP 系统,会是什么样的机制

大理城的女娲神殿里,赵灵儿把圣灵珠放进祭坛的文字石碑,祭坛才显出安放五灵珠的位置。火、雷、水、风、土各归其位,求雨的仪式才能继续。这个情节很适合拿来理解企业系统里的一类程序,它不直接包办所有事情,却能在合适的身份、场景和条件都具备时,启动一套受控的业务流程…

2026/10/20 4:28:41 阅读更多 →
神经网络边权更新:从浮点精度到硬件协同的工程实践

神经网络边权更新:从浮点精度到硬件协同的工程实践

1. 这不是“调参”,而是神经网络的“肌肉记忆”形成过程很多人第一次看到反向传播公式时,下意识觉得:“哦,就是按链式法则求个导,然后用学习率乘一下更新权重。”——这就像说“跑步就是抬腿、迈步、落地”&#xff0c…

2026/10/20 4:27:40 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →