当前课程知识点:计算思维与人工智能基础 >  第三部分:python基础 >  第六章:函数、模块与面向对象 >  6.1函数的定义与调用

返回《计算思维与人工智能基础》慕课在线视频课程列表

6.1函数的定义与调用在线视频

下一节:6.2面向对象

返回《计算思维与人工智能基础》慕课在线视频列表

6.1函数的定义与调用课程教案、知识点、字幕

大家好

下面我们给大家介绍第六章

Python的程序

这章呢我们主要给大家介绍

函数

面向对象

模块的应用

函数里面呢

我们主要给大家介绍函数的定义及调用

包括我们的匿名函数

还有一些内置函数的介绍

还有魔法函数的应用

以及面向对象中的类的概念

以及面向对象的三个主要的特征

封装

继承

多态在重启中的体现以及模块的导入

函数

函数是组织好的

可重复使用的

用来实现单一或者相关联功能的代码段

Python中函数其实质就是计算思维中的模块设计概念

Python中的函数分为

内置函数

标准库函数

第三方库函数

和自定义函数四大类

函数的定义规则

那我们来看这段代码

函数的代码块是以def关键词开头的

那么后面跟我们函数的名称

括号里面是我们函数的参数

从冒号开始呢

后面是我们函数的内容

函数的内容需要缩进

那我们定义好函数以后呢

调用的时候就通过函数名

然后带我们的实参

这个就是我们的调用

那def

a

这样m,n

print

这是我们的函数的定义

a带了实参小孙Python就是我们的函数的调用

那有的时候呢

在函数里面可以带return表达式

那这个时候呢

是可以返回值给我们的调用者

在Python中函数是与其他数据类型

比如说int等等是处于平等地位的

因而我们可以将函数赋值给变量

也可以将其作为参数传入其他函数

将它们存储在其他的数据结构

比如说字典中

并将它们作为其他函数的返回值

我们来看这个代码段

那我们上面是定义了一个foo这样的一个函数

它的函数内容就是输出X的平方

那我们可以把这个函数的foo赋值给一个bar

这样的一个变量

那么bar一样像函数一样应用的时候

他也可以给一个参数就可以进行调用

再来看我们这个函数的定义

定义了个iterate

那么它的里面的参数是一个列表

他的函数的内容都是通过for循环

输出列表里面的元素

下面的我们可以看到给了一个列表list1

然后通过iterate把它调用输出

我们再看下面这个代码段

那么这个函数iterate_custom

那他也有两个参数

一个是列表

一个是foo

那么我们可以看到从列表中取出来元素

通过foo函数来去调用返回结果

那我们在这个里面呢foo这个函数

就是作为一个参数传入到iterate这个函数里面

那我们可以看到它的调用结果

list1,foo

那么list1就是我们上面这个list[1,3,5,7,9]

那我们通过foo函数使每一个元素求了平方输出

是这样的一个结果

内置函数

Python里面有许多的内置函数

那么一种是系统默认的一些内置函数

比如说print呀

input呀

那还有一些呢

是可以通过list啊

都是可以系统直接就可以使用的

那还有一部分呢

是可以通过我们导入函数的模块

那他也可以使用

那我们这些函数的都称之为

在这是在模块里面的内部的函数啊

那这个里面的在使用的时候就非常方便啊

那么输入以后他就可以执行这样子的结果输出

lambda函数我们也称之为匿名函数

它的语法结构是lambda后面跟参数列表

冒号后面跟我们的表达式

那么这个函数的特点就是它缺省的函数名啊

那这个参数列表就是他的输出

表达式就是他的输入

它可以实现一些简单功能的函数

那我们来看

如果我们要写一个函数计算a和b

我们看如果用正常的函数定义

和lambda函数有什么区别呢

那么正常还是我们就可以定义一个函数

sum1然后参数是a,b

然后通过return返回这个表达式a加b

那调用的时候通过sum1给实参

那就可以使用这个函数了

如果用lamdba函数呢

他写起来就更简洁一些

那么lambda后面直接跟参数a,b

返回a加b

使用的时候也非常方便

这就是lambda函数的使用

那除了这些呢

我们可以看到lambda函数它是比较灵活的

它可以与其他的一些函数联合使用啊

比如说我们这个地方可以开

可以看到他跟sorted函数跟filter函数

跟map函数跟reduce函数呢

都可以结合使用

下面我们在这jupyter下看一下

lambda函数和其他的函数的一些嵌套的使用

我们来看刚才我说的那个

lambda函数和sorted函数的使用

sorted数是一个排序函数

那么他这个括号里面的参数list是要排序的列表

那么key就是按照我们这个函数来进行排序

那么reverse呢是排true的话

他就是一个逆序

false呢他就是一个升序

是这样子的

那我们来看lambda函数时输入是X

那他的表达式是我们的一个什么绝对值X

他们也就说这个排序是按照绝对值

来对我们这个list1表的排序

我们看一下他的运行结果

那么可以看得到他是按照我们的绝对值来进行排序

那么下面这个lambda与filter的嵌套的使用

那么filter他是一个过滤的这样的一个函数

那么按照list也就是我们后面这个这个列表

是按照前面的这个函数来进行过滤

然后输出的

那么这是列表呢是list1

过滤的条件就是我们这个lambda函数x小于0

那么也就把X小于0的然后通过filter函数过滤

然后输出

我们运行一下一看

那满足这个条件的就是小于0的输出

再下面看这个与lambda函数与map的联合的使用

那么map的函数是也是通过我们前面这个函数

对于后面这两列表

那么在这个地方用的都是列表一

列表

那么这两个列表呢

就分别取第一个列表取出x第二个列表取出来是y参数

然后把它进行求和

那么在这个呢就是相当于这个列表的每个元素进行

和自己求和

然后输出转换为list

我们可以看它的运行结果是

相当于我们这个list1的这个列表啊

那么1

1+1

-2+-2

4,12,-10这样的一个输出结果

我们再来看一下lambda函数与reduce的一个嵌套的使用

那么reduce是一个求总和的

那这样的话

我们可以看到他是从这个列表中里面取两个元素求和

求的和再与下一个元素求和

是这样的一个过程

那我们一看list1

然后通过lambda函数

再用reduce函数求总和输出的结果是什么样子的

我们可以看他输出是一个0

那他的求和的过程就是

前两个求和再跟第三个第四个那么求出来

正好就是0

这就是我们lambda函数和一些其他函数的嵌套的使用

我们看起来是非常灵活的

那么除了这个呢

我们再看一下我们这个

就是函数呢是可以作为其他的函数

那么这个前面我们说刚才我们的课件里的例子呢

是有一个

我们有一个foo的函数

foo的函数的定义

以及我们可以看的到这个

这是一个列表

iterate函数它的执行结果我们可以看得到

那是这样

把这个列表通过

iterate把他输出

这个输出这个函数不掉

再看这个就是我们iterate

第一个参数list第二个参数就是foo是一个函数

这个函数作为我们的一个参数来进行

在函数里面作为参数进行调用

那么返回的结果也是一个函数啊

那这样的话

我们看这个调用已存储custon参数是list1和函数foo的时候

他的结果会是什么样子的

我们可以看的到这个函数的执行体其实是

我们通过foo函数就求平方

把iterate里面的元素求平方输出

我们可以看到他这个运行一下他的结果

没有运行前面的

我们需要把这个前面的都要运行一下

运行一下

我们用到的这个这个前面的函数运行啊

这次我们才可以看到

运行一下

那我们可以看到

这就是我们这个函数作为参数

在被另外一个函数调用的这样的一个过程

那么这个例子大家可以看的到我先定一个add加法

然后sub是减法

然后nult是一个乘法

我们又定义了个函数calculator 里面的输入一个参数

那么这个参数是1的时候呢

我就调用要返回谁啊

add函数

然后如果是2的时候返回sub这个函数

那么其他的呢就返回nult这个函数

那我们在这个里面可以把函数赋值给变量

并且可以带参数

然后这个变量可以在输入参数

相当于我们的给这个输入第一次把我们这个函数给了一个参数2

给我们这个calculator就相当于是我们用的是

他用的是减法

减法再把参数传进去

实参传进去以后他就做了一个减法

他的结果

我们可以看到输出他的结果

大家可以看一下啊

那么这个我们要加一条语句

让他输出一下

print一下他的调用结果

那么运行可以看得到

这就是他的1

那么后面这个的一样同理

那他是相乘

所以5乘4相乘是一个20这样的一个结果

那么这就是一个函数作为参数在另外一个函数里调用

那还有一些函数是可以做嵌套调用

像我们fib这个序列呢

我们fib序列是第三个等于第一个加第二个

第四个元素等于前面两个之和

所以我们可以对它进行是嵌套调用

也是可以得到结果的

好了

我们今天关于函数的介绍就到这个地方

计算思维与人工智能基础课程列表:

第一部分:计算思维

-1.计算思维的提出

-2.计算思维的要素与应用

-3.培养计算思维

-4.智能时代的教师与教学

-章测试

第二部分:人工智能

-1.人工智能的发展

-2.人工智能的实现与机器学习

-3.人工智能产业

-章测试

第三部分:python基础

-第一章:python简介

--1.1python的介绍

--1.2.anaconda的安装

--章测试

-第二章:编码规范

--2.1 python编码规范

--2.2常量和变量

--章测试

-第三章:数据类型

--3.1数据类型概述

--3. 2.数据转换

--3.3数据类型区别

--章测试

-第四章:基本运算

--4.1.基本运算符

--4.2比较运算符

--4.3逻辑运算符

--4.4位运算符

--4.5成员运算符与身份运算符

--4.6运算符的优先级

--章测试

-第五章:程序控制结构

--5.1顺序结构

--5.2条件结构

--5.3循环结构

--5.4跳转结构

--5.5异常处理

--章测试

-第六章:函数、模块与面向对象

--6.1函数的定义与调用

--6.2面向对象

--6.3魔法函数的应用

--6.4模块与包

--章测试

-第七章:文件操作

--7.1文件的打开与读取

--7.2文件的写入

--7.3CSV模块的应用

--章测试

-第八章:python生态库

--8.1第三方库的安装

--8.2标准库-Os库与Sys库

--8.3.标准库-Time库

--8.4标准库-Random库

--8.5标准库-Turtle库

--8.6第三方库-词云库

--8.7第三方库-pyinstaller库

--8.8第三方库-numpy库(上)

--8.9第三方库-numpy库(下)

--8.10第三方库-pandas库

--8.11第三方库-matplotlib库

--章测试

-第九章:TensorFlow基础

--9.1TensorFlow简介

--9.2TensorFlow 2.0的改进

--9.3TensorFlow的数据应用

--9.4 TensorFlow的设备应用

--9.5.TensorFlow中常用操作

--章测试

-第十章:实例分析与实践

--10.1认识回归问题

--10.2房价的预测

--10.3手写数字识别

--10.4卷积神经网络的介绍

--10.5全连接网络的搭建

--10.6卷积神经网络的实现服饰图片的分类

--10.7LeNet的介绍

--章测试

-第十一章:人工智能在自然语言中的应用

--11.1自然语言处理

--11.2命名实体识别技术

--11.3词向量表示

--11.4自然语言处理的挑战及应用

--章测试

6.1函数的定义与调用笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。