当前课程知识点:Python 交互式程序设计导论 >  第5周 >  B 课程视频(字典和图片) >  Video

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

Video在线视频

Video

下一节:Video

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

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

大家好,我们本周的编程技巧课

将给大家介绍一下在使用列表和字典的过程中

应该注意的问题以及列表和字典的相同点和不同点

下面我们开始今天的课程

先创建一个列表L用range函数来创建吧

range5然后呢,我们打印一下它,打印一下这个列表

同时呢,我先打印一下它的长度啊,打印一下列表的长度, 打印长度的时候用len这个函数,

len这个函数呢可以用来计算一个列表的长度,就是元素的多少个了

好'L'运行,长度是5,说明它里面有5个元素

然后它里面的元素呢应该是range 0到5,我们知道呢range 到5呢

它的元素值应该是0,1,2,3,4,不包括5,对吧

好,那我来挨个取一下它里面的元素的值

print列表呢是通过下标的方式来取得第一个元素

我来复制一下,我要取5个元素嘛,3个,5个,好,存为值2,3,4,5,打印

元素是不是我们刚才推断的一样,来看一下,他出现了一个错误

打印出了1,2,3,4,我们刚才知道,它应该是0到4对吧

它没有打印出来0这个元素啊,那我看到错误在第10行

错误提示Index Error,Index是索引的意思,索引错误了

后面解释是range的对象呢,在索引的时候超出了它范围

因为我们range范围是0,1,2,3,4,那你还取了一个5, 那是不是就超出范围了

不在范围之内嘛,对吧,那后面打印出来的1,2,3,4

并没有打印出0,这一行又错了,先把它注释掉

我们列表里面的索引值是从0开始的,就是第一个元素的索引值是0

最后一个元素的索引应该是长度减1

我来运行看这次有没有问题,运行,0,1,2,3,4,没有问题

这是一种索引越界的错误,我们看它还有一种类型,在for循环里面

我们想通过for循环的方式,成对的打印这个列表里面的元素

打印了L,i,L,成对嘛,第0个和第一个对,第一个和第二个对

i+1,打印,运行中发现同样也是一个越界错误,索引错误,错误在第40行

然后打印结果又0和1是一对,1和2是一对,2和3是一对,3和4是一对

按照我们这种for循环, 估计应该有当i=4的时候应该有个

L4和L5,对吧, 而前面我们知道它最后一个元素是L4没有L5这个元素

所以呢,它也同样报出了索引错误,我们再看一下,

还有另外一种类型,我们看一下也是同样一个错误

比如说呢,我想把列表的最后一个元素复制给y6,

那么我是怎么取最后一个元素的,我是这么取得L,Len

可以取长度,我想去索引值等于长度值的时候

列表所对应的值是多少,那么我把这个y6

打印一下,同样,索引错误,错误在这一行,对不对,

因为我们想的说是,哦,我想取一下,最后一个元素

最后一个元素,我是通过这种方式来取

这个也是不对的啊,那我们列表的

最后一个元素是怎么取的,要么就是长度减1

这种取法,直接打印了,索引值长度减1

这是最后一个元素,然后还有一种方法取-1

因为我们列表的索引可以,从左到右0,1,2,3,4来取的

我们也可以从右到左-1,-2,-3这样来取,-1呢,就是最后一个元素

这两种方式呢都取出了我最后一个元素啊,

下面我们看第二个例子,第二个例子里面

我有一个列表L,里面有4个元素,然后呢还有一个字典

里面有这些元素,通过学习呢,我们其实已经知道

字典里面的元素啊是一个键值对儿,冒号前面的是键

冒号后面的是这个键对应的值,它们俩是映射关系,映射关系

每一个元素之间用逗号来分隔,好,我们来看一下

我们来看一下啊,我们取一下L的第一个元素所对应的当然是0了

那我们同样,字典我们是通过下标的方式,其实不是啊

我们来看运行,好,两个都取出了值,那第一个取L的时候呢

是索引为0的时候

对应的元素值就是“白涛”而第二个取字典的时候就不再是索引值了

这个是键值,我们一般也键呢叫做key啊,key y6是一一对应的关系

零那是字典里面的一个元素的键值,对吧,通过这个键呢

我们可以取到它对应的值,那就是“白涛”这是字连的取值方式

刚才我们说过列表的最后一个元素值是怎么取得-1,这么取

我们看一下,字典能不能这样取呢,运行,错误了

键错误,key error吧,键错误,-1,很好理解了对吧

因为我们已经知道这个里面放的并不是索引值不是而是键值

那我们查看一下,我们字典里面有没有-1这个键呢?没有

那既然没有-1这个键,当然你就找不找它对应的值了

所以呢,我们的 pycharm呢就会报出一个键错误的这样一个错误,好

这是第二种方式,我们再看一下

当然我要把错误的这个给注释掉了啊, 因为我们前面还学过

列表呢是支持切片的操作来取子列表的对吧

那我们看一下字典,支不支持呢,好,运行

写错了啊,这个地方应该是字典D的,不好意思,写错了

运行,又错误了,类型错误,slice呢是不可hash的类型

它的意思是说这样的

因为我们的字典是在内存里面是无序的一个列表,然后呢,你取

就说它的键是不连续的是吧,而我们前面讲过我们列表呢

它的索引值是连续的一串数字,连续的一串正数啊

从0开始到长度减1的时候结束,然后我们的字典呢

这个键值是不是一定要连续,不,不是啊,而且呢

大部分类型都可以作为它的键值来存在,对吧

所以呢,你不能支持,所以它不支持这种方切片的方式来取字典

这种方式是不支持的,那刚才我提到了一句

我说,字典是无序的,是吧,字典是无序的

我来打印一下,看它是怎么个无序,对比一下啊

第一个元素,’白涛’没问题,第二个元素,’张太红’没问题

第三个元素在打印出来结果是’杨树银’, 而我创建的时候元素是’寇晓斌’对吧

他们两的顺序啊交换了

那这个就说明了,我们字典呢,在内存里面存的时候

并不是按照我们写的这种方式来存的

我们知道列表是可变的数据类型

就是说列表里面的元素是可以被修改的,我来修改一下

那我们看一下字典里的元素,可不可以被修改,看啊

列表里面索引为1的时候,应该是第二个元素’张太红’把它修改成它

这个是没问题的对吧,而字典里面键唯一的元素

也是’张太红’如果它支持这种修改的话,它也会变成ZHT啊,好

我来打印一下,运行,运行,没有报错

列表里面ZTH,字典里面已对应的ZTH

说明我们的字典也是支持一种下标的方式来修改元素内容的

字典是可变的数据类型,那既然字典是可变的

我们再来看一下,这种操作会怎么样,我要d[5]=10了

在来看一下L[5]=10,我看一下这种操作是会出错呢还是会怎么样

打印一下,切到这,好,运行 报错了,对吧,报错了,

看什么错误,21行出错了,错误是索引错误

说列表复制的时候,索引index

超出了范围了,超出我这个列表的范围了

根据5.1那个例子,我们已经知道了,列表里面元素呢,索引是从0

开始到长度减1结束,就是0,1,2,3就是这里面有4个元素

索引值为5的时候它是没有这个元素是吧,没有这个元素

那你要去修改它的值,肯定是不成功的,它就给你报了一个这样的错误

那我再运行看下我们的字典,字典是看来是没有问题啊

字典5:10,看来这个里面没有5这个键吧,然后呢

当我进行这样的操作的时候呢里面加上了5对应的10对吧

它添加了这种元素

说明字典当一个键值不存在的时候你进行这样的复制操作使给字典里面

添加元素,它不会报错

我们再来给字典添加元素,这次我们添加,键值是,列表,好

1,2我想当键为1,2这个列表的时候,它对应的元素是’12’

我来打印一下这个d,运行,首先看错误,25行

看错误提示,类型错误,说list是一个不能hash的类型

所以它不能作为我们字典的键值存在,说明这种添加元素的方式是错误的

注释掉,我们再来看一下,列表不可以,我们再来试一下

字典可不可以,1:2,同样呢’12,看字典可不可以,运行

同样错误,字典也是不可hash的类型,它也不能作为字典的键值

然后我们还来再添加以下元组1,2,我们看元组可不可以做键值呢,’12’

运行,没有问题,元祖可以啊,你看,’1,2’对应的是12

它没有舔到最后面去,因为字典是无序的

它插在了中间的一个地方,说明元祖呢是个可以作为我们字典的键值

好,那关于列表和字典呢,今天就给大家介绍到这里,下次课我们再见!

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笔记与讨论

也许你还感兴趣的课程:

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