版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自定义函数Python程序设计项目化教程目录函数函数定义和调用默认参数形式参数和实际参数目录位置参数变量的作用域关键字参数可变类型参数和不可变类型参数函数Python的函数允许整合以及通用化代码,使其能够在之后不止在一处、不止一次地使用、也可以多次使用。Python的函数是这个语言中最基本的组成工具——它可以实现代码的最大化重用和最小化代码冗余,节省维护代码的时间。Python的函数可以方便实现分解流程,提供了一种将一个系统分割为定义完好的不同部分的工具。print(“*”)print(“***”)print("*****")如果在一个程序的不同地方需要输出这个图形,每次使用print语言输出的做法显然不可取。函数函数具有以下特点:函数是能完成某一功能的代码段。函数是可以重复执行的代码段。函数方便管理和维护,便于复用。函数的定义和调用Python使用关键字def定义函数,其后紧接函数名,括号内包含了将要在函数体中使用的形式参数(简称:形参,调用函数时的为实参),以冒号结束。然后另起一行编写函数体,函数体的缩进为4个空格或者一个制表符。定义函数的格式如下:def函数名(参数列表):
函数体函数的定义和调用height=eval(input("请输入你的身高(m):"))weight=eval(input("请输入你的体重(kg):"))defgetBMI(height,weight):#定义函数getBMIBMI=weight/pow(height,2)print("BMI值为:{:.2f}".format(BMI))getBMI(height,weight)输出结果:请输入你的身高(m):1.72请输入你的体重(kg):63BMI值为:21.30示例:带参数函数,计算BMI指数上述示例中height、weight为函数的参数,在Python中,函数参数主要有:形式参数和实际参数、关键字参数、可变类型参数和不可变类型参数、位置参数、可变长度参数、默认值参数。函数的定义和调用默认参数调用函数时,如果没有传递参数,则会使用默认参数。
defprintinfo(name,age=35): print(“Name:”,name) print(“Age:”,age)printinfo(name="miki")printinfo(age=9,name="miki")带有默认值的参数一定要位于参数列表的最后面。否则程序会报错。
形式参数和实际参数形式参数:在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。实际参数:在调用函数时,括号内传入的值,值可以是常量、变量、表达式或三者的组合。示例:函数的形式参数和位置参数。defcustom_power(a):print(a*a)b=5custom_power(b)输出结果:25实例中,a就是形式参数,b就是实际参数。在调用函数时,实参值(变量的值)会赋值给形参(变量名),两者的绑定关系只在函数调用时才会生效,在调用函数结束后就立刻接触绑定位置参数位置参数就是实际参数和形式参数进行按照位置一一对应的方式进行传递参数。调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。示例:函数的位置参数。defadd(x,y):returnx+ysum=add(20,100)print(sum)输出结果:120上述示例中add函数有两个参数,第一个参数是x,第二个参数是y,传入的两个整数20和100,按照位置顺序依次赋给函数的参数x和y,参数x和参数y被称为位置参数。位置参数中传递的参数个数必须等于参数列表的数量,根据函数定义的参数位置来传递参数,要求传递的参数与函数定义的参数两者一一对应,如果“传递的参数个数”不等于“函数定义的参数个数”,运行时会报错。关键字参数关键字参数就是以“形参”=“实参”的形式去指定的,不受传递参数的位置的影响。包含关键字参数的函数语法格式:def函数(**kwargs):函数体在参数前加上符号**参数表示函数可以接收关键字参数,kwargs的类型是字典,调用该函数时,所有的关键字参数被合并成一个字典,合并后的字典被赋值给kwargs,通过访问kwargs可以访问参数名和参数值。关键字参数示例:函数的关键字参数。defcreate_address(**kwargs):print(kwargs)create_address(address1="北京",address2="上海",address3="武汉")输出结果:{'address1':'北京','address2':'上海','address3':'武汉'}可变类型参数和不可变类型参数Python函数参数对于可变对象,函数内对参数的改变会影响到原始对象;对于不可变对象,函数内对参数的改变不会影响到原始参数。原因在于:可变对象,参数改变的是可变对象,其内容可以被修改。不可变对象,改变的是函数内变量的指向对象。可变类型参数。Python中自定义函数利用*args接受实际参数传递参数的时候会转化为元组的形式,利用**kwargs接受实际参数传递参数的时候会转化为字典的形式,其中*args可变长度参数,可传也可以不传,并且长度没有做任何限制,会统一的打包成元组。可变类型参数和不可变类型参数示例:定义函数利用*args接收参数。deftest(*args):print(args)print(type(args))test("beijing",100,200,300,"北京")输出结果:('beijing',100,200,300,'北京')<class'tuple'>可变类型参数和不可变类型参数示例:定义函数利用*args接收参数。deftest(*args,b=200,c="beijing"):print(args)print(b)print(c)test("wuhan",1,2,3,b=50,c=80)输出结果:('wuhan',1,2,3)5080可变类型参数和不可变类型参数**kwargs可变长度参数,可传也可以不传,并且长度没有做任何限制,会统一的打包成字典,实参传需要传入键值对,然后形参会将它打包成字典。示例:定义函数利用**kwargs接受参数deffirst_tier_cities(**kwargs):print(kwargs)print(type(kwargs))first_tier_cities(a="上海",b="北京",c="深圳",d="广州")输出结果:{'a':'上海','b':'北京','c':'深圳','d':'广州'}<class'dict'>变量的作用域为了避免变量的名称发生冲突,所以Python引入了命名空间的概念。命名空间指的是名称到对象的映射,类似于字典,键名是变量的名字,值是变量的值。
命名空间是相互独立存在的,而且它们被安排在某个特定的层次,把这些层次结构组合起来就是作用域。本地作用域函数嵌套作用域文件作用域内置作用域
变量的作用域1.局部变量所谓局
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人才盘点草案及人才盘点工具
- 《酒水知识与酒吧管理》 课件全套 第1-9章 酒水概述- 酒吧管理
- 江苏省苏州教科院2025-2026学年八年级上学期期中语文试题(含答案)
- 2026年职场励志类网站内容运营的面试题解
- 2026年创意产业版权保护策略面试题
- 2026年应用支持工程师高级技术面试题库含答案
- 2026年游戏行业策划部门经理面试问题集
- 2026年英语教师岗位面试题及英语教学能力评估含答案
- 2026年华能集团安全生产部长面试题库含答案
- 2026年软件测试工程师面试问题及解答方法
- 江苏省苏州工业园区星澄学校2026届数学九上期末统考试题含解析
- 康复治疗理疗
- 中国法制史试题题库(附答案)
- 医院保洁人员院感培训
- (高清版)DB44∕T 1031-2012 《制浆废液中甲醇含量的测定 顶空气相色谱法》
- 鹤颜堂中医苏子老师课件
- 冷板液冷标准化及技术优化白皮书
- DB13∕T 5606-2022 河湖生态清淤工程技术规程
- 人工智能在艺术史研究中的应用与创新-洞察及研究
- 备战2025年深圳中考物理《光学实验》含答案解析
- 博图考试题及答案
评论
0/150
提交评论