乌龟编程精讲版-68

python玩与学 | 有你好看

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

我们用turtle做一个简易的钟表。为什么是“简易”的呢?它只是在你运行程序的时候显示出当前的时间,它没有秒针、时针也不会实时的运动。要看以下“功能完善”的钟表,在Python的解释器IDLE里的turtle Demo里就有一个!它是这样子的。

Python的Turtle Demo里的钟表

(进入方法:IDLE菜单--->help-->Turtle Demo-->examples--->clock)

自制的“钟表”

我们自制的钟表长这个样子(下图)。非常简洁明快是吧?只有时针和分针,没有秒针;每次运行程序的时候它就显示出正确的当前时间。

我们要画的钟表

怎么样画这个钟表呢?只要认真学了我们平台前面的教程的朋友都能做出来(所使用的turtle画图的函数以前均讲解过)。我们要先明白几个关键的地方:

何获得当前的时间

这里就用到了Python里面的一个模块“datetime”:它是一个有关“时间”与“日期”的模块,有很多函数可供你调遣。我们这里只想知道当前是“几点”?“几分”?怎么做呢?看下动图:

所以总结下就是:想要知道当前是几点就要用到:

想要知道当前是几分就用到:

如何画时针和分针

另一个关键的问题是:如何画时针呢?没错,你肯定想到了:不妨提醒你一下:钟表的一圈是12小时,一圈又是360度,所以每一个小时时针应该转动(360/12=30)度,我们每次从12点开始算起。如果现在是3点,那时针就应该从正12点位置转动(3*360/12=90)度。

那分针怎么转呢?知道时针怎么转了也就知道分针了:钟表的一圈是60分钟,一圈又是360度,所以每一分钟分针应该转动(360/60=6)度,我们每次从12点开始算起。如果现在是15分,那分针就应该从正12点位置转动(15*360/60=90)度。

自制“钟表”代码

用Python代码实现上面的简易时钟如下。保存之后就可以运行查看效果了。

程序先导入了datetime库的datetime模块;导入turtle乌龟模块;然后造了一个小乌龟myPen,设置它的形状是“箭头(arrow)”;变量currentMinute存储了当前的“分”,currentHour变量存储了当前的“时”;然后就是让乌龟画圆形表盘,画完表盘画时针(方法上面已经介绍了);接着画分针,方法也是一样的。

代码非常简洁、流畅,大家仔细体会。

Python代码画“钟表”

所用函数总结

datetime:日期时间模块

shape():设置乌龟的形状

speed():乌龟画图的速度,0表示最快

penup()/pendown():提笔/落笔命令

goto():让乌龟走到(x,y)坐标位置

color():设置乌龟线条颜色

circle():画圆命令

width():线条宽度命令

setheading():设置乌龟箭头角度

right():右转命令

forward():前进命令

细心的你可能注意到了:我们的时针走的并不精确。因为比如现在是2:30分,那时针不应该指向“2”,而是应该指向“2”与“3”之间的某个位置,我们的程序没有考虑到这点。

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

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

扫码关注云+社区

领取腾讯云代金券