# coding=utf-8import turtle
from datetime import *# 抬起画笔,向前运动一段距离放下
def Skip(step):turtle.penup()turtle.forward(step)turtle.pendown()def mkHand(name, length):# 注册Turtle形状,建立表针Turtleturtle.reset()Skip(-length * 0.1)# 开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。turtle.begin_poly()turtle.forward(length * 1.1)# 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。turtle.end_poly()# 返回最后记录的多边形。handForm = turtle.get_poly()turtle.register_shape(name, handForm)def Init():global secHand, minHand, hurHand, printer# 重置Turtle指向北turtle.mode("logo")# 建立三个表针Turtle并初始化mkHand("secHand", 135)mkHand("minHand", 125)mkHand("hurHand", 90)secHand = turtle.Turtle()secHand.shape("secHand")minHand = turtle.Turtle()minHand.shape("minHand")hurHand = turtle.Turtle()hurHand.shape("hurHand")for hand in secHand, minHand, hurHand:hand.shapesize(1, 1, 3)hand.speed(0)# 建立输出文字Turtleprinter = turtle.Turtle()# 隐藏画笔的turtle形状printer.hideturtle()printer.penup()def SetupClock(radius):# 建立表的外框turtle.reset()turtle.pensize(7)for i in range(60):Skip(radius)if i % 5 == 0:turtle.forward(20)Skip(-radius - 20)Skip(radius + 20)if i == 0:turtle.write(int(12), align="center", font=("Courier", 14, "bold"))elif i == 30:Skip(25)turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-25)elif (i == 25 or i == 35):Skip(20)turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-20)else:turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))Skip(-radius - 20)else:turtle.dot(5)Skip(-radius)turtle.right(6)def Week(t):week = ["星期一", "星期二", "星期三","星期四", "星期五", "星期六", "星期日"]return week[t.weekday()]def Date(t):y = t.yearm = t.monthd = t.dayreturn "%s.%d.%d" % (y, m, d)def Tick():# 绘制表针的动态显示t = datetime.today()second = t.second + t.microsecond * 0.000001minute = t.minute + second / 60.0hour = t.hour + minute / 60.0secHand.setheading(6 * second)minHand.setheading(6 * minute)hurHand.setheading(30 * hour)turtle.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()turtle.tracer(True)# 100ms后继续调用tickturtle.ontimer(Tick, 100)def main():# 打开/关闭龟动画,并为更新图纸设置延迟。turtle.tracer(False)Init()SetupClock(160)turtle.tracer(True)Tick()turtle.mainloop()if __name__ == "__main__":main()

关于turtle 库,请查看如下链接:

https://docs.python.org/zh-cn/3/library/turtle.html

Python画出时钟相关推荐

  1. echarts词云图形状_怎么用Python画出好看的词云图?

    相信很多人在第一眼看到下面这些图时,都会被其牛逼的视觉效应所吸引,这篇文章就教大家怎么用Python画出这种图. 前期准备 上面的这种图叫做词云图,主要用途是将文本数据中出现频率较高的关键词以可视化的 ...

  2. python画动态爱心-使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  3. python编程爱心-使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  4. python画曲线-利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

  5. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  6. 频谱分析:基于python画出时域频域波形

    一,FFT解释 FFT(Fast Fourier Transformation)是离散傅氏变换(DFT)的快速算法.即为快速傅氏变换.它是根据离散傅氏变换的奇.偶.虚.实等特性,对离散傅立叶变换的算法 ...

  7. 【深度学习】通过python画出loss曲线

    通过python画出loss曲线 将训练过程中的running loss保存到文件 1.读取txt文件 2.取出相应列的数据作为绘图的x和y 3.先创建一幅图,再在这幅图上添加一个小图 4.画出整体的 ...

  8. python怎么画出圆润的曲线_利用python画出AUC曲线的实例

    以load_breast_cancer数据集为例,模型细节不重要,重点是画AUC的代码. 直接上代码: from sklearn.datasets import load_breast_cancer ...

  9. python送心小人_使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

最新文章

  1. C++ 中NULL 和 nullptr 的区别
  2. java中JFrame类中函数addWindowListener(new WindowAdapter)
  3. Nature:MIT团队造全新声感织物,这件“毛衣”可以听到你的心跳
  4. UTF-8,UTF-16和UTF-32
  5. 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342...
  6. mybatisplus 结果_springboot整合mybatisPlus 乐观锁的实现
  7. termcap - 终端功能数据库详解
  8. cshop是什么开发语言_国内程序员那么多,为什么不开发一个属于自己的编程语言?...
  9. Java学习6——基本数据类型及其转换
  10. 阿里面试记录-程序上机
  11. line-height和height的区别
  12. bootstraptable 一条数据跨行_据说它是唐山市拥有奶茶店最多的一条街,你一定也逛过!...
  13. mysql仿网易评论_仿网易新闻客户端评论盖楼
  14. 微服务调用Ribbon负载均衡、Feign的使用
  15. 使用Scratch制作打弹球游戏(一)弹球游戏过关
  16. windows安装idea2019.3.3
  17. 2022-2028全球多层共烧基板行业调研及趋势分析报告
  18. Chaya虚拟机学习 —— 启用Docker遇到的Bug
  19. arcgis 9.3/10.2.2/10.5版本下载
  20. Linux中计算特定CPU使用率

热门文章

  1. CLIP 论文学习笔记《Learning Transferable Visual Models From Natural Language Supervision》
  2. 清除异常关闭进程的任务栏托盘区残留图标
  3. 如何下载Tomcat
  4. Windows下及linux下PVM并行计算平台的搭建
  5. SEO面试笔试练习题
  6. 大流行时代的三大社会技术影响
  7. java实现12小时制和24小时制的时间
  8. Android8.0 悬浮窗的实现
  9. Scrapy抓站:大批量下载360指定专题下的照片并保存到sql和本地文件夹下
  10. 【数据库】多表查询二----嵌套查询(子查询)