python实现简易动态时钟

yipeiwu_com5年前Python基础

本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下

from turtle import *
from datetime import *
#移动到指定位置
def skip(step):
  penup()
  forward(step)
  pendown()
#画指针
def drawpointer(name, length):
  reset()
  skip(-length*0.1)
  begin_poly()
  forward(length*1.1)
  end_poly()
  handForm = get_poly()
  register_shape(name, handForm)
#初始化
def init():
  global hrpointer, minpointer, secpointer, weektext
  #设置turtle Logo模式,朝北
  mode("logo")
  drawpointer("hrpointer", 90)
  drawpointer("minpointer", 130)
  drawpointer("secpointer", 140)
  hrpointer = Turtle()
  hrpointer.shape("hrpointer")
  minpointer = Turtle()
  minpointer.shape("minpointer")
  secpointer = Turtle()
  secpointer.shape("secpointer")
  secpointer.pencolor("red")
  for pointer in hrpointer, minpointer, secpointer:
    pointer.shapesize(3, 1, 1)
    pointer.speed(0)
  #文字输出
  weektext = Turtle()
  weektext.hideturtle()
  weektext.penup()
#设置表盘形状
def setupClock(radius):
  reset()
#  clockPanel = Turtle()
  pensize(7)
  pencolor("blue")
  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.0000001
  minute = t.minute + second/60.0
  hour = t.hour + minute/60.0
  secpointer.setheading(6*second)
  minpointer.setheading(6*minute)
  hrpointer.setheading(30*hour)
  tracer(False)
  weektext.forward(65)
  weektext.write(Week(t), align="center",font=("Courier", 14, "bold"))
  weektext.back(130)
  weektext.write(Date(t), align="center",font=("Courier", 14, "bold"))
  weektext.home()
  tracer(True)
  #间隔100ms调用一次
  ontimer(tick, 100)

def main():
  tracer(False)
  init()
  setupClock(160)
  tracer(True)
  tick()
  mainloop()
if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python寻找两个有序数组的中位数实例详解

Python寻找两个有序数组的中位数实例详解

Python寻找两个有序数组的中位数 审题: 1.找出意味着这是一个查找算法题 2.算法复杂度log级别,就是提示你是二分查找 3.二分查找实现一般为递归  (1)递归包括递...

Python生成数字图片代码分享

本文向大家分享了几段Python生成数字图片的代码,喜欢的朋友可以参考。具体如下: 最终版本 # -*- coding:utf-8 -*- from PIL import Image...

python操作kafka实践的示例代码

python操作kafka实践的示例代码

1、先看最简单的场景,生产者生产消息,消费者接收消息,下面是生产者的简单代码。 #!/usr/bin/env python # -*- coding: utf-8 -*- impor...

Python 结巴分词实现关键词抽取分析

Python 结巴分词实现关键词抽取分析

1 简介 关键词抽取就是从文本里面把跟这篇文档意义最相关的一些词抽取出来。这个可以追溯到文献检索初期,当时还不支持全文搜索的时候,关键词就可以作为搜索这篇论文的词语。因此,目前依然可以...

Python打造出适合自己的定制化Eclipse IDE

Python打造出适合自己的定制化Eclipse IDE

Eclipse是一套强大的框架,其能够通过内置插件机制实现多种扩展方式。然而要想添加一小点额外功能,大家都不可避免地需要面临新插件的编写与部署工作,这显然有点令人头痛。现在在EASE的帮...