当前课程知识点:Python 交互式程序设计导论 >  第3周 >  A 课程视频(画布绘图) >  绘图和计时器可视化跟踪执行

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

绘图和计时器可视化跟踪执行在线视频

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

下一节:图片和音效

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

绘图和计时器可视化跟踪执行课程教案、知识点、字幕

大家好,本周我们的主要内容是图形绘制和计时器可视化调试

SimpleGUITk这个模块给我们提供了两类事件

一类是上周我们学习过的按钮、输入框等

它们的调用是由程序外的触发来调用的

比如说,你点击了按钮,它就会调用按钮对应的事件处理函数

还有一类就是我们本周学习的图形绘制和计时器

它们的调用呢不是由程序外的触发来调用的

当然也不是你写的函数来调用的,而是由系统自动的调用

比如说,我们图形绘制的事件处理函数就是由系统每秒钟调用60次

而我们的计时器也是由你设计的时间间隔来执行的

今天我们的主要内容呢就是学习一下它们的调试方法

下面开始我们今天的课程,好,我们来看一下这个例子

首先呢,我把这个程序运行一下, 大家先看下这个程序是做了哪些事情

好,把它拖到前面来,看,这是一个模拟了我们的屏幕保护程序了

隔一定时间屏幕上就会出现几个圆是吧

不同颜色的圆,然后呢,刚才我们看到有几个字出现了

对不对?看又出现“我喜欢Python”文字也出现了

但是,我发现它一会不见了,然后,你看它现在已经不见了

虽然有几个圆出现在屏幕的边缘,但是它每时,隔一定时间它就会出现

而我这个文字呢,它有时候在,有时候又不在了

是吧,那这个程序到底是有什么问题呢?

它为什么屏幕上显示的文字突然间会消失呢?

我们来看一下,我们来调试一下,刚才那个,我们可以看出什么呀?

就是,首先是我那个文字不在我屏幕上了

那肯定问题就会出现在绘制文字的地方

那就在我们那个绘制图形的事件处理函数里面

好,我们这加一个断点,加一个断点,我们来调试下

看这一行有没有什么问题?

我右键调试了,右键调试之后,看我们调试器

好,我把它的这个位置加进去了,我要看下这个位置

当前大家看位置是424,1608,又发现它的值

y的坐标值已经远远的超出了我的屏幕大小了,是吧!

因为我这个时候,我设定的屏幕是,屏幕的大小是宽和高分别是500

它已经超出我的范围了,那我调试一下,我走一下

看,它变了,那为什么变了呢,大家想,因为我们的屏幕

绘制屏幕的这个函数,还有我们定时器这两个

这两个特殊的事件,它是由我们程序内自动来调用的

理论上来说我们绘制屏幕的这个函数是一秒钟调用六十次

而我们的计时器它是由我们规定的, 在这个地方规定的那个时间间隔来调用的

看现在是2000,好我运行827,827它也远远超出了我500了

下一步,下一步, 看它一直在变,再下一步,好我进行

它一直在我的范围之外是吧,一直在我的500范围之外

那当然这种情况下它就不会, 你看又1936,离我的500边缘实在是太远了

所以它绘制在屏幕上之后呢,已经超出了我们屏幕的范围

所以我们就看不到,就好像它消失了一样

这当然不是我们所期望的结果,那这个问题到底在哪呢?

大家再想一下,现在肯定是屏幕上没有是吧,没有

想一下,我这个文本的位置,是肯定有某个程序在改变吧

这个文本的这个list大小一直在,肯定有某个函数在改变

那现在它变化的范围超出了我的500

那我是不是要去找一下什么地方改变了它

什么地方改变了它,我找一下哈,好

我找一下,文本位置,我往上看我这个函数

在这个地方是吧,有这样一个计时器事件的处理函数

在这个里面呢,它是x,y取两个随机数

然后分别赋值给我的文本的横坐标的值和纵坐标的值

对不对,好,那我给这加一个断点,我给这加一个断点

我看下这个x和y到底是什么?我下一步,我的x是241

我再下一步的时候,y是1129, 这么大的一个数,为什么超出了这么多呢?

我本来想让它出现在我的屏幕里

那么它的大小范围应该是在500以内的

它现在超出了这么多,那我就要看一下我这个程序了

我看一下x是怎么得来的,y是怎么得来的,我看x呢

它是取随机数,从0到宽,这个宽是500,然后我y呢

同样也是取随机数,但是, 我这个地方是interval,看下interval是多少?

2000,这样大家就很好理解了

因为我要的这个随机数的范围呢是0到2000以内

所以它取1129是不是很正常,因为在范围之内嘛

所以我们在运行的时候,这个程序它没有报任何的语法错误

但我们的运行结果却不是我们所期望的

这种问题就是靠我们调试可以来解决

一般我们把程序编译之后,运行结果不对的,这些逻辑错误呢

我们都用调试来解决,然后,我刚才已经发现了这个问题,它是在2000

本来我是希望它是在500以内,是吧!好,我已经知道这个问题了

那我把它停止,我把它改一下,因为我纵坐标的值

它应该是在我屏幕的高度范围内,height是吧,高度范围内

我现在已经改过来了,我觉得它应该是正确的了

那我来运行一下,我先不调试,我来运行一下

看一下我的程序会不会很正常呢?看,它一直都在,是吧,一直都在

虽然它有时候显示不全,有时候显示是全的

因为它这个位置范围是在500之内嘛,所以它一直都在我的屏幕上出现

那当然喽,这个我可以修改了,新疆好地方,回车

看文字已经变化了,那这就是一个很好的屏幕保护程序了

那我先把它,现在已经修改完了,没有问题了

我把它关掉了,关掉了,然后我们再回到这个程序

之前已经跟大家讲过了,说我的计时器的事件

还有我绘制屏幕图形的这个事件呢,它是由系统自动来调用的

然后呢,我们今天通过调试的办法呢

看了一下我们程序里面不易发现的一些程序的一些错误吧

我们把它叫做逻辑错误,因为程序结果不是我们想要到

而我们的编译错误,语法错误都是通过编译的时候就会报出来语法错误

比如说,命名错误,类型错误什么的,那希望大家用好我们这个调试工具

可以帮助大家解决一些程序中碰到的问题吧

好,我们今天的课就上到这里

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周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

绘图和计时器可视化跟踪执行笔记与讨论

也许你还感兴趣的课程:

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