版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章函数与库的使用目录函数基础Contents01函数的使用0203本章小结与习题04Python库的使用函数基础01(一)函数的基本概念1.什么是函数?一段封装了特定功能、可被反复调用的代码。输入-2.4黑盒abs()输出2.4使用者只需掌握接口规则,无需关心内部实现示例:abs(x)求绝对值●形式参数(形参):函数定义时括号中的变量,如x●实际参数(实参):调用时传入的具体值,如-2.4print(abs(-2.4))#输出2.4(一)函数的基本概念2.Python中的4类函数(1)内置函数Python自带,abs()、len()、print()等,无需import即可直接调用(2)标准库函数随Python安装提供,需import导入math、random、os、datetime、json…(3)第三方库函数社区提供,需先pipinstall再importjieba、numpy、pandas、requests…(4)用户自定义函数
开发者按业务需求使用def自行定义
体现"自己造轮子"的灵活能力(二)函数的作用
一段封装了特定功能、可被反复调用的代码。01减少代码重复重复出现的逻辑只需编写一次,避免复制粘贴带来的维护隐患。02分解复杂问题把一个大任务拆分为若干子问题,每个函数解决一个小问题,逐个击破。03提升代码整洁度其主程序通过函数名即可读懂整体流程,代码结构清晰、便于阅读。04实现代码复用一次编写,多处甚至跨项目反复调用,真正实现"Don'tRepeatYourself"。函数的使用02(一)函数的定义引入场景:为什么要定义函数?在程序中分别计算5!、8!、10!时,会出现大量重复代码,可读性差且难维护。用def将"阶乘计算"封装成函数,就可以一次定义、反复调用。函数定义的六个语法要素def关键字def声明"我要定义函数"2函数名命名规则与变量一致3参数列表放在括号内,可为空4函数体缩进4个空格,写具体逻辑5return返回值可选,省略则默认返回None6文档字符串三引号写在第一行,说明功能(一)函数的定义基本语法模板def
函数名(参数列表):"""函数文档字符串"""函数体return[表达式]示例:封装阶乘函数fact(n)def
fact(n):"""计算n的阶乘n!"""result=1foriin
range(2,n+1):result=result*ireturnresult#一次定义,多处调用print(fact(5),fact(8),fact(10))(二)函数的调用调用的基本形式函数名(实际参数)程序执行到调用处时,会跳转到函数体执行;函数体执行结束后,回到调用处继续向下执行。形参vs实参•形参:定义函数时括号中的变量•实参:调用时真正传入的值调用示例:加法函数def
addFun(a,b):#a,b是形参total=a+breturntotal#调用时传入2025,2026是实参res=addFun(2025,2026)print(res)#输出:4051#形参a=2025,b=2026在函数内被使用(二)函数的调用预告:Python函数的四种参数类型根据传参方式的不同,Python支持以下四种参数类型,下一页详细展开:①位置参数按位置顺序一一对应实参数量/顺序必须匹配②默认参数定义时给定默认值调用时可省略该参数③关键字参数通过"形参名=值"传参传参顺序可以任意④可变参数*args/**kwargs接收任意数量的位置/关键字参数(二)函数的调用参数类型核心特点适用场景代码示例①位置参数(必备参数)实参按位置顺序与形参一一对应,数量必须严格一致。最常见的传参方式,参数意义明确、顺序固定。def
doctor_info(name,dept):print(name,dept)doctor_info("李思辰","外科")#按位置传入②默认参数(缺省参数)定义时为形参指定默认值,调用时可省略;必须放在位置参数之后。大多数场景取常用值,少数情况才需要覆盖默认。def
doctor_info(name,dept="外科"):print(name,dept)doctor_info("李思辰")#默认外科③关键字参数(命名参数)通过"形参名=值"传参,不必按形参定义顺序,可读性更强。参数较多或含义易混淆时,用名字"指名道姓"传参,减少错位。doctor_info(dept="内科",name="张辰娇")#顺序任意#仍可与位置参数混用④可变参数(*args/**kwargs)*args:任意位置参数打包为元组;**kwargs:任意关键字参数打包为字典。参数个数不固定的场景,例如求和、血糖最值统计等。def
doctor_info(name,dept,*directions):print(name,dept,directions)doctor_info("王医生","内科","专家门诊","周二上午")函数的四种参数类型(三)递归函数什么是递归函数?函数体内部直接或间接调用自身的函数,称为递归函数。核心思想:将大规模问题拆解为规模更小的同类型问题求解。递归的两个核心部分①基线条件(BaseCase)直接返回结果,停止递归——防止死循环②递归条件调用自身,且参数必须更接近基线条件(三)递归函数阶乘递归示例deffactorial(n):ifn==0:#基线条件return1else:returnn*factorial(n-1)#递归调用print(factorial(5))#输出:120递归调用过程示意展开:fact(5)fact(4)fact(3)fact(2)fact(0)=1回归:1←1×2=2←2×3=6←6×4=24←24×5=120先层层"展开"直到基线条件fact(0)=1,再带着返回值层层"回归",最终得到5!=120。(四)函数的应用案例示例1:BMI指数计算器(位置参数+条件判断)·参数:姓名、身高h(米)、体重w(千克)·公式:BMI=w/(h×h)判定区间:BMI<18.5→偏瘦18.5~24.9→标准24.9~29.9→偏胖BMI≥29.9→肥胖defcalc_bmi(name,h,w):bmi=w/(h*h)ifbmi<18.5:res="偏瘦"elifbmi<24.9:res="标准"elifbmi<29.9:res="偏胖"else:res="肥胖"returnf"{name}BMI{bmi:.1f}{res}"(四)函数的应用案例示例2:血糖最值统计(可变参数*args)·使用可变参数*p接收任意数量的血糖测量值·遍历所有参数,返回字典包含最大值与最小值my_fun1(6.2,6.1,7.1,6.8,7.2)→{'血糖最大值':7.2,'血糖最小值':6.1}defmy_fun1(*p):max_val=p[0];min_val=p[0]forvinp:ifv>max_val:max_val=vifv<min_val:min_val=vreturn{"max":max_val,"min":min_val}Python库的使用03(一)Python内置库的使用1.库的四种导入方式内置库随Python自带,需通过import导入使用;math库提供常用数学常量与函数。①import模块名importmathmath.fabs(-255.3)②import...as别名importmathasmama.fabs(-255.3)③from...import函数frommathimportfabsfabs(-255.3)④from...import*frommathimport*fabs(-255.3)⚠同名冲突(一)Python内置库的使用2.常用内置库一览常用内置库一览os操作系统/IOsys命令行参数math数学运算random随机数jsonJSON解析datetime日期时间提示:内置库无需安装,import后即可使用。(一)Python内置库的使用3.
math库常用常量与函数●数学常量math.pi=3.1415926...math.e=2.71828...math.inf=无穷大圆周率π、自然对数底数e、无穷大●幂运算与对数math.pow(x,y)x的y次幂math.sqrt(x)平方根math.log(x)自然对数math.log10(x)以10为底对数●三角函数(参数为弧度)math.sin(x)math.cos(x)math.tan(x)math.asin(x)math.acos(x)math.atan(x)●取整与常用函数math.ceil(x)向上取整(天花板)math.floor(x)向下取整(地板)math.fabs(x)绝对值math.factorial(x)阶乘math.gcd(a,b)最大公约数(一)Python内置库的使用用math解决几何计算,用datetime处理日期时间——两个典型案例演示内置库的实际使用。1示例一:圆的面积与周长利用math.pi和math.pow()编写函数,输入半径r返回面积S和周长L。1234567891011importmath_def
my_area(r):s=math.pi*math.pow(r,2)l=2*math.pi*rreturns,l_r=5s,l=my_area(r)print("面积=%.2f"%s)print("周长=%.2f"%l)输出结果(r=5时):面积=78.54周长=31.42✦关键点:math.pi提供高精度π;math.pow(r,2)等价于r**2。✦结果保留2位小数,适合实际教学场景演示。4.内置库的应用案例2示例二:生日提醒用datetime.date记录生日,比对"月/日"输出今日寿星。1234567891011121314importdatetime_birthdays=[{"name":"张志强","birthday":datetime.date(2006,2,16)},{"name":"李思辰","birthday":datetime.date(2005,8,20)}]today=datetime.date.today()forpinbirthdays:b=p["birthday"]ifb.month==today.monthandb.day==today.day:print(p["name"]+"生日快乐!")今日若为8月20日:李思辰生日快乐!✦关键点:.today()获取当天日期,比对month/day即可判断生日。✦不比较年份——年龄不同但月日匹配即可提醒。(一)Python内置库的使用4.内置库的应用案例(二)Python第三方库的使用1.安装与常用库第三方库需先通过pip安装再import;它们覆盖数据处理、可视化、网络、机器学习等领域。pip包管理工具——安装第三方库①默认源安装$pipinstall库名②国内镜像(推荐,解决下载慢/失败)$pipinstall-itsinghua库名清华大学TUNA镜像源,国内访问速度快、稳定性高。③安装后使用importnumpyasnp#与内置库用法一致⚑pip常用小贴士•pipinstall--upgrade库名升级库•pipuninstall库名卸载库•piplist查看已安装库(二)Python第三方库的使用1.安装与常用库常用第三方库概览NumPy科学计算基础提供高性能多维数组ndarray与矩阵运算,是数据科学基石。_Pandas数据分析处理Series/DataFrame二维表结构,支持CSV/Excel/SQL读写。Matplotlib数据可视化2D绘图库,支持折线图、散点图、柱状图、箱型图等多种图表。Scikit-learn机器学习封装分类、回归、聚类、降维等经典机器学习算法与工具。RequestsHTTP网络请求简洁优雅的HTTP库,一句代码即可发送GET/POST请求。BeautifulSoup网页解析HTML/XML解析库,配合Requests可快速提取网页数据(爬虫)。(二)Python第三方库的使用2.第三方库的基础使用NumPy▍导入方式importnumpyasnp▍核心功能·多维数组ndarray与矩阵运算·常用属性:shape/size/dtype·统计函数:sum/mean/std▍示例代码arr=np.array([[1,2,3],[4,5,6],[7,8,9]])print(arr.shape)#(3,3)print(np.sum(arr))#45print(np.mean(arr))#5.0print(np.std(arr))#2.58(二)Python第三方库的使用2.第三方库的基础使用Pandas▍导入方式importpandasaspd▍核心功能·Series一维序列与DataFrame二维表·支持分组、过滤、合并、透视·读写CSV/Excel/S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年江苏安全技术职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年武夷学院高职单招笔试英语历年参考题库含答案解析
- 2026年朔州职业技术学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年无锡科技职业学院高职单招笔试英语历年参考题库含答案解析
- 2026年新疆交通职业技术学院高职单招笔试职业适应性测验历年参考题库含答案解析
- 2026年成都纺织高等专科学校高职单招笔试数学历年参考题库含答案解析
- 2026年广西经济职业学院高职单招笔试化学历年参考题库含答案解析
- 2026年广西农业职业技术学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年广东职业技术学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年广东农工商职业技术学院高职单招笔试职业技能测验历年参考题库含答案解析
- 外购土合同协议书模板
- 城市地下空间规划与设计(中篇共上中下3篇)
- 2025新版船级社考试试题及答案
- 民警为小学生讲安全课件
- 国开电大-成本管理-形考任务1-4满分答案
- 2025年中级经济师考试中级保险专业真题及答案
- 学堂在线 高级医学英语 章节测试答案
- 高内涵细胞分析系统应用
- 玩偶之家-完整版
- 花之舞 高清钢琴谱五线谱
- 沟通的艺术学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论