函数定义及使用

上传人:我*** 文档编号:134567008 上传时间:2020-06-06 格式:PPT 页数:51 大小:1.44MB
返回 下载 相关 举报
函数定义及使用_第1页
第1页 / 共51页
函数定义及使用_第2页
第2页 / 共51页
函数定义及使用_第3页
第3页 / 共51页
函数定义及使用_第4页
第4页 / 共51页
函数定义及使用_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《函数定义及使用》由会员分享,可在线阅读,更多相关《函数定义及使用(51页珍藏版)》请在金锄头文库上搜索。

1、PYTHON程序设计 www python org Python程序设计 第6章Python函数定义与使用 Python程序设计 6 1函数的理解与定义6 2参数传递与返回值6 3作用域6 4递归 Python程序设计 函数定义函数调用 函数的理解与定义 函数的理解与定义 函数的定义 求取包含10个斐波那契数 函数的理解与定义 函数的定义 如何让代码按照用户指定的最终要求取得序列的长度 或许还可以让程序更加抽象 函数的理解与定义 函数的定义 函数是一段具有特定功能的 可重用的语句组 用函数名来表示并通过函数名进行完成功能调用 函数是一种功能的抽象 一般函数表达特定功能 两个作用 降低编程难度和

2、代码复用 函数的理解与定义 函数的定义 Python定义一个函数使用def保留字 语法形式如下 def return 函数的理解与定义 函数的定义 deffibs nums fibs 0 1 foriinrange num 2 fibs append fibs 2 fibs 1 returnfibs 函数名 参数 返回值 函数的理解与定义 函数的定义 给函数编写文档 函数的理解与定义 函数的调用 程序调用一个函数需要执行以下四个步骤 1 调用程序在调用处暂停执行 2 在调用时将实参复制给函数的形参 3 执行函数体语句 4 函数调用结束给出返回值 程序回到调用前的暂停处继续执行 函数的理解与定义

3、 函数的调用 nums 8 Python程序设计 6 1函数的理解与定义6 2参数传递与返回值6 3作用域6 4递归 Python程序设计 参数传递返回值 参数传递与返回值 参数传递与返回值 参数传递 形参与实参在def语句中 位于函数名后面的变量通常称为形参 调用函数时提供的值称为实参 参数传递与返回值 参数传递 函数可以有参数 也可以没有 但必须保留括号 参数传递与返回值 参数传递 函数定义时可以为某些参数指定默认值 构成可选参数 参数传递与返回值 参数传递 位置参数和关键字参数 在结合使用位置参数和关键字参数时 必须先指定所有位置参数 参数传递与返回值 参数传递 函数定义时可以设计可变数

4、量参数 既不确定参数总数量 参数传递与返回值 参数传递 函数定义时可以设计可变数量参数 既不确定参数总数量 defprintParams params print params defprintParams2 params print params 参数传递与返回值 返回值 函数可以返回0个或多个结果 return保留字用来传递返回值函数可以有返回值 也可以没有可以有return 也可以没有return可以传递0个返回值 也可以传递任意多个返回值 参数传递与返回值 返回值 Python程序设计 6 1函数的理解与定义6 2参数传递与返回值6 3作用域6 4递归 作用域 局部变量和全局变量 一个

5、程序中的变量包括两类 全局变量和局部变量 全局变量指在函数之外定义的变量 一般没有缩进 在程序执行全过程有效 局部变量指在函数内部使用的变量 仅在函数内部有效 当函数退出时变量将不存在 作用域 局部变量和全局变量 当函数执行完退出后 其内部变量将被释放 规则1 局部变量和全局变量是不同变量 作用域 局部变量和全局变量 函数func 内部使用了变量n 并且将变量参数b赋值给变量n 作用域 局部变量和全局变量 如果希望让func 函数将n当作全局变量 需要在变量n使用前显式声明该变量为全局变量 代码如下 作用域 局部变量和全局变量 规则2 局部变量为组合数据类型且未创建新变量 等同于全局变量 作用

6、域 局部变量和全局变量 规则2 局部变量为组合数据类型且未创建新变量 等同于全局变量 作用域 局部变量和全局变量 总结 基本数据类型 无论是否重名 局部变量与全局变量不同可以通过global保留字在函数内部声明全局变量组合数据类型 如果局部变量未真实创建 则是全局变量 lambda lambda函数 python使用lambda来创建匿名函数 不再使用def语句这样标准的形式定义一个函数 lambda只是一个表达式 函数体比def简单很多 lambda的主体是一个表达式 而不是一个代码块 仅仅能在lambda表达式中封装有限的逻辑进去 lambda函数拥有自己的命名空间 且不能访问自己参数列表

7、之外或全局命名空间里的参数 lambda lambda函数 lambda lambda函数 f lambdax y x y f 10 15 25 f lambda lambda函数 print f lambda函数 lambda lambda函数 map lambdax x 2 1 2 3 4 5 使用lambda 1 4 9 16 25 提供了两个列表 对相同位置的列表数据进行相加 map lambdax y x y 1 3 5 7 9 2 4 6 8 10 3 7 11 15 19 print join map lambdax chr ord x 3 ord A 26 ord A if A

8、 x Z elsex input pleaseinputstr1 Python程序设计 6 1函数的理解与定义6 2参数传递与返回值6 3作用域6 4递归 Python程序设计 函数递归的理解函数递归的调用过程函数递归实例解析 递归 递归 递归的定义 函数作为一种代码封装 可以被其他程序调用 当然 也可以被函数内部代码调用 这种函数定义中调用函数自身的方式称为递归 递归在数学和计算机应用上非常强大 能够非常简洁的解决重要问题 递归 递归的定义 数学上有个经典的递归例子叫阶乘 阶乘通常定义为 n n n 1 n 2 1 这个关系给出了另一种方式表达阶乘的方式 n 1n 0 n n 1 other

9、wise 递归 函数递归的调用过程 递归 函数递归的调用过程 阶乘的例子揭示了递归的2个关键特征 1 基线条件 存在一个或多个基例 基例不需要再次递归 它是确定的表达式 2 递归条件 包含一个或多个调用 所有递归链要以一个或多个基例结尾 递归 函数递归的调用过程 递归 递归实例解析 字符串反转 将字符串s反转后输出 s 1 defrvs s ifs returnselse returnrvs s 1 s 0 递归 递归实例解析 斐波那契数列 F n F n 1 F n 2 deffibs n ifn 0orn 1 return1else returnfibs n 1 fibs n 2 递归 递

10、归实例解析 二分查找 1 如果序列索引最大值与最小值相等 判断是否为要查找的数值 2 如果上下限不同 判断数值在上下限平均值的哪一侧 再做查找 递归 函数式编程 函数式编程 英语 functionalprogramming 或称函数程序设计 又称泛函编程 是一种编程范型它将电脑运算视为数学上的函数计算 并且避免使用程序状态以及易变对象函数编程语言最重要的基础是 演算 而且 演算的函数可以接受函数当作输入 引数 和输出 传出值 递归 函数式编程 函数式编程关心数据的映射 命令式编程关心解决问题的步骤 函数式编程是一种编程模型 他将计算机运算看做是数学中函数的计算 并且避免了状态以及变量的概念 递归 函数式编程 Python提供了一些有助于进行函数式编程的函数 map filter reduce 递归 函数式编程 map map 函数语法 map function iterable 递归 函数式编程 filter filter 函数语法 filter function iterable 1 3 5 7 9 递归 函数式编程 reduce reduce 函数语法 reduce function iterable initializer 谢谢大家

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号