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多线程抓取天涯帖子内容示例
Apr 03 Python
Python 安装setuptools和pip工具操作方法(必看)
May 22 Python
zookeeper python接口实例详解
Jan 18 Python
Python基于opencv的图像压缩算法实例分析
May 03 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
python 产生token及token验证的方法
Dec 26 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
Python threading的使用方法解析
Aug 28 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
python破解同事的压缩包密码
Oct 14 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
用 PHP5 轻松解析 XML
2006/12/04 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
用jscript实现新建和保存一个word文档
2007/06/15 Javascript
juqery 学习之五 文档处理 插入
2011/02/11 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
python 全局变量的import机制介绍
2017/09/07 Python
详解python eval函数的妙用
2017/11/16 Python
Python实现的栈(Stack)
2018/01/26 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
Python中list循环遍历删除数据的正确方法
2019/09/02 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
采用怎样的方法保证数据的完整性
2013/12/02 面试题
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android