- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
函数的定义和调用
函数是程序设计中重要的概念,可以将复杂的任务分解成更小的、可重复使用的模块。
函数概述
代码块
函数是可重复使用的代码块,用于执行特定任务。
模块化
将程序分解为更小的、可管理的代码段,提高代码可读性和可维护性。
可重用性
函数可以被多次调用,避免重复编写相同代码。
函数的优点
代码复用
函数可以将代码块封装成可重复使用的单元,减少代码冗余,提高代码效率。
程序结构清晰
将复杂的功能分解成多个函数,使程序结构更加清晰,易于理解和维护。
提高代码可读性
函数的命名规范可以提高代码可读性,使程序逻辑更加易于理解。
函数的定义
1
语法
函数的定义通常包括函数名、参数列表和函数体。
2
返回值
函数可以返回一个值,也可以不返回值。
3
函数体
函数体包含函数要执行的代码。
函数的调用
1
函数名
使用函数名来调用函数
2
参数
传递必要的参数给函数
3
返回值
接收函数的返回值
函数的参数
传递信息
参数是函数执行过程中需要的额外信息,可以让函数更灵活地完成任务。
控制行为
通过不同的参数,函数可以执行不同的操作,实现不同的功能。
提高复用性
参数可以让函数更通用,适用于不同的场景,提高代码的可重用性。
参数的传递
值传递
将实参的值复制一份给形参,形参的改变不会影响实参。
引用传递
将实参的地址传递给形参,形参的改变会影响实参。
形参和实参
1
形参
函数定义中使用的参数叫做形参,形参只有在函数被调用时才会被分配内存。
2
实参
函数调用时传递给函数的参数叫做实参,实参在函数被调用时就确定了。
值传递和引用传递
值传递
传递的是参数的副本,函数内部对副本的修改不会影响到原变量。
引用传递
传递的是参数的地址,函数内部对参数的修改会直接影响到原变量。
返回值
函数返回值
函数执行后,通常需要向调用者返回一个结果。返回值可以是任何数据类型,例如数字、字符串、布尔值等。
返回值的使用
通过`return`语句将值返回给调用者,可以用于存储结果、进行后续计算或控制程序流程。
无返回值的函数
定义
不返回任何结果的函数。
目的
执行特定操作,但不需要返回结果。
例子
打印信息、修改数据等。
有返回值的函数
返回值类型
函数可以返回一个值,例如整数、字符串或对象。
return语句
使用return语句指定函数的返回值。
返回多个值
1
返回值类型
函数可以返回多个值,但需要使用特殊的类型。
2
元组
元组是一个有序的、不可变的序列,可以包含多个不同类型的值。
3
解包
在函数调用时,可以将元组中的值解包到多个变量中。
函数重载
相同函数名
同一个类中,可以定义多个同名函数。
不同参数列表
这些同名函数必须具有不同的参数列表。
函数重载
编译器根据参数列表的不同,自动选择合适的函数进行调用。
函数重载的应用
计算器
在计算器程序中,可以使用函数重载来实现不同运算符的计算,例如加、减、乘、除。
图形绘制
在图形绘制程序中,可以使用函数重载来绘制不同形状,例如圆形、矩形、三角形。
代码重用
函数重载可以提高代码的可读性和可维护性,减少代码重复。
递归函数
1
自身调用
函数内部调用自身
2
基线条件
停止递归的条件
3
问题分解
将问题分解为更小的子问题
递归函数的特点
自身调用
递归函数在函数内部调用自身。
基线条件
必须有一个基线条件来停止递归。
堆栈使用
递归函数使用系统堆栈来存储函数调用。
递归的经典案例
阶乘计算
斐波那契数列
汉诺塔问题
递归的优缺点
1
优点
递归代码简洁易懂,特别是对于一些树形结构和图结构的问题,递归可以更直观地表达问题解决方案。
2
缺点
递归可能会导致栈溢出,因为每次递归调用都会在栈上分配空间,如果递归层级太深,就会导致栈空间不足。
函数的作用域
作用域的概念
函数的作用域是指函数能够访问的变量的范围。
全局变量
在函数外部定义的变量,可以在任何地方访问。
局部变量
在函数内部定义的变量,只能在函数内部访问。
全局变量和局部变量
全局变量
在函数外部定义,作用域为整个程序。
局部变量
在函数内部定义,作用域仅限于该函数。
静态变量
在函数内部声明并初始化的变量。
存储在内存的静态存储区,在程序运行期间一直占用内存空间。
生命周期与整个程序一致,即使函数结束执行,也不会被销毁。
静态变量的生命周期
创建时
静态变量在程序开始执行时创建。
持续存在
它们在整个程序运行期间一直存在,即使函数执行完毕。
程序结束时
静态变量在程序结束时销毁。
函数的分类
1
内置函数
由语言本身提供的函数,可以直接使用,无需编写。
2
自定义函数
由程序员根据需要编写的函数,可以重复使用。
内置函数和自定义函数
内置函数
Python提供了许多内置函数,例如print()、input()、len()等,可以
文档评论(0)