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

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

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

2026/7/27 16:00:29 阅读更多 →
机器人来了:AI时代的人类生存法则!

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

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

2026/7/27 5:09:29 阅读更多 →

最新新闻

汽车状态分类器代码详解(未完待续)

汽车状态分类器代码详解(未完待续)

先是data_processing文件: import pandas as pd from urllib.request import urlretrievedef load_data(downloadTrue):# download data from : http://archive.ics.uci.edu/ml/datasets/CarEvaluationif download:data_path, _ urlretrieve("http://archive.…

2026/7/28 18:55:19 阅读更多 →
Adobe GenP 3.0终极方案:跨版本激活Adobe Creative Cloud的深度解析

Adobe GenP 3.0终极方案:跨版本激活Adobe Creative Cloud的深度解析

Adobe GenP 3.0终极方案:跨版本激活Adobe Creative Cloud的深度解析 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 在数字创意领域,Adobe C…

2026/7/28 18:55:19 阅读更多 →
手语翻译革命:用AI打破无声世界的沟通壁垒

手语翻译革命:用AI打破无声世界的沟通壁垒

手语翻译革命:用AI打破无声世界的沟通壁垒 【免费下载链接】Sign-Language-Interpreter-using-Deep-Learning A sign language interpreter using live video feed from the camera. 项目地址: https://gitcode.com/gh_mirrors/si/Sign-Language-Interpreter-usi…

2026/7/28 18:55:19 阅读更多 →
工程车辆识别挖掘机推土机洒水车压路机等识别分割数据集labelme格式3823张13类别

工程车辆识别挖掘机推土机洒水车压路机等识别分割数据集labelme格式3823张13类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件)图片数量(jpg文件个数):3823标注数量(json文件个数):3823标注类别数:13标注类别名称:["articulated_truck","backhoe_loader&…

2026/7/28 18:55:19 阅读更多 →
基于LangChain的AI学习计划生成器开发实践

基于LangChain的AI学习计划生成器开发实践

1. 项目概述:用LangChain构建AI学习计划生成器 这个项目源于一个非常实际的需求——如何让AI帮助我们制定高效的学习计划。作为一名长期关注AI应用落地的开发者,我发现市面上大多数学习计划工具要么过于死板,要么缺乏个性化适配能力。而LangC…

2026/7/28 18:55:19 阅读更多 →
常用排序算法时间复杂度和空间复杂度

常用排序算法时间复杂度和空间复杂度

均按从小到大排列 k代表数值中的"数位"个数 n代表数据规模 m代表数据的最大值减最小值

2026/7/28 18:54:19 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻