python小程序源代码-Python小项目:开发一个动态时钟小程序(附源码)
importturtlefrom datetime import *
#抬起画笔,向前运动一段距离放下
defskip(step):
turtle.penup()
turtle.forward(step)
turtle.pendown()defmkHand(name, length):#注册Turtle形状,建立表针Turtle
turtle.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)definit():globalsecHand, minHand, houHand, printer#重置Turtle指向北
turtle.mode("logo")#建立三个表针Turtle并初始化
mkHand("secHand", 135)
mkHand("minHand", 125)
mkHand("houHand", 90)
secHand=turtle.Turtle()
secHand.shape("secHand")
minHand=turtle.Turtle()
minHand.shape("minHand")
houHand=turtle.Turtle()
houHand.shape("houHand")for hand insecHand, minHand, houHand:
hand.shapesize(1, 1, 3)
hand.speed(0)#建立输出文字Turtle
printer =turtle.Turtle()#隐藏画笔的turtle形状
printer.hideturtle()
printer.penup()#绘制表盘
defsetupClock(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)#顺时针移动6°
turtle.right(6)defweek(t):
week= ["星期一", "星期二", "星期三","星期四", "星期五", "星期六", "星期日"]returnweek[t.weekday()]defdate(t):
y=t.year
m=t.month
d=t.dayreturn "%s %d%d" %(y, m, d)deftick():#绘制表针的动态显示
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)
houHand.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后继续调用tick
turtle.ontimer(tick, 100)defmain():#打开/关闭龟动画,并为更新图纸设置延迟。
turtle.tracer(False)
init()
setupClock(160)
turtle.tracer(True)
tick()
turtle.mainloop()if __name__ == "__main__":
main()
python小程序源代码-Python小项目:开发一个动态时钟小程序(附源码)相关推荐
- python动态电子时钟包装_Python小项目:开发一个动态时钟小程序(附源码)
importturtlefrom datetime import * #抬起画笔,向前运动一段距离放下 defskip(step): turtle.penup() turtle.forward(ste ...
- 【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)
卡塔尔世界杯元素python海龟绘图(附源代码) 世界杯主题前端特效5个(附源码)程序人生 本文目录: 一.python turtle海龟绘图卡塔尔世界杯元素 (1).绘制效果图 (2).代码演示方法 ...
- 小程序云开发实现登录与注册(附源码)
小程序云开发实现登录与注册(附源码) 1. 看效果 2.wxss <view class="v1"><!-- v2父容器 子view使用绝对布局 -->&l ...
- Python爬虫鲁迅先生《经典语录》保存到Excel表格(附源码)
Python爬虫鲁迅先生<经典语录>保存到Excel表格(附源码) 前言 今天用Python 爬取鲁迅先生<经典语录>,直接开整~ 代码运行效果展示 开发工具 Python版本 ...
- 20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放
20220517 Python 制作一个儿童学习软件 (附源码和软件下载) 包含语音合成 视频播放 pyqt pptsx3 Qmovie request pygame 音频播放 文章目录 202205 ...
- vscode中安装webpack_leaflet-webpack 入门开发系列一初探篇(附源码下载)
前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载 webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址w ...
- JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...
- Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码
Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码 程序之美 从小就听着小蝌蚪找妈妈的故事长大,我相信小伙伴们一定都不陌生,因为小学课本中,我们早早的就学过了小蝌蚪找妈妈这篇文章,它既是一篇文章, ...
- Java毕设项目大学生校园兼职系统计算机(附源码+系统+数据库+LW)
Java毕设项目大学生校园兼职系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ E ...
最新文章
- java保存不了_在使用Java写入文件时,文件不能保存在文件夹中
- php 防止按住f5不松,WordPress如何防御(频繁F5刷新)的解决方法
- Sizzle系列之 选择元素
- 209. 单点登录(SSO)
- Angular compiler报的一个错误消息:Component XX is not part of any NgModule
- ASP.NET Core使用功能开关控制路由访问
- 高性能MySQL(2)——Schema与数据类型的优化
- 我每天路过胡同的飞鸽传书
- python open函数 创建变量文件_python的open函数怎么用
- 《Algorithms》Comparable 实现选择排序
- LeetCode 939. Minimum Area Rectangle (最小面积矩形)
- 2021-09-10二叉树的层序遍历
- 编写 USB 存储设备使用痕迹检测和删除工具
- 用excel做数据分析
- 实验三linux进程并发程序设计,实验三Linux进程并发程序设计.doc
- python3-曲线拟合(polyfit/polyval)
- TF_REPEATED_DATA ignoring data with redundant timestamp for frame left_wheel at time
- 浪潮存储加速国产替代
- Linux-Socket实现模拟群聊(多人聊天室)
- Angularjs DataTable表格自动刷新