Python 6行代码写北京时间时钟(10帧 可调) 天地良心

今天看到别的大佬用Python写时钟

我密集恐惧症都犯了

十来个定义函数 我看也看不懂

代码还有整整78行 还是在我改良后的

改良前有98行 我删注释 优化函数名(比如把penup改成pu) 

这个文件照样有5KB

并且在帧数取决于电脑性能 我运行了一下 电脑都卡出蓝屏了

于是我连夜赶工 把这个6行的时钟搞出来了

在运行十分钟后也只有三十几MB

文件大小也只有723B

_____________________________________________________________________________

总之 先放代码:

import turtle,time,datetime;date=datetime.datetime.now();turtle.tracer(0);mz=turtle.Turtle();fz=turtle.Turtle();fz.pensize(3);sz=turtle.Turtle();sz.pensize(5);bg=turtle.Turtle();bg.ht();bg.pu();bg.goto(0,-200)
for i in [6,5,4,3,2,1,12,11,10,9,8,7]:bg.write(i,font=('斜体',20,'normal'));bg.circle(200,30)
bg.goto(0,-210);bg.pd();bg.pensize(5);bg.circle(220)
def zd(pen,ds,cd):pen.clear();pen.pu();pen.goto(0,0);pen.pd();pen.right(ds);pen.fd(cd)
zd(mz,int(date.strftime('%S'))*6-90,180);zd(fz,int(date.strftime('%M'))*6-90,140);zd(sz,int(date.strftime('%H'))*30-90,100)
while 1:time.sleep(0.1);zd(mz,0.6,180);zd(fz,0.01,140);zd(sz,0.025/30,100);turtle.update()

未登录的复制渠道:

import turtle,time,datetime;date=datetime.datetime.now();turtle.tracer(0);mz=turtle.Turtle();fz=turtle.Turtle();fz.pensize(3);sz=turtle.Turtle();sz.pensize(5);bg=turtle.Turtle();bg.ht();bg.pu();bg.goto(0,-200)
for i in [6,5,4,3,2,1,12,11,10,9,8,7]:bg.write(i,font=('斜体',20,'normal'));bg.circle(200,30)
bg.goto(0,-210);bg.pd();bg.pensize(5);bg.circle(220)
def zd(pen,ds,cd):pen.clear();pen.pu();pen.goto(0,0);pen.pd();pen.right(ds);pen.fd(cd)
zd(mz,int(date.strftime('%S'))*6-90,180);zd(fz,int(date.strftime('%M'))*6-90,140);zd(sz,int(date.strftime('%H'))*30-90,100)
while 1:time.sleep(0.1);zd(mz,0.6,180);zd(fz,0.01,140);zd(sz,0.025/30,100);turtle.update()

_____________________________________________________________________________
现在是北京时间10:40

我运行一下程序 是下图的效果:

_____________________________________________________________________________

下面是步骤

1.基础设置:

import datetime#导入datetime模块 负责获得当前时间
import turlte#导入turtle模块 负责图像显示
import time#导入time模块 负责调节帧率和减小电脑压力
date=datetime.datetime.now()#初始化datetime
turtle.tracer(0)#以最快速度运行

_____________________________________________________________________________

2.指针设置:

mz=turtle.Turtle()#创建秒针
fz=turtle.Turtle()#创建分针
fz.pensize(3)#把分针的宽度改为3像素
sz=turtle.Turtle()#创建时针
sz.pensize(5)#把时针的宽度改为5像素

_____________________________________________________________________________

3.表盘绘制:

bg=turtle.Turtle()#创建画笔bg
bg.ht()#隐藏画笔bg
bg.pu()#不让画笔bg留下痕迹
bg.goto(0,-200)#让画笔bg去0,-200的位置 这可以让圆心正好是0,0
for i in [6,5,4,3,2,1,12,11,10,9,8,7]:#让for循环遍历这个列表bg.write(i,font=('斜体',20,'normal'))#写出的字为当前列表中对应的数字bg.circle(200,30)#画一个圆的十二分之一
bg.goto(0,-210)#去圆外10像素的地方
bg.pd()#让画笔留下痕迹
bg.pensize(5)#把画笔bg的宽度改为5像素
bg.circle(220)#画一个半径为220的圆

_____________________________________________________________________________

4.转动函数:

def zd(pen,ds,cd):#定义函数zd("转动"的首字母)pen.clear()#清除这支画笔在这之前留下的痕迹pen.pu()#不让画笔留下痕迹pen.goto(0,0)#让画笔去中心pen.pd()#让画笔留下痕迹pen.right(ds)#让这只画笔右转(顺时针转)动ds度pen.fd(cd)#向前cd像素

_____________________________________________________________________________

5.转动:

zd(mz,int(date.strftime('%S'))*6-90,180)#获得秒
zd(fz,int(date.strftime('%M'))*6-90,140)#获得分
zd(sz,int(date.strftime('%H'))*30-90,100)#获得时
'''
date是之前初始化的datetime
strftime函数的参数里 特定的口令代表获得的时间(是字符串类型)
'''
while 1:time.sleep(0.1)#停止运行0.1秒(调节帧率 把一秒分成10帧)zd(mz,0.6,180)#秒针转动0.6° 长180像素zd(fz,0.01,140)#分针转动0.01° 长140像素zd(sz,0.025/30,100)#时针转动0.025/30°=0.3/360turtle.update()#刷新画面
#以下是调帧率的代码 变量a就是帧率 要自己填
'''
while 1:time.sleep(1/a)zd(mz,6/a,180)zd(fz,0.1/a,140)zd(sz,0.025/3/a)turtle.update()
'''

_____________________________________________________________________________

总览:

import turtle,time,datetime
date=datetime.datetime.now()
turtle.tracer(0)
mz=turtle.Turtle()
fz=turtle.Turtle()
fz.pensize(3)
sz=turtle.Turtle()
sz.pensize(5)
bg=turtle.Turtle()
bg.ht()
bg.pu()
bg.goto(0,-200)
for i in [6,5,4,3,2,1,12,11,10,9,8,7]:bg.write(i,font=('斜体',20,'normal'))bg.circle(200,30)
bg.goto(0,-210)
bg.pd()
bg.pensize(5)
bg.circle(220)
def zd(pen,ds,cd):pen.clear()pen.pu()pen.goto(0,0)pen.pd()pen.right(ds)pen.fd(cd)
zd(mz,int(date.strftime('%S'))*6-90,180)
zd(fz,int(date.strftime('%M'))*6-90,140)
zd(sz,int(date.strftime('%H'))*30-90,100)
while 1:time.sleep(0.1)zd(mz,0.6,180)zd(fz,0.01,140)zd(sz,0.025/30,100)turtle.update()

未登录的复制渠道:

import turtle,time,datetime
date=datetime.datetime.now()
turtle.tracer(0)
mz=turtle.Turtle()
fz=turtle.Turtle()
fz.pensize(3)
sz=turtle.Turtle()
sz.pensize(5)
bg=turtle.Turtle()
bg.ht()
bg.pu()
bg.goto(0,-200)
for i in [6,5,4,3,2,1,12,11,10,9,8,7]:
    bg.write(i,font=('斜体',20,'normal'))
    bg.circle(200,30)
bg.goto(0,-210)
bg.pd()
bg.pensize(5)
bg.circle(220)
def zd(pen,ds,cd):
    pen.clear()
    pen.pu()
    pen.goto(0,0)
    pen.pd()
    pen.right(ds)
    pen.fd(cd)
zd(mz,int(date.strftime('%S'))*6-90,180)
zd(fz,int(date.strftime('%M'))*6-90,140)
zd(sz,int(date.strftime('%H'))*30-90,100)
while 1:
    time.sleep(0.1)
    zd(mz,0.6,180)
    zd(fz,0.01,140)
    zd(sz,0.025/30,100)
    turtle.update()
_____________________________________________________________________________

MVP结算:

本期字数:4763

本期质量分:85

15赞Python 30赞c++ 10赞花絮

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/401682.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云动态摘要 2024-08-12

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 全球加速 GA - 新增“巴西(圣保罗)”、“沙特(利雅得)”接入点 华为云 2024-08-12 全球加速服务新增开通“巴西(圣保罗)”、“沙特&a…

CAN总线-----帧格式

目录 前言 一、CAN总线帧格式分类 1.数据帧(重点) 2.遥控帧 3.错误帧 4.过载帧 5.间隔帧 二、位填充 三、波形实例 前言 本期我们就开始学习CAN总线的帧格式,对应帧格式的话,在前面我们学习I2C协议和SPI协议等协议的时候…

使用功率器件比如MOSFET瞬态热阻曲线计算参数

使用功率器件比如MOSFET瞬态热阻曲线计算参数 1.概述2.查看 ZθJC 图3.使用 ZθJC 图估算结温升4.应用案例5.使用 ZθJC 图估算 MOSFET 峰值电流能力6.应用实例 资料来自网络,仅供学习使用 1.概述 功率 MOSFET 数据表包括归一化瞬态热阻抗图:结至外壳 …

怎么将pdf转为ppt文件?pdf转ppt的8个方法

在诸多职场与学术交流的场合中,我们时常面临将详尽的PDF文件转化为生动且易于编辑的PPT演示文稿的需求。这一转换不仅是为了满足演示时的灵活性,更是为了提升信息传递的效率与观众的理解度。从简单的在线工具到功能全面的专业软件,我们拥有多…

概要设计遇到需求变更,6大应对措施

有效地应对概念设计过程中的需求变更,有助于项目灵活适应市场与用户变化,减少后期调整成本,提升产品竞争力与用户满意度,促进项目顺利推进和高质量交付。未能及时有效应对概念设计中的需求变更,往往会导致项目偏离原定…

“论NoSQL数据库技术及其应用”写作框架,软考高级,系统架构设计师

论文真题 随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0 网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展…

[C++] STL (multi)map/(multi)set简介

标题:[C] STL (multi)map/(multi)set简介 水墨不写bug 目录 前言: 一、set简介 1.set简介 2.set的常见用法 二、map简介 1.map简介 2.map使用 三、multiset简介 1.multiset简介 2.multiset使用 四、multimap简介 1.multimap简介 2.multim…

24小时不间断守护:输电线路防山火在线监测装置|防山火利器

24小时不间断守护:输电线路防山火在线监测装置|防山火利器 “一年之计在于秋”虽然传统上强调秋季作为收获与规划的重要时节,但同时也提醒我们,这个季节也伴随着一系列的自然挑战,如火灾风险的增加。针对输电线路而言&#xff0c…

制造业生产管理的困境及MES系统解决方案介绍:盘古信息IMS

在当今竞争激烈的制造业环境中,企业面临着前所未有的生产管理挑战。从计划执行的灵活性不足、过程监控的缺失,到质量控制的挑战、供应链协同的难题,每一个环节都亟需创新与优化。盘古信息MES系统,作为全球领先的制造运营管理工业软…

秋招突击——8/15——知识补充——垃圾回收机制

文章目录 引言正文指针引用可达性分析算法垃圾回收算法标记清除算法标记整理算法复制分代收集 垃圾收集器Serial收集器ParNew并行收集器Parallel Scavenge吞吐量优先收集器Serial Old老年代收集器Parallel old收集器CMS收集器G1收集器(Garbage First垃圾优先&#x…

MySQL:查询(万字超详细版)

💎所属专栏: MySQL 💎1. 单表查询 💎1.1 全列查询和指定列查询 全列查询: select * from exam; 在实际开发中不要使用 * 来进行查询,因为数据库会很大,影响效率 指定列查询: se…

IPC进程间通信

信号 信号是一种终端机制,程序运行到一半的时候接收到了某种通知,程序就会立刻中断运行,转而去处理通知。 登记信号 一个进程只会接收默认的几个信号 如果想要让一个进程接收特定信号的话,必须提前在该进程中登记一下想要接收…

如何进行长截图的两种方法

前言 本文主要讲2种截图方式,分别是谷歌和QQ。 谷歌分为Web端 和 移动端,选一种即可。 第一种:谷歌浏览器控制台自带的 1.先把控制台语言更改为中文,方便查看 ①.按F12,点击设置面板 ②.修改语言为中文并关闭 ③.点击…

2024-08-07升级记录:北斗卫星导航系统轨道信息解释

北斗三号全球星座由地球静止轨道(GEO)、倾斜地球同步轨道(IGSO)、中圆地球轨道(MEO)三种轨道卫星组成,北斗人称这三种卫星为“北斗三兄弟”。 三种轨道区别: 1、GEO卫星 位于距地球约…

MySQL索引的性能优化

1.数据库服务器的优化步骤 在数据库调优中,我们的目标就是响应时间更快,吞吐量更大。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢&#xf…

腾讯云AI代码助手 —— 编程新体验,智能编码新纪元

阅读导航 引言一、开发环境介绍1. 支持的编程语言2. 支持的集成开发环境(IDE) 二、腾讯云AI代码助手使用实例1. 开发环境配置2. 代码补全功能使用💻自动生成单句代码💻自动生成整个代码块 3. 技术对话3. 规范/修复错误代码4. 智能…

python-NLP:4句法分析

文章目录 句法分析概述句法分析分类句法分析任务 句法结构分析基本概念语法形式化基本方法 依存句法分析浅层句法分析 句法分析概述 句法分析(syntacticparsing)是自然语言处理中的关键技术之一,其基本任务是确定句子的句法结构(syntactic structure)或句子中词汇之…

简单回归问题实战

数据表:链接: https://pan.baidu.com/s/1sSz7F_yf_JeumXcP4EjE5g?pwd753f 提取码: 753f 核心流程: import numpy as np # 计算误差函数 points是数据集中数据的位置 def compute_error_for_line_given_points(b,w,points):totalError0for i in range(0…

虚幻5|入门AI行为树,建立敌人

本章分成两块部分一块是第一点的制作一个简单的AI,后面第二点之后是第二部分建立ai行为树。这两个部分是一个衔接,最好不要跳看 一,制作一个简单的AI 1.首先,我们创建一个敌人的角色蓝图,添加一个场景组件widget用于…

Xmind 8思维导图(含补丁)

Xmind 8思维导图(含补丁) 什么是思维导图?如何下载Xmind8Xmind 8软件简单使用获取Xmind 8 补丁 什么是思维导图? 数据结构、电路模拟等学习路线,老师都有叫画思维导图,那时候我只知道上网copy,…