




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
引入案例任务分析知识解析案例解析任务实训实训评价2.4.1内置函数2.4.2标准库函数2.4.3第三方库函数任务2.4Python函数2.4.4自定义函数2.4.5匿名函数2.4.6函数的参数传递2.4.7变量作用域任务2.4Python函数引入案例通过上一个任务的学习,已经能够利用给定的条件计算出某个固定资产的每月折旧额,但是,如果想要使这个算法程序能作用到另外一个固定资产,却发现必须复制一下原来的程序,并且修改资产原值、折旧年限、残值率等初始条件。那么有没有更便捷的方法呢?回答是肯定的,其方法就是把原来的程序封装成函数的形式,实现程序的重复利用,提高编程效率,同时还有利于将复杂问题分解简单的小问题,减低了编程的难度。那么,如何将【任务2.3】中利用平均年限法计算折旧的程序封装成自定义函数,从而适用于其他固定资产折旧的计算呢?任务2.4Python函数任务分析函数是一段具有特定功能的、可重用的语句组,并通过函数名进行调用,并可以在需要的地方调用执行,不需要在每个执行的地方重复编写这些语句。每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以返回相应的处理结果。Python中不仅提供许多内置函数,还提供自定义函数的功能。在调用函数的时候,要选择合适的参数传递方式。任务2.4Python函数知识解析函数能够完成特定功能,与黑盒类似,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。使用函数可以提高代码的重复利用率,达到一次编写、多次调用的目的。在Python中,函数可以分为如下几类:内置函数、标准库函数、第三方库函数、自定义函数、匿名函数。2.4.1内置函数
Python解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能就是内置函数。Python解释器启动以后,内置函数也生效了,可以直接拿来使用。前面已经接触过的input()、print()、range()函数等,这些都是Python的内置函数。除了这些函数,Python解释器还提供了更多内置函数,下表列出了Python3.x中的所有内置函数,表中各个内置函数的具体功能和用法,可通过查询Python官方文档进行查看。Python官方文档查看网址如下:/zh-cn/3/library/functions.html任务2.4Python函数abs()delattr()hash()memoryview()set()all()dict()help()min()setattr()any()dir()hex()next()slice()Ascii()divmod()id()object()sorted()bin()enumerate()input()oct()staticmethod()bool()eval()int()open()str()breakpoint()exec()isinstance()ord()sum()bytearray()filter()issubclass()pow()super()bytes()float()iter()print()tuple()callable()format()len()property()type()chr()frozenset()list()range()vars()classmethod()getattr()locals()repr()zip()compile()globals()map()reversed()__import__()complex()hasattr()max()round()请注意:不要使用内置函数的名字作为标识符使用(例如变量名、函数名、类名、模板名、对象名等),虽然这样做Python解释器不会报错,但这会导致同名的内置函数被覆盖,从而无法使用。
Python3.x内置函数
安装Python的同时,也安装一些标准库函数,如math、random等。通过import语句导入标准库后,可以使用。比如,要导入math库或使用其中的函数,语法格式如下:importmath
#导入math库frommathimport函数名#导入math库中的函数2.4.2标准库函数任务2.4Python函数2.4.3第三方库函数
PyPI(PythonPackageIndex)是Python官方的第三方库的仓库,提供了许多功能丰富、强大的库,所有人都可以下载第三方库或上传自己开发的库到PyPI。下载安装后,只有通过import语句导入第三方库,才可以使用库中的函数。比如,后面将要学习的Pandas、Matplotlib、Pyecharts都属于第三方库。任务2.4Python函数库名用途pip安装指令NumPyN维数据表示和运算pipinstallnumpyMatplotlib二维数据可视化pipinstallmatplotlibPIL图像处理pipinstallpillowScikit-Learn机器学习和数据挖掘pipinstallsklearnRequestsHTTP协议访问及网络爬虫pipinstallrequestsJieba中文分词pipinstalljiebaBeautifulSoupHTML和XML解析器pipinstallbeautifulsoup4WheelPython第三方库文件打包工具pipinstallwheelPyInstaller打包Python源文件为可执行文件pipinstallpyinstallerDjangoPython最流行的Web开发框架pipinstalldjangoFlask轻量级Web开发框架pipinstallflaskWeRoBot微信机器人开发框架pipinstallwerobotSymPy数学符号计算工具pipinstallsympyPandas高效数据分析和计算pipinstallpandasNetworkx复杂网络和图结构的建模和分析pipinstallnetworkxPyQt5基于Qt的专业级GUI开发框架pipinstallpyqt5PyOpenGL多平台OpenGL开发接口pipinstallpyopengldocoptPython命令行解析pipinstalldocoptPyGame简单小游戏开发框架pipinstallpygame2.4.4自定义函数任务2.4Python函数
函数名可以是任何有效的Python标识符;自定义函数中形参的个数可以是零个、一个或多个,当有多个形参时由逗号分隔,当没有形参时也要保留圆括号。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。当需要返回值时,使用保留字return和返回值列表;当不需要返回值时,函数可以没有return语句,在函数体结束位置将控制权交给调用者。自定义函数语法格式如下:
def函数名(形参1,形参2,…,形参n):
函数体
return返回值列表当内置函数不能实现我们想要的功能时,Python允许自定义函数并调用它。在Python中定义函数是以def关键词开头,其后面紧跟函数名和圆括号()。圆括号内包放置在函数体中使用的参数,后面以冒号(:)结束。函数体编写另起一行,需要缩进4个空格。最后通常用return语句返回需要的结果。函数调用语法格式如下:函数名(实参1,实参2,…,实参n)
函数名要和被调函数名保持一致,实参的个数要根据被调用函数的形参个数来决定。在函数调用时,Python会将实参的值传递给被调函数的形参,然后执行被调函数的函数体。任务2.4Python函数【做中学2.4.1】编写自定义函数实现固定资产按年限平均法折旧,然后进行调用。#amount表示原价,srate表示预计残值率,year表示使用年限defmon_dep(amount,srate,year):dep=round(amount*(1-srate)/year/12,2)returndep#返回月折旧额mon_dep(5000000,0.02,20)#调用自定义函数mon_dep20416.67请注意:mon_dep(5000000,0.02,20)调用自定义函数传入的值的顺序要与形式参数的顺序一致。【做中学2.4.1】程序如下:2.4.5匿名函数创建匿名函数语法格式如下:lambda参数列表:表达式
lambda是匿名函数的标识,参数的个数不固定,后面跟着英文状态下的冒号(:),最后一般跟着含有参数的表达式。任务2.4Python函数【做中学2.4.2】请使用匿名函数编写两数相加求和的程序。#方法1:先定义再调用summ=lambdaa,b:a+bprint(summ(3,4))#方法2:直接调用(lambdaa,b:a+b)(3,4)77请注意【做中学2.4.2】程序如下:匿名函数可以先定义然后调用,也可以直接调用。在直接调用匿名函数时候,(lambdaa,b:a+b)(3,4)中的第一括号里面是匿名函数,第二个括号里面是实参。2.4.6函数的参数传递通常情况下,定义函数时都会选择有参数的函数形式,函数参数的作用是实现数据的传递。在定义函数时,函数名后面圆括号中的参数称为形式参数(简称形参);在调用函数时,函数名后面括号中的参数称为实际参数(简称实参)。在调用函数时,会发生参数的传递,在Python中主要有如下4种:(1)位置参数:调用函数时,实参默认按函数定义的形参位置顺序传递(从左到右);(2)关键字参数:使用形式参数的名字来确定输入的参数值;(3)默认参数:定义函数时对形参赋值,调用函数时候可传递也可不传递,注意无论是定义函数还是调用函数时候,所有位置参数必须出现在默认参数前面;(4)可变长度参数:定义函数时,不确定调用函数传入参数的个数,传入的参数个数可变。任务2.4Python函数调用函数时,实参默认按函数定义的形式参数位置顺序传递,第一个实参赋值给第一个形参,第二个实参赋值给第二个形参,以此类推,传递的实参个数必须与形参一致。一、位置参数【做中学2.4.3】编写自定义函数实现固定资产按年数总和法折旧,然后使用位置参数进行调用。请注意采用位置参数时,实参的数量必须与形参的数量一致,还有实参的位置必须与形参的位置保持一致。任务2.4Python函数
关键字参数是指在函数调用时使用形参的名字来确定输入的参数值。通过该方式指定实参时,不再需要与形参的位置完全一致,只要将参数名书写正确即可。这样可以避免记参数位置的麻烦,使得函数的调用和参数的传递更加的灵活方便。在调用自定义函数时,其语法格式为:函数名(形参1=值1,形参2=值2,…,形参n=值n)其中形参的顺序是任意的,没有限制的。二、关键字参数【做中学2.4.4】使用关键字参数的形式调用【做中学2.4.3】中编写的计算折旧函数year_dep1(amount,svalue,year)。list1=year_dep1(svalue=2000,amount=8000000,year=4)print(list1)list2=year_dep1(year=6,svalue=5000,amount=20000000)print(list2)[3199200.0,2399400.0,1599600.0,799800.0][5712857.14,4760714.29,3808571.43,2856428.57,1904285.71,952142.86]【做中学2.4.4】程序如下:任务2.4Python函数
默认参数,有时也称“默认参数值”,它是指在自定义函数时,可以对形参设定取默认值,若调用者在调用函数时,没有提供与取默认值的形参相对应的实参,那么函数就将自动认为该形参取默认值。如果自定义函数中有取默认值的形参,那么这时自定义函数的语法如下:def函数名(参数1,参数2,…,参数n=默认值,…):
函数体
return返回值列表这时,位置参数、默认参数都在圆括号里面,构成函数定义中的形参。三、默认参数(1)如果自定义函数的形参表里有默认参数,那么必须同时给出该参数的取值,没有同时给出取值,则不可能成为默认参数;(2)在定义函数时,默认参数要在位置参数的后面。请注意任务2.4Python函数【做中学2.4.5】使用关键字参数的形式编写自定义函数实现固定资产按年限平均法折旧,然后进行调用。#amount表示原价,srate表示预计残值率,year表示使用年限defmon_dep(amount,srate,year=20):dep=round(amount*(1-srate)/year/12,2)returndep#返回月折旧额#调用自定义函数mon_dep并打印输出结果print(mon_dep(5000000,0.02))#调用自定义函数mon_dep并打印输出结果print(mon_dep(5000000,0.02,10))20416.6740833.33第一次调用mon_dep函数时,没有实参值传递给形参year,这时候形参year取默认值20;第二次调用mon_dep函数时,有实参值传递给形参year,这时候形参year取值为10。【做中学2.4.5】程序如下:任务2.4Python函数顾名思义,可变长度参数指传入参数的个数是可变的,在Python中有可变长度参数*args、可变关键字参数**kwds两种形式。*args表示接收任意多个实参将其放在一个元组中,而**kwds表示接收任意多个像关键字参数一样显式赋值的实际参数,并将其放在一个字典中。四、可变长度参数【做中学2.4.6】自定义函数通过可变长度参数*args,求任意输入长度的数据的和。【做中学2.4.7】自定义函数通过可变关键字参数**kwds,根据实参传入的收入和成本计算利润。defsumm(*a):s=0foriina:s=s+iprint(s)#调用函数求1,2,3,4的和summ(1,2,3,4)10#定义函数计算利润defgross_profit(**dict1):profit=dict1['income']-dict1['cost’]
returnprofit#调用函数,income表示收入,cost表示成本gross_profit(income=20000,cost=15000)5000【做中学2.4.6】程序如下:【做中学2.4.7】程序如下:2.4.7变量作用域任务2.4Python函数变量的作用域是指程序代码能够访问该变量的区域,如果超出该区域,在访问时就会出现错误。在程序中,一般会根据变量的“有效范围”将变量分为全局变量和局部变量。一、局部变量【做中学2.4.8】定义一个名称为f_demo的函数,在该函数内部定义一个变量message(局部变量)并为其赋值,然后打印输出该变量,最后在函数体外再次打印输出message变量。deff_demo():message="我爱学习财务大数据分析"print("局部变量message=",message)#输出局部变量的值f_demo()#调用函数#在函数外部输出局部变量的值print("局部变量message=",message)局部变量是指在函数内部定义并使用的变量,它只在函数内部有效。所以如果在函数外部使用函数内部定义的变量就会抛出NameError异常。【做中学2.4.8】程序如下:任务2.4Python函数
与局部变量对应,全局变量是能够作用于函数内外的变量。全局变量主要有以下两种情况:(1)如果一个变量在函数外定义,那么它不仅可以在函数外访问,在函数内也可以访问。在函数体以外定义的变量是全局变量。二、全局变量【做中学2.4.9】定义一个全局变量message,然后再定义一个函数,在函数内输出message的值。message="我爱学习财务大数据分析“#全局变量deff_demo():#在函数体内输出全局部变量的值
print("函数体内:message=",message)f_demo()#调用函数#在函数外部输出全局部变量的值print("函数体外:message=",message)函数体内:message=我爱学习财务大数据分析函数体外:message=我爱学习财务大数据分析【做中学2.4.9】程序如下:任务2.4Python函数(2)在函数体内定义变量并使用global关键词修饰后,该变量变为全局变量。在函数体外也可以访问的改变量,并在函数体内还可以对其修改。二、全局变量【做中学2.4.10】定义两个同名的全局变量和局部变量,并输出它们的值。message='我要认真学习财务大数据分析'#全局变量#在函数体外输出全局变量的值print('函数体外:message=',message)deff_demo():message='我正在认真学习这门课程'#局部变量
#在函数体内输出局部变量的值
print('函数体内:message=',message)f_demo()#调用函数#在函数体外输出全局变量的值print('函数体外:message=',message)函数体外:message=我要认真学习财务大数据分函数体内:message=我正在认真学习这门课程函数体外:message=我要认真学习财务大数据分析【做中学2.4.10】程序如下:任务2.4Python函数在函数内部定义的变量即使与全局变量重名,也不影响全局变量的值。如果想要在函数体内改变全局变量的值,需要在定义局部变量时使用global关键字修饰。将上面的代码修改如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南城建职业技术学院单招职业技能测试题库新版
- 社交媒体时代下的职场礼仪与形象维护
- 科技在提升红色旅游景区品牌形象中的运用
- 2025-2030年中国电力铁塔行业运行状况及投资战略研究报告
- 2025-2030年中国甲苯二异氰酸酯行业运行动态及前景趋势分析报告
- 2025-2030年中国物料搬运机械行业十三五规划及发展潜力分析报告
- 2025-2030年中国烟草物流行业发展趋势规划研究报告
- 2025-2030年中国氦气行业市场十三五规划及发展前景分析报告
- 2025-2030年中国枕头市场发展状况及投资规划研究报告
- 2025-2030年中国智能节电器行业市场规模分析及投资前景规划研究报告
- GB/T 44159-2024气象探测环境保护规范气象卫星地面站
- 延迟合同范本
- 2024届安徽省合肥市庐阳区评价六年级下学期小升初数学试卷含解析
- 细胞生物学(第五版)-第10章 核糖体
- 中医医疗技术手册2013普及版
- 腹部血管解剖-1
- 结构化表达思维训练(完整版)
- 介绍南京大学
- 2022嗜酸粒细胞增多相关性肺疾病诊疗中国专家共识
- SYT 6925-2021 钻井用天然气发动机及供气站安全规程-PDF解密
- 养生馆租赁协议合同
评论
0/150
提交评论