《Python程序设计基础》课件 第5--8章 函数与模块--文件与异常 .pptx

《Python程序设计基础》课件 第5--8章 函数与模块--文件与异常 .pptx

  1. 1、本文档共151页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第五章

函数与模块;2;函数定义与调用 ;;一、函数的概念及作用

1.?函数的概念

函数是组织好的、可重复使用的、用于实现某一功能的代码段。

2.?函数的作用

从代码角度来看,借助函数,代码逻辑可以得到优化,更便于阅读;从程序员角度来看,借助函数,可以提高代码编写效率和质量,便于测试和更新代码;从团队协作角度来看,合理共享函数,可以提升团队效率。;二、函数的定义与调用

1.?函数的定义

自定义函数的语法格式:

def函数名([形参1,形参2,…]):

函数体

[return返回值]

说明:

(1)函数代码块以关键字def开头,空一格紧跟函数名、括号和冒号,然后是函数体。函数体相对于关键字def有一定的缩进量。;(2)函数名不能与内置函数名相同,也不能与Python中的关键字相同。

(3)形参为可选项,形参间用半角逗号“,”分隔。调用函数时,传递过来的值会赋给形参,所以可以将形参理解为函数的输入,形参传递对象可以是数字、字符串,也可以是列表、元组等。

(4)函数体中可以使用return语句返回一个值给调用方。return不带返回值或没有return语句时,系统会自动返回None。

(5)在定义函数时,为提高代码的可读性,可在函数体开头加上注释,以说明函数的功能。;2.?函数的调用

定义函数后,可以在程序中使用该函数,这个过程称为函数的调用。

函数的调用格式:函数名([实参1,实参2,…]);函数参数;;一、函数参数的传递与类型

1.?函数参数的传递

在Python中调用函数时,实参向形参的数据传递是单向的,即把实参的数据传递给形参,而不能由形参传回给实参。

当函数获得实参后,如果函数体内部改变了形参,该改变是否会影响实参,取决于传递的参数类型。;(1)不可变对象

【例】在Python交互模式下输入如下内容并执行。

变量赋值a=1后再赋值a=2,可发现内存地址发生了变化,这里实际是在内存中新生成了一个整型对象,原来的1被丢弃。所以说,这里不是改变a的值,而是新生成了一个a。因此,将类似数值型数据对象称为不可变对象。;(2)可变对象

【例】在Python交互模式下输入如下内容并执行。;定??列表list1=[1,2,3]后再通过list1[1]=4对其中索引为1的元素进行修改,可发现修改后列表对象在内存中的地址没有改变,只是其内部的一部分值被修改了。因此,将类似列表数据对象称为可变对象。

在Python中,如果传递的数据为不可变类型,那么在函数体内对形参的修改不会影响实参;如果传递的数据为可变类型,那么在函数体内对形参的修改可能会影响实参。;2.?函数参数的类型

在Python中,函数参数的类型有多种,可分为位置参数、关键字参数、默认参数和不定长参数,见下表。;(1)位置参数

位置参数也称为必备参数,是较常用的一种参数。函数调用时,实参需以正确的顺序传给形参,且实参和形参的数量相等。

(2)关键字参数

关键字参数是一种特殊的参数传递方式。其特点在于侧重于通过指定参数名来传递实参,在调用函数时,可依据需要传入0个或多个带有明确参数名的参数。这些参数在函数内部自动被组装成一个字典,在函数调用时,使用“形参名=实参值”这种形式,实参的顺序与形参的顺序可以不一致,并不影响传递的结果,因而编程人员无须识记参数顺序。;(3)默认参数

在定义函数时,可以给参数赋一个默认值。函数调用时,如果没有给这个参数传递值,将使用默认值。

(4)不定长参数

当函数中的参数个数无法确定时,在Python中还可以定义可变长度的参数(或称为不定长参数)。所谓不定长参数,是指传递的参数个数是变化的,可以是0个,也可以是多个。不定长参数在函数定义时主要有两种形式:函数名([形参,形参,…,]*形参)和函数名([形参,形参,…,]**形参)。;二、序列解包

序列解包是指一次给多个变量赋多个值。在调用包含多个参数的函数时,可以使用列表、元组、字典、集合及其他可迭代对象作为实参,其形式如下:*实参,Python解释器将自动对其进行解包,然后传递给多个位置形参。;【例】在PyCharm集成开发环境下输入以下代码并运行程序,了解序列解包“*实参”的作用。;程序运行结果如图所示。

实例中func()函数的形参为a、b、c和d,第一次调用时传递列表,函数执行时,列表中的4个元素会被自动赋给函数中的4个参数。第二次调用时传递的是字典,解包时默认传递的是字典的键。第三次调用时明确是调用字典的键值,所以解包时传递的是字典的键值。;函数变量作用域;;一、局部变量和全局变量

Python中的变量根

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档