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单链表实现代码实例
Nov 21 Python
python使用nntp读取新闻组内容的方法
May 08 Python
在Python中操作字典之update()方法的使用
May 22 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
python制作图片缩略图
Apr 30 Python
python仿evething的文件搜索器实例代码
May 13 Python
python判断自身是否正在运行的方法
Aug 08 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
python实现将一维列表转换为多维列表(numpy+reshape)
Nov 29 Python
python实现人像动漫化的示例代码
May 17 Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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 session常见问题集锦及解决办法总结
2007/03/18 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
php实现的农历算法实例
2015/08/11 PHP
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
jQuery实现跨域
2015/02/03 Javascript
js中日期的加减法
2015/05/06 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
2015/12/03 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
详解Python3中yield生成器的用法
2015/08/20 Python
使用C++扩展Python的功能详解
2018/01/12 Python
详解python中的数据类型和控制流
2019/08/08 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
面包店的创业计划书范文
2014/01/16 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
JavaScript组合继承详解
2021/11/07 Javascript
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python