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中的pprint折腾记
Jan 21 Python
Python生成随机验证码的两种方法
Dec 22 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
Python类的继承用法示例
Jan 31 Python
opencv+python实现均值滤波
Feb 19 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
python 穷举指定长度的密码例子
Apr 02 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 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数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php求数组全排列,元素所有组合的方法
2016/05/05 PHP
基于php实现的验证码小程序
2016/12/13 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
jquery和雅虎的yql服务实现天气预报服务示例
2014/02/08 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
js实现省市级联效果分享
2017/08/10 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
python网络编程之读取网站根目录实例
2014/09/30 Python
使用Python进行目录的对比方法
2018/11/01 Python
简单了解Django ContentType内置组件
2019/07/23 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
Python如何定义有默认参数的函数
2020/08/10 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
日语专业个人的求职信
2013/12/03 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
教师三严三实心得体会
2014/10/11 职场文书
2014年环保局工作总结
2014/12/11 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2016猴年开门红标语口号
2015/12/26 职场文书
如何拟写通知正文?
2019/04/02 职场文书
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers