Pyth基础实及其教程 7_第1页
Pyth基础实及其教程 7_第2页
Pyth基础实及其教程 7_第3页
Pyth基础实及其教程 7_第4页
Pyth基础实及其教程 7_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python基础与应用主讲:TheIntroductionandApplicationofPythonPart5第五章05函数Function学习内容函数的作用是将重复的代码块封装起来,通过调用执行特定任务,从而提高代码的复用性、模块化和可读性。第一节函数概述05函数Function5.1

函数概述5.1.1

认识函数函数是一段具有特定功能的代码块,它接收输入参数,经过处理后返回结果。就像数学中的函数一样,给定相同的输入,总是产生相同的输出。在Python中,函数是组织代码的基本单元,将相关的操作封装在一起。5.1

函数概述5.1.1

认识函数语法解释:def关键字必须小写,后面紧跟一个空格,这是Python函数定义的固定格式;函数名遵循标识符命名规则,推荐使用小写字母和下划线的组合,如circle_area;参数列表用圆括号包围,多个参数用逗号分隔;冒号是函数定义语法的必需部分,标志着函数头的结束和函数体的开始;函数体必须相对于def语句缩进,通常使用4个空格,这是Python语法的强制要求;return语句可以出现在函数的任何位置,一旦执行就会结束函数并返回指定值,如果函数没有return语句或return后没有值,则返回None。5.1

函数概述5.1.2 调用函数1)什么是函数调用(call)?

函数调用是将已定义的函数投入实际使用的过程,通过函数名加圆括号的形式来执行函数内部的代码逻辑。当程序执行到函数调用语句时,控制权会转移到被调用的函数内部,执行完毕后再返回到调用位置继续执行后续代码。函数是被动的!5.1

函数概述5.1.2 调用函数函数调用的基本语法为`函数名(参数值)`,如果函数有返回值,通常需要用变量接收结果。5.1

函数概述5.1.2 调用函数2)形式参数(Parameter)`形式参数`是函数定义时在参数列表中声明的变量名,它们充当函数内部的占位符,用于接收调用时传入的具体数值。例子中,region和indicator本质上是函数内部的变量名。它们在函数定义时声明:调用该函数需传入两个输入数据,其中第一个实参值将绑定给形参region,第二个实参值将绑定给形参indicator。5.1

函数概述5.1.2 调用函数3)实际参数(Argument)`实际参数`是函数调用时传递给函数的具体数值或变量,它们是真正参与函数运算的数据。实参与形参之间存在一一对应的映射关系,调用时实参的值会被传递给相应位置的形参。代码中,'呼和浩特市'和'包头市'是传递给形式参数region的实际参数;'总人口'和'GDP'是传递给形式参数indicator的实际参数。第二节传递实参05函数Function5.2传递实参5.2.1 位置实参位置实参是最直观的参数传递方式(图5-2),它严格按照参数在函数定义中的位置顺序进行匹配。在函数调用过程中,实参是赋予函数运行的具体数据,而传递方式决定了数据如何被函数接收和处理。Python提供了多种实参传递机制,包括位置实参、关键字实参、默认值等。5.2传递实参5.2.1 位置实参示例所有参数都必须提供:如果函数定义中没有为某个参数设置默认值,那么在调用时就必须为该参数提供一个值,否则Python会抛出TypeError。5.2传递实参5.2.2 关键字实参关键字传递(KeywordArguments)是一种在函数调用时通过显式指定参数名来传递值的方式,它极大地提升了代码的可读性并减少了出错的可能性,尤其适用于参数数量较多或顺序不易直观判断的情况。注意:

关键字实参的名称必须与函数定义中的形参名称完全一致。同一个参数不能既用位置方式又用关键字方式赋值。一旦使用关键字实参,它之后的参数都必须用关键字形式提供,以避免歧义。5.2传递实参5.2.3 默认值默认值机制为函数参数提供了预设值,当调用时未提供相应实参时,参数将自动采用默认值。注意:

在函数定义中,必须将非默认参数放在前面,默认参数放在后面。这种顺序要求确保了函数调用时参数绑定的明确性。例如,deffunc(a="default",b):这样的定义是非法的,因为Python无法确定func(10)中的10应该赋给a还是b。5.2传递实参5.2.3 默认值默认值机制为函数参数提供了预设值,当调用时未提供相应实参时,参数将自动采用默认值。注意:

在函数定义中,必须将非默认参数放在前面,默认参数放在后面。这种顺序要求确保了函数调用时参数绑定的明确性。例如,deffunc(a="default",b):这样的定义是非法的,因为Python无法确定func(10)中的10应该赋给a还是b。5.2传递实参5.2.4 可变位置参数(*args)可变位置参数允许函数接收任意数量的位置实参,这些实参会被自动打包成元组供函数使用,具体而言星号`*`后跟随变量名,即可得到可变位置参数。代码解析如下:第1行:将原有的位置参数indicator改为可变位置参数*indicators;第4行:遍历接收到的参数元组indicators;第8行:调用get_statistic函数,"呼和浩特市"为位置参数region,"总人口"、"GDP"为可变位置参数*indicators。5.2传递实参5.2.5 可变关键字实参(**kwargs)可变关键字参数提供了接收任意数量关键字实参的能力,这些实参会被组织成字典结构供函数处理。代码解析如下:第1行:将原有的位置参数indicator改为可变位置参数*indicators;第4行:遍历接收到的参数元组indicators;第8行:调用get_statistic函数,"呼和浩特市"为位置参数region,"总人口"、"GDP"为可变位置参数*indicators。第三节返回值05函数Function5.3返回值返回值合理使用返回值能使函数在程序中高效地传递和处理数据。函数执行操作后可以通过返回值将处理结果传递出来。返回值可以是数字、字符串等简单数据类型,也可以是列表、字典等复杂数据结构,甚至可以返回多个结果。5.3返回值5.3.1return语句return语句是函数返回结果的重要语句。当程序执行到return语句时,函数会立即结束运行,并将结果返回给调用者,return后面的代码不会继续执行。如果函数中没有写return语句,或者return后面没有任何值,Python会默认返回None。这是Python函数的标准行为。代码解析如下:第4,7行:返回单个值,例如查询"呼和浩特市"的"总人口",那么程序将执行到第4行并返回289.7,不会接着运行5~9行;第9行:如果在调用函数期间,region没有匹配项,则返回None5.3返回值5.3.2返回None当函数没有显式编写return语句,或者return后不跟任何值时,函数会默认返回None。代码解析如下:第4,7行:返回单个值,例如查询"呼和浩特市"的"总人口",那么程序将执行到第4行并返回289.7,不会接着运行5~9行;第9行:如果在调用函数期间,region没有匹配项,则返回None5.3返回值5.3.3

返回多个值可以通过return语句返回多个值。第四节Lambda匿名函数05函数Function5.4Lambda匿名函数Lambda匿名函数Lambda函数是一种匿名的、单行的轻量级函数,其核心特点在于通过单个表达式实现功能,并自动返回该表达式的结果。与普通函数不同,Lambda函数没有正式的函数名称,所有运算和逻辑处理均需在一行内完成。语法解释:使用lambda关键字定义一个匿名函数,参数列表为该函数接受的参数,多个参数之间用逗号分隔,冒号后的单个表达式为函数体。参数列表:支持位置参数(如x)、默认参数(如x=1)、可变参数(如*args),用于接收外部传入值。单个表达式:函数的执行逻辑,必须为单行且有返回值,执行结果自动作为返回值(无需return关键字)。5.4Lambda匿名函数Lambda匿名函数示例代码解释:第1行:定义普通函数add,包含形参a和b,用于接收两个数值。第2行:函数体执行a+b的加法运算,并通过return语句返回计算结果。第5行:使用lambda关键字定义匿名函数,直接指定参数列表a,b和返回值a+b,并将其赋值给变量lambda_add。第8行:调用普通函数add,传入实参3和5,打印返回值8。第9行:调用lambda函数lambda_add,传入相同实参,打印返回值8,验证二者功能等价。5.4Lambda匿名函数Lambda匿名函数特性特性:无需显式return。逻辑仅限单行表达式。匿名与即席(临时、当场、不事先准备)使用。本章小结函数定义与调

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论