当前课程知识点:Python 交互式程序设计导论 >  第5周 >  A 课程视频(鼠标输入、列表进阶) >  Video

返回《Python 交互式程序设计导论》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《Python 交互式程序设计导论》慕课在线视频列表

Video课程教案、知识点、字幕

各位同学大家好,欢迎回到python交互式程序设计课程中

上一周,我们一起学习了一种非常重要的数据类型——列表

介绍了列表的基本概念

列表与我们在初等数学中学过的数组概念的区别,以及列表的基本操作

在本周我们将继续深入学习列表的使用方法, 重点是列表的常用方法

下面我们开始今天的内容

什么叫列表的方法,注意,这里的方法并不是我们通常意义上方法的概念

它实际上是指,面向对象理论的一个基本概念

下周,同学们将系统的学习面向对象理论,

在这里,同学们只要知道, 方法是指列表这个数据类型提供的一种操作功能

我们可以利用这些方法,来完成很多丰富的功能

这节课我会用示例的方法,给大家来介绍这些常用方法

于是,我首先需要定义3个列表作为我们的操作对象

分别是lst1,lst2,lst3

其中lst1,lst2都有4个元素,而lst3是个空列表

我们首先学习的是如何在列表当中增加元素

我们来看,第一个,追加一个元素,

调用的方法是append,append作为英文的原意就是追加的意思,

我们来看原先lst1里边包含4个元素,[1,3,5,7]

经过调用append方法,参数是9,

我们用print语句对它进行输出,

结果大家看,是[1,3,5,7,9]

所谓的append会自动把元素追加在列表的末尾

除了一个数可以作为元素以外

我们可以创建一个新的列表作为元素,

传入或者追加到lst1当中

我们来看一下

lst1. append([11,13]), 显然[11,13]本身就是一个列表

它作为一个元素,被追加到lst1当中

所以我们输出以后,大家可以看到这样一个效果[1,3,5,7,9, [11,13]]

那么大家应该还记得,列表当中的元素类型可以是不一致的

大家看,此时lst1当中有几个元素,1,2,3,4,5,6, 一共6个元素

好,不能把它拆开,因为它是一个整体作为一个元素被追加,

好,下面,插入元素

所谓的插入元素与追加元素,有一个很明显的区别

就是插入的位置可以指定,而追加只能在列表的尾部

所以大家请看,

对lst2进行insert这个方法的调用的时候,

我们有2个参数,第一个参数是位置, 第二个参数是你要插入的元素

原来lst2当中有4个元素,分别是[2,4,6,8]

经过这样一个insert的方法的执行,

用print语句对它进行输出

大家可以看到,结果是[2,10,4,6,8]

也就是说把10插入了2和4之间

同学们还记得,list元素的位置信息,它是从0开始的

所以,2这个位置是0,2和4之间这个位置是1

所以执行了insert(1,10),自然会被插入到2之后

这个大家需要注意一下,

讲完了如何增加一个元素,自然会讲到移除元素

移除元素,list也提供了两个非常好用的方法

一个是remove,一个是pop,我们来看一下

经过上一步增加元素的操作之后,

lst1变成了[1,3,5,7,9,[11,13]]

而lst2变成了[2,10,4,6,8]

好,我们来看

如果此时,list调用了remove方法,

remove(9),返回的结果是多少呢?

用print语句输出一下

变成了[1,3,5,7,[11,13]]

remove()方法会直接移除你所指定的那个元素

比如说你在这指定9,所以在lst1当中就会把9删除

剩下的就是[1,3,5,7,[11,13]]

那么再看,如果我移除的元素在列表当中没有, 会发生什么事情呢

会报一个错,大家看一下

lst1. remove(11),lst1此时当中有11吗?显然是没有的

因为最后这是一个整体

好,大家注意一下

所以是没有11的

这个时候它会报出一个ValueError:

list调用remove()这个方法,而x在列表当中是not,不存在的

所以,此时会报错

好,我们再来看pop()方法,这个方法呢,也非常常用

我们来看,lst1调用pop()方法,里边不需要跟参数

它会自动把最后一个元素删除,

好,大家来看,最后一个元素是什么呢?

是[1,3,5,7,[11,13]], 这个时候对它进行pop()这个方法的调用

会自动移除[11,13]这个元素

剩下的就是[1,3,5,7],输出以后就是[1,3,5,7]这个结果

那么对lst2进行pop(1),那么这个1,大家注意,不是元素本身

而是元素的位置

也就是说你要移除的是哪个位置上的元素

1显然对应的是10这个位置

所以输出以后,结果是[2 ,4,6,8]

注意,我再强调,这里的这个参数是它的位置, 而不是元素本身

remove()里面的这个参数是元素本身,不是位置

好,请大家注意

好,我们再来看,第三类方法是扩展一个列表

方法名是extend,在英文当中它的原意也是这个

我们来看一下, lst3. extend(),在我们第一张幻灯片当中,

我们定义lst3是一个空列表, 这个时候我们调用它的extend()方法

括号里面一个参数,注意这个参数是列表类型的,lst1

好,这个时候呢,实际上是把lst1的元素扩充到lst3当中

当然我在这没有输出,我又执行了一个扩充语句,大家看

lst3又 extend(‘ab’), 前面一个单引号,后面一个单引号

很显然这是一个字符串类型

好,经过两次扩充以后我输出,看结果

第一句话执行完,它会把lst1当中的1,3,5,7扩充到lst3当中

那么经过第二条语句,它会把这个字符串拆开,

按照字符一个一个扩充到lst3当中

所以呢经过两次扩充, lst3变成了这样一个列表[1,3,5,7,’a’,’b’]

大家注意,再次强调,list当中元素类型可以不一致

所以这既有字符,又有整数类型

然后我们在这基础上, 又执行了lst3. extend(),进行第三次扩充

扩充的内容是[9,11],结果是多少呢,大家看

[1,3,5,7,’a’,’b’,9,11]

换句话说,用extend()扩展列表, 它会把元素,如果它是一个序列的话

它会把元素拆开,一个一个追加到lst3当中

大家注意,这个时候9和11就不是整体了,它实际上是被拆开了

就像前面的’ab’一样,它不是作为一个整体的字符串, 而是被拆成’a’,’b’两个字符

所以extend()这个方法,注意, 它的参数是一个序列,列表,或者是字符串

下面,我们来学习列表的翻转这个方法reverse(),

我们来看,经过上述的执行步骤, lst1这个时候已经变成了[1,3,5,7]

lst3变成了[1,3,5,7,’a’,’b’,9,11]

我们再来执行lst1. reverse()这个方法,

大家看,没有参数,实际上它会自动把lst1中的元素进行翻转

输出一下,变成了[7,5,3,1]

大家注意是翻转,而不是逆序, 它会把原来的最后一个放在第一个

倒数第二个放在第二个,倒数第三个放在第三个,依次类推

然后我们对lst3也进行翻转,大家看

输出结果是多少,[11,9,’b’,’a’,7,5,3,1]

大家注意,翻转就是在原来的基础之上颠倒所有元素的顺序

下面,我们来看列表的排序,排序的方法名是sort(),

sort()里面也没有带任何的参数,

实际上它是按照一定的顺序对list当中的元素进行排列

好,我们来看一下

经过翻转以后的list实际上已经变成了[7,5,3,1]这样一个顺序

然后然后我们用lst1.sort()可以把它自动按照升序排列

输出以后的结果是[1,3,5,7],

好了,上边的这些方法大家在实际的编程过程中会不断地使用

用的次数多了,你就会非常熟悉

那么除此之外, 我还想给大家讲一个非常有用的这样一个列表方法

实际上在前面讲到字符串的时候,我也提到过,我们来看一下

列表和字符串有很多的转换工作, 我们在实际开发中会经常用到

比如说,在这里,s是一个字符串变量,它的值是Python

那么lst是一个列表,这个列表里面初始化的时候,

我传进去了一个字符串类型,这个时候,lst会发生什么事情呢

大家看,输出,它变成了这样一个列表

它会把你传进来的这个字符串,按字符切开, 一个一个的插入lst这个列表当中

所以你看到的结果是 [‘P’,’y’,’t’,’h’,’o’,’n’,]

这个是我们常用的一种列表的初始化的一种方法和手段

下面我们再来看这样一个例子,s1是一个字符串类型的变量

它的初值是‘欢迎来到Python世界’,我们在这个字符串当中

大家注意,‘欢迎 来到 Python世界’,实际上是按照词对它进行分割的

分割的符号是空格,因为显示不出来, 但是大家可以看到结果,间距

那么,

lst1=s1是字符串的split()方法,分割, 这个我在字符串那一章中给大家是讲过的

那么默认情况下,它是按照空格来切分的, 当然你也可以指定分隔符

这个时候呢,lst会被存入按照指定分隔符切开以后的元素

大家看,输出lst1, 显示的是[‘欢迎’,’来到’,’Python’,’世界’]

因为我用s1这个字符串变量的split()方法对它进行切分

并且用一条很简单的语句就把它存入了lst1当中

第三个例子是join()方法,这是一个字符串的方法,

但是跟list是紧密相关的,我们来讲一下

S2显然是一个字符串类型,那么来看一以下,

这是一个字符串,斜杠,字符串的join()方法,

是把lst1当中的元素连接起来,组成一个新的字符串, 赋给变量S2

再来解释一下,lst1当中有几个元素, ‘欢迎’,’来到’,’Python’,’世界’,4个

然后我们用’/’这个字符串的join()合并lst1当中的元素

并且,join前面调用的字符串’/’会自动作为分隔符

整个组合成一个新的字符串赋给S2

输出以后的结果就是欢迎/来到/Python/世界, 以’/’作为分隔符

那么总结一下,在列表的方法这部分内容当中, 我们重点介绍了列表的常用方法

包括列表增加一个元素,移除一个元素,翻转,排序,

最后重点介绍了列表和字符串的转换

在实际编程中,这都是非常常用的操作,有些同学可能会觉得

这么大量的内容,我们在短时间之内可能很难记住

但实际上,经过不断地练习,同学们很容易熟练掌握这些方法

好,今天的课就讲到这里

Python 交互式程序设计导论课程列表:

第0周

-课程简介

--课程简介

-A 课程视频(算数操作符及表达式)

--绪论

--Python交互式解释器使用方法

--PyCharm集成开发环境介绍

--算数操作符及表达式

-B 课程视频(变量及赋值)

--变量

--项目提交

--“我喜欢Python”热身小项目

-C 辅助视频(计算机结构、Python开发环境安装)

--Windows平台安装Python开发环境

--Mac平台安装Python开发环境

-D 辅助视频(如何提交项目)

--项目提交

-第0周--小测验

-本周项目:"我喜欢Python"

--项目发布、完成、提交及评分流程

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

--项目提交

第1周

-A 课程视频(函数)

--函数

--其它操作符

--随机函数

-B 课程视频(逻辑及表达式)

--逻辑值和比较

--条件

--编程技巧

--“老虎杠子鸡虫”游戏

-第1周--小测验

-本周项目:“老虎杠子鸡虫”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第2周

-A 课程视频(Python交互式应用)

--事件驱动编程

--事件可视化跟踪执行

--SimpleGUITk

--按钮

-B 课程视频(输入框、全局变量)

--输入框

--局部变量和全局变量

--编程技巧

--“猫咪藏在哪个房间”游戏

-第2周--小测验A

-第2周--小测验B

-本周项目:猫咪藏在哪个房间

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第3周

-A 课程视频(画布绘图)

--画布和图形绘制

--字符串处理

--绘图和计时器可视化跟踪执行

--图片和音效

-B 课程视频(计时器)

--计时器

--交互式绘图

--“神奇时钟”游戏

--编程技巧

-第3周--小测验A

-第3周--小测验B

-本周项目:“神奇时钟”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第4周

-A 课程视频(列表)

--列表

--键盘输入

--列表及变化可视化跟踪执行

--碰撞和反射

-B 课程视频(键盘控制)

--速度控制

--运动

--编程技巧

--“桌上冰球”游戏

-第4周--小测验A

-第4周--小测验B

-本周项目:“桌上冰球”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第5周

-A 课程视频(鼠标输入、列表进阶)

--鼠标输入

--Video

--Video

--Video

-B 课程视频(字典和图片)

--Video

--Video

--Video

--Video

-第5周--小测验A

-第5周--小测验B

-本周项目:“世界杯八强连连看”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第6周

-A 课程视频(类)

--面向对象编程(类和对象入门)

--面向对象编程(类和对象进阶)

--对象可视化跟踪执行

--华容道中的类

-B 课程视频(平铺图片)

--平铺图片

--理解对象

--编程技巧

--“华容道”游戏

-第6周--小测验A

-第6周--小测验B

-本周项目:“华容道”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第7周

-A 课程视频(类进阶及文件操作)

--集合

--文件操作

--文字块类

--处理停止的文字块

-B 课程视频(游戏状态控制)

--游戏记分规则

--游戏结束的条件及处理

--编程技巧

--“决战三字经”游戏

-第7周--小测验A

-第7周--小测验B

-本周项目:决战三字经

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

第8周

-A、课程视屏(精灵集合)

--Video

--精灵类

--战士类

--编程技巧

-B、课程视屏(动画)

--精灵碰撞

--精灵动画

--编程技巧

--保卫家园游戏

-第8周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

Video笔记与讨论

也许你还感兴趣的课程:

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