语言:Python

IDE:Python.IDE

1.编写时钟程序,要求根据时间动态更新

2.代码思路

需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字

Step1:建立Turtle对象并初始化

Step2:静态表盘绘制

Step3:根据时钟更新表针位置与时间信息

基本库:Turtle、datetime

3.代码段

from turtle import *

from datetime import *

def Skip(step):

penup()

forward(step)

pendown()

def mkHand(name,length):

#注册Turtle形状,建立表针Turtle

reset()

Skip(-length*0.1)

begin_poly()

forward(length*1.1)

end_poly()

handForm = get_poly()

#注册Turtle形状命令register_shape(name,shape=None)

register_shape(name,handForm)

def Init():

global secHand,minHand,hurHand,printer

mode("logo")# 重置Turtle指向北

#建立三个表针Turtle并初始化

#第二个参数为长度

mkHand("secHand",125)

mkHand("minHand",130)

mkHand("hurHand",90)

secHand = Turtle()

secHand.shape("secHand")

minHand = Turtle()

minHand.shape("minHand")

hurHand = Turtle()

hurHand.shape("hurHand")

for hand in secHand,hurHand:

hand.shapesize(1,1,3)

hand.speed(0)

#建立输出文字Turtle

printer = Turtle()

printer.hideturtle()

printer.penup()

def SetupClock(radius):

#建立表的外框

reset()

pensize(7)

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.000001

minute = t.minute + second/60.0

hour = t.hour + minute/60.0

secHand.setheading(6*second)

minHand.setheading(6*minute)

hurHand.setheading(30*hour)

#介入Tracer函数以控制刷新速度

tracer(False)

printer.forward(65)

printer.write(Week(t),align="center",font=("Courier",14,"bold"))

printer.back(130)

printer.write(Date(t),"bold"))

printer.home()

tracer(True)

ontimer(Tick,100)#100ms后继续调用tick

def main():

tracer(False)

Init()

SetupClock(160)

tracer(True)

Tick()

mainloop()

if __name__ == "__main__":

main()

补充:

Python实现时钟

1.小时钟获取当前时间并用打印在Console上

2.上代码

import time,sys,os

while(1):

t = time.strftime('%H:%M:%S',time.localtime(time.time()))

sys.stdout.write(t+'\b'*10)

sys.stdout.flush()

time.sleep(0.1)

os.system('cls')

3.解释

第一步:导入time,sys,os模块

第二部:实现无限循环

第三步:实现格式化输出,具体的详细使用方法,参见:这里

第四部:重定向到Console上

第五步:刷新

第六步:间隔0.1执行一次

第七步:清屏

python数码时钟代码_Python实现时钟显示效果思路详解相关推荐

  1. python统计汉字字数_Python 统计字数的思路详解

    问题描述: 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一个元组列表,包含出现次数最高的 n 个单词及其次 ...

  2. python处理excel大数据-Python实现大数据收集至excel的思路详解

    一.在工程目录中新建一个excel文件 二.使用python脚本程序将目标excel文件中的列头写入,本文省略该部分的code展示,可自行网上查询 三.以下code内容为:实现从接口获取到的数据值写入 ...

  3. 怎么用python统计字数_Python统计字数的思路详解

    这篇文章主要介绍了Python 统计字数的思路详解,文中还给大家提供了不借助第三方模块的解决方法,感兴趣的朋友一起看看吧 问题描述: 用 Python 实现函数 count_words(),该函数输入 ...

  4. python多进程应用场景_python使用多进程的实例详解

    python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势. 针对计算密集型场景需要使用多进程,python的multipro ...

  5. python的socket模块_Python socket模块方法实现详解

    这篇文章主要介绍了python socket模块方法实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 socket ssh (不带防止粘包的方 ...

  6. python的底层实现_Python底层封装实现方法详解

    这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,python封装特性的实现纯属" ...

  7. python怎样实现封装_Python底层封装实现方法详解

    Python底层封装实现方法详解 这篇文章主要介绍了Python底层封装实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 事实上,pyth ...

  8. python实现括号匹配算法_Python实现括号匹配方法详解

    这篇文章主要简介了python实现括号匹配方法详解,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 1.用一个栈[python中可以用List]就可 ...

  9. python列转行函数_Python pandas 列转行操作详解(类似hive中explode方法)

    最近在工作上用到Python的pandas库来处理excel文件,遇到列转行的问题.找了一番资料后成功了,记录一下. 1. 如果需要爆炸的只有一列: df=pd.DataFrame({'A':[1,2 ...

  10. python线程池原理_Python定时器线程池原理详解

    这篇文章主要介绍了Python定时器线程池原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 定时器执行循环任务: 知识储备 Timer(int ...

最新文章

  1. PPT|工业互联网关键技术专利态势
  2. 高职职业技能测试题计算机,2019年高职高考职业技能测试信息技术考什么?
  3. 蓝桥杯 基础练习 十六进制转八进制
  4. android okgo参数,Android OkGo基本操作
  5. su、sudo、限制root远程登录
  6. 深入Redis持久化 1
  7. 科技信息它们叫嚣:没有我们,谈什么iPhone8!
  8. C语言—各种数据类型间的混合运算
  9. 学计算机买笔记本还是平板,学生买平板还是笔记本电脑好
  10. 如何批量实现通过MP3标题重命名文件名
  11. android监控树莓派,树莓派定制为无线便携监控摄像头
  12. 【PCB Layout】信号抗干扰经验总结
  13. 基础实验 7-2.1 魔法优惠券(25 分)
  14. explicit c++
  15. unity做一个小游戏(适合零基础或者巩固加深unity中的工具类的用法)
  16. 惠普找不到远程服务器,惠普笔记本搜不到wifi怎么办
  17. python字符串的查找
  18. 东财mysql作业_学习平台-15秋东财《MySQL数据库系统及应用》在线作业二(随机)-成人高等教育_成人本科教育报名_远程网络教育学院-江苏学历网报名服务中心...
  19. oracle中执行某sql语句后,如一系列delete、update等操作,怎么看影响的行数?如我执行了n个表的delete语句,得看我删除了多少数据,万一sql写的有问题,误删了数据,不是灾难?
  20. 收藏|机械工程师面试常问问题

热门文章

  1. Tesseract字体识别 及 jTessBoxEditor工具进行训练 及 Java API实现字体识别
  2. chrome的手机端调试
  3. 科技云报道:“吞金兽”ChatGPT背后:AI算力告急!
  4. 腾讯开源柠檬 Lemon
  5. 上帝视角,什么是生态思维(上)
  6. 关于驱动和设备的相关的注册表键的位置,和相关信息
  7. 魔力耳朵被豌豆思维全资收购,创始人金磊退出股东
  8. CAXA实体设计2020 怎么样对同一草图中的多个轮廓分别进行拉伸?
  9. SpringBoot数据脱敏
  10. php libmcrypt.dll下载,libmcrypt.dll 64位下载|