Python实现时钟显示效果思路详解


Posted in Python onApril 11, 2018

语言:Python

IDE:Python.IDE

1.编写时钟程序,要求根据时间动态更新

Python实现时钟显示效果思路详解

2.代码思路

需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字
Step1:建立Turtle对象并初始化
Step2:静态表盘绘制
Step3:根据时钟更新表针位置与时间信息

基本库:Turtle、datetime

3.代码段

from turtle import *
from datetime import *
def Skip(step):
  penup()
  forward(step)
  pendown()
def mkHand(name, length):
  #注册Turtle形状,建立表针Turtle
  reset()
  Skip(-length*0.1)
  begin_poly()
  forward(length*1.1)
  end_poly()
  handForm = get_poly()
  #注册Turtle形状命令register_shape(name,shape=None)
  register_shape(name, handForm)
def Init():
  global secHand, minHand, hurHand, printer
  mode("logo")# 重置Turtle指向北
  #建立三个表针Turtle并初始化
  #第二个参数为长度
  mkHand("secHand", 125)
  mkHand("minHand", 130)
  mkHand("hurHand", 90)
  secHand = Turtle()
  secHand.shape("secHand")
  minHand = Turtle()
  minHand.shape("minHand")
  hurHand = Turtle()
  hurHand.shape("hurHand")
  for hand in secHand, minHand, hurHand:
    hand.shapesize(1, 1, 3)
    hand.speed(0)
  #建立输出文字Turtle
  printer = Turtle()
  printer.hideturtle()
  printer.penup()
def SetupClock(radius):
  #建立表的外框
  reset()
  pensize(7)
  for i in range(60):
    Skip(radius)
    if i % 5 == 0:
      forward(20)
      Skip(-radius-20)
    else:
      dot(5)
      Skip(-radius)
    right(6)
def Week(t):  
  week = ["星期一", "星期二", "星期三",
      "星期四", "星期五", "星期六", "星期日"]
  return week[t.weekday()]
def Date(t):
  y = t.year
  m = t.month
  d = t.day
  return "%s %d %d" % (y, m, d)
def Tick():
  #绘制表针的动态显示
  #当前时间
  t = datetime.today()
  second = t.second + t.microsecond*0.000001
  minute = t.minute + second/60.0
  hour = t.hour + minute/60.0
  secHand.setheading(6*second)
  minHand.setheading(6*minute)
  hurHand.setheading(30*hour)
   #介入Tracer函数以控制刷新速度
  tracer(False) 
  printer.forward(65)
  printer.write(Week(t), align="center",
         font=("Courier", 14, "bold"))
  printer.back(130)
  printer.write(Date(t), align="center",
         font=("Courier", 14, "bold"))
  printer.home()
  tracer(True)
  ontimer(Tick, 100)#100ms后继续调用tick
def main():
  tracer(False)
  Init()
  SetupClock(160)
  tracer(True)
  Tick()
  mainloop()
if __name__ == "__main__":    
  main()

补充:

Python实现时钟

1.小时钟获取当前时间并用打印在Console上

2.上代码

import time,sys,os
 while(1):
   t = time.strftime('%H:%M:%S',time.localtime(time.time()))
   sys.stdout.write(t+'\b'*10)
   sys.stdout.flush()
   time.sleep(0.1)
   os.system('cls')

3.解释

第一步:导入time,sys,os模块

第二部:实现无限循环

第三步:实现格式化输出,具体的详细使用方法,参见:这里

第四部:重定向到Console上

第五步:刷新

第六步:间隔0.1执行一次

第七步:清屏

Python 相关文章推荐
python使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
使用rpclib进行Python网络编程时的注释问题
May 06 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
python用户评论标签匹配的解决方法
May 31 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
python实现图片中文字分割效果
Jul 22 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Django文件存储 默认存储系统解析
Aug 02 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
pandas数据分组和聚合操作方法
Apr 11 #Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 #Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 #Python
pandas按若干个列的组合条件筛选数据的方法
Apr 11 #Python
pandas对指定列进行填充的方法
Apr 11 #Python
Python入门学习指南分享
Apr 11 #Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 #Python
You might like
php adodb分页实现代码
2009/03/19 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php程序内部post数据的方法
2015/03/31 PHP
js 绑定带参数的事件以及手动触发事件
2010/04/27 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
微信小程序实现点击效果
2019/06/21 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 大神专访第二弹!
2014/05/20 DOTA
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python实现合并两个数组的方法
2015/05/16 Python
python开发之文件操作用法实例
2015/11/13 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
美国最大的家庭鞋类零售商之一:Shoe Carnival
2017/10/06 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
一体化教学实施方案
2014/05/10 职场文书
和睦家庭事迹
2014/05/14 职场文书
大四毕业生自荐书
2014/07/05 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2014年维稳工作总结
2014/11/18 职场文书
齐云山导游词
2015/02/06 职场文书
公司的力量观后感
2015/06/05 职场文书
Python学习之迭代器详解
2022/04/01 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python