最新要闻
- 小米城市定制机来了!小米13信阳专属版今日交付:包装盒独一无二
- 网易、暴雪骂战正酣 NVIDIA站台《永劫无间》:即将支持DLSS3
- 环球速看:火锅店回应起火后要求顾客先结账:网友甩出一张神图
- 世界报道:《三体》电视剧从北京正负电子对撞机取景 物理学家纷纷追剧
- 全球今日报丨越跌越买!特斯拉降价是“好时机”:木头姐仍在大举加仓
- 世界观速讯丨达到你城市标准没?去年白领平均年终奖8428元:仅1城连涨三年 到手先存
- 今日精选:大品牌好价!振德医用外科、KN95口罩29.9元起包邮
- 世界观察:互联网公司春节红包缩水一半:快手最豪横 狂撒20亿元
- 【独家焦点】50GB包年39元!小米云服务会员春节福利:最低5.5折
- 世界聚焦:SpaceX重型猎鹰火箭发射美国太空军机密卫星:不怕核打击
- 改款特斯拉Model 3即将登场:预计今年三季度投产
- 苹果版“望远镜”!曝iPhone 16 Pro/16 Ultra都会配备潜望长焦
- 科学家警告:2024或成全球史上最热年份
- 育碧CEO让员工少花钱多做事 巴黎工作室将罢工抗议
- 苹果上海被强制执行1.44亿:这么多年还是第一次
- 世界通讯!微软否认“万人大裁员”:纯属谣言
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天热门:Python基础之函数
【资料图】
目录- Python基础之函数
- 一、函数相关的基础知识
- 1.函数的语法结构
- 2.函数的定义与调用
- 3.函数的分类
- 4.函数的返回值
- 5.函数的参数
- 6.名称空间
- 7.名字的查找顺序以及实际案例
- 8.global与nonglobal
- 9.函数名的多种用法
- 10.闭包函数
- 二、关于装饰器
- 1.装饰器简介
- 2.装饰器的模板(重点 务必掌握)
- 3.关于语法糖
- 4.递归函数
- 5.匿名函数
- 6.常见内置函数
- 7.重要内置函数
- 一、函数相关的基础知识
Python基础之函数
关于函数定义首先说一下循环吧 循环就是相同的代码在同一个位置反复执行而函数是相同的代码在不同的位置反复执行(相同的代码不是真正的一模一样而是可以通过传入不同的数据做出不同的改变)函数相当于工具(具有一定的功能) 什么时候想用就直接拿出来使用
一、函数相关的基础知识
1.函数的语法结构
def 函数名(参数): """函数注释""" 函数体代码 return 返回值
def:定义函数的关键字函数名:命名等价于变量名参数:可有可无 主要是在使用函数的时候规定要不要外界传数据进来函数注释:类似于工具说明书函数体代码:是整个函数的核心 主要取决于程序员的编写return:使用函数之后可以返回给使用者的数据 可有可无
2.函数的定义与调用
"""函数必须先定义再调用 顺序不得乱"""函数的定义使用关键字def # 定义阶段只检测语法不执行代码函数的调用函数名加括号 # 调用阶段才会执行函数体代码
3.函数的分类
# 1.空函数 函数体代码为空 用pass或···补全 在项目前期用来搭建框架def register(): """注册功能""" pass
# 2.无参函数 定义函数的时候括号内没有参数def index(): print("from index function")
# 3.有参函数 定义函数的时候有参数 调用函数的时候需要括号传参数def func(a): print(a)
4.函数的返回值
# 什么是返回值调用函数之后返回给调用者的结果# 如何获取返回值变量名 赋值符号 函数的调用res = func() # 先执行func函数 然后将返回值赋值给变量res# 函数返回值的多种情况函数体代码中没有return关键字 默认返回None函数体代码有return 如果后面没有写任何东西还是返回None函数体代码有return 后面写什么就返回什么函数体代码有return并且后面有多个数据值 则自动组织成元组返回函数体代码遇到return会立刻结
5.函数的参数
# 形参与实参的关系形参类似于变量名 在函数定义阶段可以随便写 最好见名知意实参类似于数据值 在函数调用阶段与形参临时绑定 函数运行结束就立刻断开def register(username, password): # username和password为形参 register(almira, 123) # almira和123为实参 username与almira绑定password与123绑定
形式参数在函数定义阶段括号内填写的参数 简称"形参"实际参数在函数调用阶段括号内填写的参数 简称"实参"位置形参函数定义阶段括号内从左往右依次填写的变量名 eg:def func(a, b, c):pass位置实参函数调用阶段括号内从左往右依次填写的变量名 eg:func(1, 2, 3)默认参数本质就是关键字参数 提前给定 用户可传可不传可变长形参 *args **kwargs 用来接受多余的关键字参数 组织成字典赋值给**后面的变量名可变长实参 在这里*类似于for循环 **可以将字典打散成关键字参数的形式传递给函数
# 关于这些参数需要注意以下几个点越短的越简单的越靠前越长的越复杂的越靠后默认参数也要遵循上面同一个形参在调用时不能多次赋值按照位置一一对应传值少一个多一个都不行
6.名称空间
# 名称空间的定义名称空间就是用来存储变量名与数据值绑定关系的地方(我们也可以简单的理解为就是存储变量名的地方)"""内置名称空间"""解释器运行自动产生 里面包含了很多名 eg:print input len """全局名称空间"""py文件运行产生 里面存放文件级别的名字 eg: name = "almira"里面的name就是 """局部名称空间"""函数体代码运行时产生
# 名称空间的存活周期以及作用范围内置名称空间 Python解释器启动自动创建 关闭则自动销毁 解释器级别全局有效全局名称空间 py文件执行则自动创建 运行结束则自动销毁 py文件级别全局有效局部名称空间 函数体代码运行就创建 运行结束则自动销毁 函数体代码全局有效
7.名字的查找顺序以及实际案例
涉及到名字的查找 首先要搞明白自己在哪个空间 其实名字的查找顺序是可以打破# 在局部名称空间中的时候局部名称空间>>>全局名称空间>>>内置名称空间# 在全局名称空间中的时候全局名称空间>>>内置名称空间
1.相互独立的局部名称空间默认不能够互相访问 def func1(): name = "jason" print(age) def func2(): age = 18 print(name)2.局部名称空间嵌套先从自己的局部名称空间查找 之后由内而外依次查找"""函数体代码中名字的查找顺序在函数定义阶段就已经固定死了x = "干饭了" def func1(): x = 1 def func2(): x = 2 def func3(): print(x) x = 3 func3() func2() func1()"""
8.global与nonglobal
# global 局部名称空间直接修改全局名称空间中的数据money = 666def index(): global money money = 123index()print(money)
# nonglobal 内层局部名称空间修改外局部名称空间中的数据 def index(): name = "jason" def inner(): nonlocal name name = "kevin" inner() print(name)index()
9.函数名的多种用法
函数名其实绑定的也是一块内存地址只不过该地址里面存放的不是数据值而是一段代码函数名加括号就会找到该代码并执行以下有四种函数名的用法·可以当做变量名赋值·可以当做函数的参数·可以当做函数的返回值·可以当做容器类型数据
10.闭包函数
什么是闭包函数?·定义在函数内部的函数·用到外部函数的名称空间中的名字闭包函数实际应用?·是另外一种给函数体代码传参的方式# 形如def outer(): print("from outer") def inner(): print("from inner")
二、关于装饰器
1.装饰器简介
# 概念在不改变被装饰对象原代码和调用方式的情况下给被装饰对象添加新的功能# 本质并不是一门新的技术 而是由函数参数、名称空间、函数名多种用法、闭包函数组合到一起的结果# 口诀对修改封闭 对扩展开放
2.装饰器的模板(重点 务必掌握)
def outer(func): def inner(*args, **kwargs): # 执行被装饰对象之前可以做的额外操作 res = func(*args, **kwargs) # 执行被装饰对象之后可以做的额外操作 return res return inner
3.关于语法糖
# 单层语法糖语法糖会自动将下面紧挨着的函数名当做第一个参数自动传给@函数调用# 多层语法糖加载顺序由下往上每次执行之后如果上面还有语法糖 则直接将返回值函数名传给上面的语法糖如果上面没有语法糖了 则变形 index = outter1(wrapper2)
4.递归函数
- 直接或者间接调用自己
- 每次调用都必须比上一次简单且需要有一个明确的约束条件
- 递归:一层层往下
- 回溯:基于明确的结果一层层网上
最大递归深度:其实就是python解释器添加的安全措施官网提供的最大递归深度为1000 实际测试的时候可能会出现996 997 998
def get_age(n): if n == 1: return 18 return get_age(n-1) + 2res = get_age(5)print(res)
5.匿名函数
函数定义没有名字的函数 需要使用关键字lambda匿名函数一般不单独使用 需要配合其他函数一起用语法结构lambda 形参:返回值使用场景lambda a,b:a+b
6.常见内置函数
map() # 映射max() # 最大值min() # 最小值reduce() # 传多个 返回一个值abs() # 绝对值all() # 所有数据值对应的布尔值为True结果才是True 否则返回Falseany() # 所有数据值对应的布尔值有一个为True结果才是True 否则返回Falsebytes() # 转换成bytes类型callable() # 判断名字是否可以加括号调用chr(97) # 基于ASCII码表做转换 数字转换字符ord("a") # 基于ASCII码表做转换 字符转换数字dir() # 返回括号内对象能够调用的名字 divmod() # 元组 第一个数据为整除数 第二个是余数round() # 四舍五入enumerate() # 枚举eval() # 能够识别字符串中的python并执行exec() # python内置函数exec支持动态执行python代码hash() # 哈希加密pow() # 幂指数(次方)sum() # 求和range() # 能返回一系列连续添加的整数,能够生成一个列表对象open() # 打开id() # 用于获取对象的内存地址input() # 获取用输入isinstance() # 用来判断一个函数是否是一个已知的类型bin() # 返回一个整数的二进制表示形式的字符串oct() # oct() 函数将一个整数转换成 8 进制字符串hex() # 将10进制整数转换成16进制,以字符串形式表示int() # 将数字或者字符串转换成int类型数据
7.重要内置函数
zip() # 打包成元组,返回列表,如果长度不一致,则与短的iterable对齐filter() # 用于过滤序列,将满足条件的元素取出来构成新的序列sorted() # 排序 默认是升序
天天热门:Python基础之函数
小米城市定制机来了!小米13信阳专属版今日交付:包装盒独一无二
网易、暴雪骂战正酣 NVIDIA站台《永劫无间》:即将支持DLSS3
环球速看:火锅店回应起火后要求顾客先结账:网友甩出一张神图
世界报道:《三体》电视剧从北京正负电子对撞机取景 物理学家纷纷追剧
全球今日报丨越跌越买!特斯拉降价是“好时机”:木头姐仍在大举加仓
全球关注:SSH 远程免密登录(公钥登录)
世界观速讯丨达到你城市标准没?去年白领平均年终奖8428元:仅1城连涨三年 到手先存
今日精选:大品牌好价!振德医用外科、KN95口罩29.9元起包邮
世界观察:互联网公司春节红包缩水一半:快手最豪横 狂撒20亿元
【独家焦点】50GB包年39元!小米云服务会员春节福利:最低5.5折
世界聚焦:SpaceX重型猎鹰火箭发射美国太空军机密卫星:不怕核打击
快资讯:opencv官网例程(4.7.0版本)运行示例
【优秀论文解读】BoW3D: Bag of Words for Real-time Loop Closing in 3D LiDAR SLAM
学习笔记——Spring中的AOP(AspectJ);Spring中AOP概述;Spring中AOP相关术语;AspectJ中切入点表达式;AspectJ中Jo
当前热讯:峰值21WQps、亿级DAU,小游戏《羊了个羊》是怎么架构的?
改款特斯拉Model 3即将登场:预计今年三季度投产
苹果版“望远镜”!曝iPhone 16 Pro/16 Ultra都会配备潜望长焦
科学家警告:2024或成全球史上最热年份
天天短讯!读编程与类型系统笔记10_泛型算法和迭代器
精选!【K哥爬虫普法】辛苦钱被中间商抽走八成,还因此锒铛入狱
育碧CEO让员工少花钱多做事 巴黎工作室将罢工抗议
苹果上海被强制执行1.44亿:这么多年还是第一次
世界通讯!微软否认“万人大裁员”:纯属谣言
天天讯息:7岁男孩爱撕倒刺致手指感染 医生提醒:处理不当会引发骨髓炎
全球今亮点!春节正常发货:仁和N95灭菌级口罩25片15.9元大促
世界要闻:网友3美元淘了一颗废品锐龙9 5900X:掰正针脚 点亮!
王晶武侠电影 《天龙八部之乔峰传》明日首映:年三十三大视频平台上线
Appuploader内测版本详解
热点评!使用Python的一维卷积
全球时讯:平民也能玩8GHz超频 技嘉B760主板奉上两大绝技:内存延迟大降7ns
被偷家了!德国人不买大众 把美系车特斯拉买成销冠
12nm后 DRAM怎么办?EUV光刻也不是万能药
每日时讯!安徽一劳斯莱斯婚车撞上石墩受损严重 博主:可向设置限宽人员索赔
《蚁人3:量子狂潮》角色海报发布 蚁人女儿貌美如花
象是哪个少数民族的生肖?十二生肖儿歌顺口溜
释迦牟尼佛成道日是哪一天?释迦牟尼佛的故事
国税地税税种有哪些?国税地税税种比例怎么分?
家有恶邻后面一句是什么?家有恶邻居怎么办?
最资讯丨学习笔记——AOP-代理模式
Python使用pyppeteer搭建网页截图api
三星移动硬盘质量怎么样?三星移动硬盘打不开怎么解决?
帅康燃气灶怎么样?帅康燃气灶打火后松手就熄灭怎么解决?
qq服务器拒绝发送离线文件是什么意思?qq服务器拒绝发送离线文件怎么办?
什么八字的人长得好看?什么八字的人长得丑?
光波炉的危害有哪些?光波炉与微波炉的区别
移动硬盘目录损坏如何恢复?移动硬盘目录损坏解决方法
今日快讯:官宣:F1中国站无缘2023赛季 已连续4年缺席
世界热文:开发预算突破7亿!网易400人团队“超级项目”《逆水寒》手游获批版号
天天快报!2023全球品牌价值500强出炉:苹果跌至第2 抖音杀入前10
全球观察:买一赠一:腾讯视频京东Plus会员联名年卡148元大促
《魔兽世界》电子骨灰盒出现bug:下载存档错误 账号被锁定
全球快消息!APM vs NPM
排面!小米登上《人民日报》头版
情侣拍照时戒指不慎掉入洱海 男生立即跳湖寻找:官方回应太危险不可取
天天热文:吃播账号“浪胃仙”被判属原公司:创始人涉职务侵占被捕
全球今日讯!学习笔记——Spring中组件扫描(包含扫描、排除扫描)、Spring中完全注解开发;Spring整合Junit4步骤
10辆特斯拉新车高速上集体燃烧 只剩一堆废铁架子
美国科技巨头依然寒气逼人 微软即将裁员:1万多人丢了工作
每日消息!《最后生还者》热播 收视率仅次于《龙之家族》
全球百事通!别人“借钱不还”怎么办?网友公布微信妙招 赶紧学起来
全球快资讯丨1月23日国服停!双方谈崩 网友吐槽暴雪绿茶:网易后到底谁来接盘?
世界热资讯!冬天加油枪都被冻住了 网友吐槽:国六B汽油里水加多了
当前关注:彻底闹掰!网易:暴雪提议蛮横 不符合商业逻辑
天天速看:价值10万土壤被快递弄丢 或致无法毕业 中通:找不到愿赔1000元 后续来了
央视点赞比亚迪:不惧冰雪 用技术发力高端
【天天时快讯】网友抱怨小米13前摄开孔太大!雷军回应:升级了3200万像素 无短板
数据类型的内置方法 可变类型与不可变类型
每日视讯:P1352 没有上司的舞会+P1122 最大子树和(树形DP入门)
丰收1年 挥霍掉400年的积累!东北黑土地不“黑”了
世界视讯!小米13打破安卓手机亮度纪录!雷军:显示效果特别好
环球微资讯!《魔兽世界》电子骨灰盒今日上线 网易提醒:小心安全隐患
三星旗下SEMES前员工窃密:卖给中国企业 获利6.5亿元
世界视讯!强制使用自家支付系统!苹果摊上事:俄罗斯开出12亿卢布罚单
设计模式之模板方法模式和策略模式
语音助手-智能家居
今日要闻!4K分辨率能否吼得住 RTX 3070Ti版戴尔游匣G16游戏挑战
世界最新:索尼独大的CMOS市场:;两匹中企黑马杀出来了
当前快看:年轻人第一辆车来了!传雷军亲自试驾小米汽车 标准三厢
当前关注:学习笔记——Servlet底层源码分析;Servlet接口;ServletConfig接口;
当前观点:宋浩老师专升本
全球速看:MySQL笔记01: MySQL入门_1.1 MySQL概述
速递!笔记本也不行了 将交出10年最差成绩单
天天快资讯:官方揭秘中国空间站:13年前秘密启动!至少用10年
【新要闻】专利暴露苹果野心!未来苹果全家桶将支持卫星通信
世界播报:漫威宇宙归来!两部大片《黑豹2》《蚁人3》国内定档:预告看个爽
全球最新:学习笔记——Spring中的注解;Spring中装配对象的注解;使用注解配置对象中属性
当前头条:node-sass安装问题
焦点热讯:2023首批版号出炉!米哈游双端大作《崩坏:星穹铁道》获批
讯息:特斯拉股价大跌!马斯克甩锅:未来可能跌得更狠
新动态:靠“车震”充电?宝马最新专利整活
世界观点:官方回应2000元帐篷房像45元招待所属实:游客称被气晕过去 双方已谅解
全球热讯:宏碁推出Nitro XV5 4K显示器:可超频至200Hz高刷
今日最新!LeetCode刷题:343. 整数拆分的完全背包写法解析
焦点报道:AcWing. 1073 树的中心
环球热点!湖北襄阳五分钟内连发两次地震:无破坏性 官方科普地震如何逃生
每日资讯:VScode和cmake的组合拳
手机硬件光追 为啥一直是PPT?
世界快资讯丨骁龙888站起来了!小米11系列MIUI 14稳定版就绪:流畅度暴增
简讯:《三体》电视剧第五集惊现《GTA》地图 网友:梦幻联动、双厨狂喜