python玩与学 | 有你好看
公益教程 | 代码俱乐部 | 玩物励志
还记得我们曾经做过的一款“表”吗?点击这里可再看下:【乌龟编程精讲版--27】--做个简易的钟表。这个表只有时针和分针,没有秒针走动,看起来像“没有电”了一样。何不做一个秒针不停转动的表呢?
本节要做的表
盯着这只表,我们要先想一想怎么画?步骤是什么呢?这就是“解决问题的思路”,是不是可以这样呢?
先画最外面的圆形
再画12根“小时”的短线
接着画时针、分针、秒针
有点难度的就是让秒针实时转动,但其实只是一个命令就可以了。好了,奉上代码如下图。
本节代码完整版
代码详解
代码主要有三大部分:
引入turtle和time两个模块之后就是先做一些基本的设置:如画布背景的颜色、标题、长度和宽度等;
之后建一个小乌龟叫做“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,包住中间的画画部分的代码,那你画任何图形就会立刻在屏幕上显示了(省略了小乌龟一点点走动的动作)。
还有很多很多......
学编程、学创造、释放你的想象力
领取专属 10元无门槛券
私享最新 技术干货