乌龟编程精讲版-32

python玩与学 | 有你好看

公益教程 | 代码俱乐部 | 玩物励志

还记得我们曾经做过的一款“表”吗?点击这里可再看下:【乌龟编程精讲版--27】--做个简易的钟表。这个表只有时针和分针,没有秒针走动,看起来像“没有电”了一样。何不做一个秒针不停转动的表呢?

本节要做的表

盯着这只表,我们要先想一想怎么画?步骤是什么呢?这就是“解决问题的思路”,是不是可以这样呢?

先画最外面的圆形

再画12根“小时”的短线

接着画时针、分针、秒针

有点难度的就是让秒针实时转动,但其实只是一个命令就可以了。好了,奉上代码如下图。

本节代码完整版

代码详解

代码主要有三大部分:

引入turtletime两个模块之后就是先做一些基本的设置:如画布背景的颜色、标题、长度和宽度等;

之后建一个小乌龟叫做“pen”,做了一些设置:线宽、画画速度,而且是隐藏的;

然后就是代码的主要部分:做一个画表的函数draw_clock():它需要4个参数,小时、分、秒和一只乌龟,将这4个参数传进函数后就画出整个表来了。这个函数里先画表的外圆形、然后是刻度线、分别画时针、分针和秒针。画时针的时候需要知道“几点转多少度”的问题,上次的“简易时钟”教程已经说过了,不知道的可以翻看或查看上面图中的代码提示。

最后一个主要部分就是while True循环:实时获得几点(h)、几分(m)、几秒(s),然后将它们“传给”draw_clock()函数就行了。这里需要说明的就是获得几点(h)、几分(m)、几秒(s)用的是time模块的方法time.strftime函数——"%I"、"%M"、"%S"分别表示获得当前时间的“12小时制小时数(01-12)”、“分钟数(00-59)”、“ 秒数(00-59)”

为什么while True循环里要pen.clear()一下呢?因为秒针总是在走动,如果走动1秒就画一个秒针,不一会整个表盘上全是秒针了,不信你就可以把这个clear()这一行给删除掉(或注释下)然后运行程序看看结果是不是这样子。

最后就是这个tracer()函数了,是它让画画如此神速,保证我们看这个表的时候秒针一下一下的实时转动...这个函数怎么用呢?就像下面的图里画的:上面和下面一个是False、一个是True,包住中间的画画部分的代码,那你画任何图形就会立刻在屏幕上显示了(省略了小乌龟一点点走动的动作)。

还有很多很多......

学编程、学创造、释放你的想象力

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180820G05EBF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券