源代码:

# coding=utf-8
import turtle
from datetime import *# 由于表盘刻度不连续,需频繁抬起画笔,放下画笔
def skip(step):turtle.penup()  # 画笔抬起turtle.forward(step)  # 画笔移动stepturtle.pendown()  # 画笔落下# 建立表针,定制表针形状和名字
def make_hand(name, length):turtle.reset()skip(-length * 0.1)  # 表针一端,过表盘中心一小段,开始绘制turtle.begin_poly()  # 开始记录多边形的第一个顶点。turtle.forward(length * 1.1)  # 设置表针长度,绘制表针turtle.end_poly()  # 停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。handForm = turtle.get_poly()  # 返回最后记录的形状turtle.color('black')turtle.register_shape(name, handForm)# 三个表针初始化,实例化
def init_hand():global sec_hand, min_hand, hou_hand, printer# 重置Turtle指向北turtle.mode("logo")  # logo:向上(北) 顺时针   standard:向右(东)  逆时针# 建立三个表针Turtle并初始化make_hand("sec_Hand", 135)make_hand("min_Hand", 110)make_hand("hou_Hand", 70)sec_hand = turtle.Turtle()sec_hand.shape("sec_Hand")min_hand = turtle.Turtle()min_hand.shape("min_Hand")hou_hand = turtle.Turtle()hou_hand.shape("hou_Hand")# 笔的属性for hand in sec_hand, min_hand, hou_hand:hand.shapesize(1, 1, 3)hand.speed(0)# 建立输出打印的文字Turtleprinter = turtle.Turtle()# 隐藏画笔的turtle形状printer.hideturtle()printer.penup()# 设置表盘
def set_clock(radius):turtle.reset()turtle.pencolor('red')  # 设置画笔颜色turtle.fillcolor('pink')  # 设置绘制图形的填充颜色turtle.pensize(10)  # 画笔宽度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 show_week(t):week = ["星期一  Mon", "星期二  Tue", "星期三  Wed", "星期四  Thu", "星期五  Fri", "星期六  Sat", "星期日  Sun"]return week[t.weekday()]  # t.weekday() 周一为0,周二为1...可作为列表的index# 显示日期
def show_data(t):y = t.yearm = t.monthd = t.dayreturn "{} 年 {} 月 {} 日".format(y, m, d)# 显示时间
# def show_time(t):
#     m = t.minute
#     h = t.hour
#     return "{}:{}".format(h, m)# 显示整个时钟
def show_clock():# 获取时间t = datetime.today()second = t.second + t.microsecond * 0.000001minute = t.minute + second / 60.0hour = t.hour + minute / 60.0sec_hand.setheading(6 * second)min_hand.setheading(6 * minute)hou_hand.setheading(30 * hour)turtle.tracer(False)printer.forward(65)printer.write(show_week(t), align='center', font=("Courier", 14, "bold"))printer.back(65)printer.write("The Clock of Hua", align="center", font=("Courier", 16, "bold"))printer.back(65)printer.write(show_data(t), align='center', font=("Courier", 14, "bold"))# printer.back(25)# printer.write(show_time(t), align="center", font=("Courier", 14, "bold"))# 回到原点,以便于下一轮的显示printer.home()turtle.tracer(True)# 100ms后继续调用show_clockturtle.ontimer(show_clock, 100)# main函数
def main():turtle.tracer(False)# 设置背景ts = turtle.getscreen()ts.bgcolor("#cccccc")# 初始化init_hand()# 设置时钟set_clock(180)turtle.tracer(True)# 显示时钟show_clock()turtle.mainloop()if __name__ == "__main__":main()

模块:turtle   datetime

定义函数:

skip:指定重复动作

make_hand():建立表针

init_hand():表针初始化,实例化

set_clock():设置表盘

show_week():显示星期

show_data():显示日期

show_clock():显示时钟

main():主函数

效果:

Python制作一个简易时钟(可显示日期,星期)相关推荐

  1. 使用python制作一个简易的远控终端

    使用python制作一个简易的远控终端 远控终端的本质 1.服务端(攻击者)传输消息 ----> socket连接 ----> 客户端(被攻击者)接收消息 2.客户端执行消息内容(即执行服 ...

  2. 用Python制作一个简易的计时器

    前言 今天又带来个小玩意 - 用Python制作一个简易的计时器 这个其实也能自定义一些东西的 就比如名字 颜色啥的 自己看着改就行 有想法的朋友也能自己再写写改改出其他的小功能 效果展示 实现代码 ...

  3. 用Python制作一个简易的抽奖程序

    分析需求 我们先整理下思路,目标是什么? 目标是要写一个抽奖程序,那么抽奖程序的核心是什么? 当然是如何判断一个人中奖了.那么如何判断一个人中奖呢? 是不是可以通过随机函数来操作呢? 中奖方法 一步一 ...

  4. Python制作一个简易连点器

    废话不多说,我只是觉得用c/c++会比较麻烦,这个也是比较针对于游戏的连点器,实在不放心加个random pip安装的模块:  pyautogui,keyboard; 直接上代码: ​​import ...

  5. python制作解压工具_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  6. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  7. python编写一个软件-使用python制作一个解压缩软件

    python实现解压缩的重要模块就是――zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  8. python如何制作一个工程软件_使用python制作一个解压缩软件

    python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip install zipfile os是 ...

  9. python如何制作一个工程软件_如何利用python制作一个解压缩软件-Go语言中文社区...

    如何利用python制作一个解压缩软件 python实现解压缩的重要模块就是--zipfile,其次是os 安装zipfile模块 首先得安装zipfile模块,打开cmd输入一下命令即可安装 pip ...

最新文章

  1. 裸奔浏览器_【大数据早报】上网=“裸奔”?单凭浏览器历史记录就能锁定身份...
  2. 一种绕过Android P对非SDK接口限制的简单方法
  3. 学python还是java贴吧_是学python还是java?一张图告诉你!
  4. 31天重构学习笔记19. 提取工厂类
  5. Java基础17:Java IO流总结
  6. 云开发是啥?看看它在编程导航项目的实践
  7. Android 8.0(30)--- 应用快捷方式(ShortcutManager)的使用
  8. 【论文】基于特定实体的文本情感分类总结(PART I)
  9. Hadoop资源调度器
  10. object 整理中..... 顶级页面
  11. windows基础知识总结
  12. iOS AVPlayer播放模式的实现(随机播放 列表循环 单曲循环)
  13. Automative SPICE 之五 过程能力层次和过程属性
  14. zip 命令实现批量文件压缩
  15. python sklearn包中的主成分分析_sklearn主成分分析 NBA球队数据PCA降维可视化
  16. Recoil 状态管理方案的浅入浅出
  17. Arduino RGB颜色渐变代码(附上C语言版本)
  18. 算法(Java实现)-算法的时间复杂度和空间复杂度
  19. 杭电复试 —— 2015年
  20. symfony ajax,Symfony2 AJAX登录

热门文章

  1. 2018-06-27随想
  2. 大数据企业面试真题汇总二
  3. 【AHK】autohotkey 自动登陆战网暗黑2杀进程双开多开
  4. java游戏越狱_透露越狱第三季里可以帮助Michael越狱的java程序(转载)
  5. 2021年中国重卡市场现状分析,市场遇冷,新能源重卡销量大幅度上升「图」
  6. linux shell获取当前执行路径
  7. Coad和Yourdon面向对象的分析过程
  8. 计算机控制和dcs控制的区别,从几个方面了解DCS与PLC控制柜到底有什么区别
  9. 直线导轨防尘处理方案有哪些?
  10. cmp test指令 条件转移 FLAGS寄存器 机理探究