精华内容
下载资源
问答
  • 语言:PythonIDE:Python.IDE一、编写时钟程序,要求根据时间动态更新代码思路需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字Step1:建立Turtle对象并初始化Step2:静态表盘绘制Step3:根据时钟...

    B3eABj.jpg

    B3eABj.jpg

    语言:Python

    IDE:Python.IDE

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

    代码思路

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

    Step1:建立Turtle对象并初始化

    Step2:静态表盘绘制

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

    基本库:Turtle、datetime

    效果图

    mA7NVn.jpg

    mA7NVn.jpg

    代码也很简单

    from turtle import *

    from datetime import *

    import time,sys,os

    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, minHand, 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 = ["Python学习群:516107834", "Python学习群:516107834", "Python学习群:516107834",

    "Python学习群:516107834", "Python学习群:516107834", "Python学习群:516107834", "Python学习群:516107834"]

    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), align="center",

    font=("Courier", 14, "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()

    qEfYVv.jpg

    qEfYVv.jpg

    展开全文
  • 代码资源来自:一、完整代码:#coding=UTF-8from turtle import *from datetime import *def Skip(step): #建立表的外框penup()forward(step)pendown()def mkHand(name,length): #注册turtle形状,建立表针...

    代码资源来自:

    一、完整代码:

    #coding=UTF-8

    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()

    register_shape(name,handForm)defInit():globalsecHand,minHand,hurHand,printer

    mode("logo") #重置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 insecHand,minHand,hurHand:

    hand.shapesize(1,1,3)

    hand.speed(0)

    printer= Turtle() #建立输出文字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)defWeek(t):

    week= ["Mon", "Tues", "Wed","Thur", "Fri", "Sat", "Sun"]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)

    hurHand.setheading(30*hour)

    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()

    tracer(True)

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

    defmain():

    tracer(False)

    Init()

    SetupClock(160)

    tracer(True)

    Tick()

    mainloop()if __name__ == "__main__":

    main()

    二、运行结果截图

    753619-20181029215102286-1803955228.png

    三、程序解读

    1、思路

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

    Step1:建立5个Turtle对象并初始化 (表盘绘制和文本输出对象是turtle常见的对象方式;turtle的外观shape就是指针形状,在每一时刻以轴心为圆心旋转了一定角度)

    Step2:静态表盘绘制

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

    基本库:Turtle、datetime

    2、代码

    (1)fromturtle import *

    Turtle库——Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟(画笔),在一个横轴为x、纵轴为y的坐标系(画布),根据一组函数指令的控制,在平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    操纵海龟绘图有3种命令:

    运动命令

    753619-20181030192817905-938506799.png

    画笔控制命令

    753619-20181030192846423-1004948404.png

    全局控制命令

    753619-20181030192903771-323905135.png

    还有其他命令

    753619-20181030192934789-1770734971.png

    (2)from datetime import *

    datetime模块重新封装了time模块,提供了更多处理日期和时间的接口。包含以下几个类和两个常量:

    753619-20181030202909771-668396757.png

    753619-20181030203807416-745140493.png

    每个类中定义了很多属性和方法,包括对时间的调用及格式转换等问题在此不再赘述。

    (3)几个重要的函数 (代码中的函数写成mode(),而不用写成turtle.mode(),是因为turtle是python的标准库,在python项目里不会提示"unresolved reference "xxx’”,但在解释器为python2.7的python文件中不会有提示。此提示不影响代码运行)

    SetupClock(radius): 绘制表盘,表盘半径radius为参数

    设置画笔大小,通过60次循环绘制刻度,每5个刻度为短线段,其余为小圆点。

    Skip(step): 由于表盘刻度不连续,需频繁抬起画笔,放下画笔

    mkHand(name,length): 定义指针几何形状。

    使用两个函数begin_poly() 、end_poly()记录多边形形状,register_shape函数将handForm几何形状注册为合法的turtle外形.

    Init(): 初始化表针和文本对象

    Tick(): 绘制表针的动态显示

    获取当前的时分秒,设置每个指针转动的角度,绘制星期与日期文本,每隔100ms调用此函数更新时间

    tracer(False) : 实现绘制的效果同时出现,用tracer函数控制刷新,false时动画关闭,绘制结束后一致刷新;true时恢复动画的绘制效果

    mainloop(): 启动事件循环 -调用Tkinter的mainloop函数。必须是乌龟图形程序中的最后一个语句。

    the end.......

    展开全文
  • 本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def skip(step): penup() forward(step) pendown() #画指针 ...
  • Python Turtle绘制动态时钟 好久没更新我的博客了,也不想多说什么了,Python的一个副产品,可能网络上到处都是,直接呈现代码吧! # -*-coding=utf-8 import turtle from datetime import * # 抬起...

    • 好久没更新我的博客了,也不想多说什么了,Python的一个副产品,可能网络上到处都是,直接呈现代码吧!
    
    	# -*-coding=utf-8
    	  
    	import turtle
    	from datetime import *
    	  
    	# 抬起画笔,向前运动一段距离放下
    	def Skip(step):
    	    turtle.penup()
    	    turtle.forward(step)
    	    turtle.pendown()
    	  
    	def mkHand(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)
    	  
    	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)
    	    
    	    # 建立输出文字Turtle
    	    printer = 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.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)
    	     
    	    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)
    	  
    	def main():
    	    # 打开/关闭龟动画,并为更新图纸设置延迟。
    	    turtle.tracer(False)
    	    Init()
    	    SetupClock(160)
    	    turtle.tracer(True)
    	    Tick()
    	    turtle.mainloop()
    	  
    	if __name__ == "__main__":
    	    main()
    
    展开全文
  • 代码资源来自:一、完整代码:#coding=UTF-8from turtle import *from datetime import *def Skip(step): #建立表的外框penup()forward(step)pendown()def mkHand(name,length): #注册turtle形状,建立表针...

    代码资源来自:

    一、完整代码:

    #coding=UTF-8

    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()

    register_shape(name,handForm)defInit():globalsecHand,minHand,hurHand,printer

    mode("logo") #重置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 insecHand,minHand,hurHand:

    hand.shapesize(1,1,3)

    hand.speed(0)

    printer= Turtle() #建立输出文字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)defWeek(t):

    week= ["Mon", "Tues", "Wed","Thur", "Fri", "Sat", "Sun"]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)

    hurHand.setheading(30*hour)

    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()

    tracer(True)

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

    defmain():

    tracer(False)

    Init()

    SetupClock(160)

    tracer(True)

    Tick()

    mainloop()if __name__ == "__main__":

    main()

    二、运行结果截图

    753619-20181029215102286-1803955228.png

    三、程序解读

    1、思路

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

    Step1:建立5个Turtle对象并初始化 (表盘绘制和文本输出对象是turtle常见的对象方式;turtle的外观shape就是指针形状,在每一时刻以轴心为圆心旋转了一定角度)

    Step2:静态表盘绘制

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

    基本库:Turtle、datetime

    2、代码

    (1)fromturtle import *

    Turtle库——Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟(画笔),在一个横轴为x、纵轴为y的坐标系(画布),根据一组函数指令的控制,在平面坐标系中移动,从而在它爬行的路径上绘制了图形。

    操纵海龟绘图有3种命令:

    运动命令

    753619-20181030192817905-938506799.png

    画笔控制命令

    753619-20181030192846423-1004948404.png

    全局控制命令

    753619-20181030192903771-323905135.png

    还有其他命令

    753619-20181030192934789-1770734971.png

    (2)from datetime import *

    datetime模块重新封装了time模块,提供了更多处理日期和时间的接口。包含以下几个类和两个常量:

    753619-20181030202909771-668396757.png

    753619-20181030203807416-745140493.png

    每个类中定义了很多属性和方法,包括对时间的调用及格式转换等问题在此不再赘述。

    (3)几个重要的函数 (代码中的函数写成mode(),而不用写成turtle.mode(),是因为turtle是python的标准库,在python项目里不会提示“unresolved reference "xxx’”,但在解释器为python2.7的python文件中不会有提示。此提示不影响代码运行)

    SetupClock(radius): 绘制表盘,表盘半径radius为参数

    设置画笔大小,通过60次循环绘制刻度,每5个刻度为短线段,其余为小圆点。

    Skip(step): 由于表盘刻度不连续,需频繁抬起画笔,放下画笔

    mkHand(name,length): 定义指针几何形状。

    使用两个函数begin_poly() 、end_poly()记录多边形形状,register_shape函数将handForm几何形状注册为合法的turtle外形.

    Init(): 初始化表针和文本对象

    Tick(): 绘制表针的动态显示

    获取当前的时分秒,设置每个指针转动的角度,绘制星期与日期文本,每隔100ms调用此函数更新时间

    tracer(False) : 实现绘制的效果同时出现,用tracer函数控制刷新,false时动画关闭,绘制结束后一致刷新;true时恢复动画的绘制效果

    mainloop(): 启动事件循环 -调用Tkinter的mainloop函数。必须是乌龟图形程序中的最后一个语句。

    the end.......

    展开全文
  • Python简单时钟

    2020-11-19 22:54:20
    Python提供了time库用于时间的相关操作,我们可以用它来写一个简单的时钟。 2,代码实现 import time import os while True: #格式化本地时间 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) time...
  • Python基础 用Python实现时钟显示

    千次阅读 2018-04-10 13:08:45
    语言:Python IDE:Python.IDE编写时钟程序,要求根据时间动态更新 代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Turtle对象并初始化 Step2:静态表盘绘制 Step3:根据时钟...
  • "星期四","星期五","星期六","星期日"] 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....
  • 1.编写时钟程序,要求根据时间动态更新 2.代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Turtle对象并初始化 Step2:静态表盘绘制 Step3:根据时钟更新表针位置与时间...
  • 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....
  • 在实现动态时钟时,需要使用python内置的datetime模块与turtle模块。 1.datetime模块 import datetime (1)datetime模块中datetime类的today()方法,用于返回一个表示当前本地日期时间的datetime对象。 datetime....
  • 编写时钟程序,要求根据时间动态更新 代码思路 需求:5个Turtle对象, 1个绘制外表盘+3个模拟表上针+1个输出文字 Step1:建立Turtle对象并初始化 Step2:静态表盘绘制 Step3:根据时钟更新表针位置与时间信息 ...
  • python小程序—即时动态时钟

    千次阅读 2019-03-01 18:35:48
    1.完整代码: # coding=UTF-8 from turtle import * from datetime import * def Skip(step): #建立表的外框 penup() forward(step) pendown() def mkHand(name,length): #注册turtle形状,建立表针tur...
  • 二、代码 #!/usr/bin/python # coding=utf-8 version = "0.0.1" import signal signal.signal(signal.SIGINT, signal.SIG_IGN) # ctrl+c import curses import time import datetime import os impo
  • 代码 from datetime import date, timedelta, datetime import calendar # 输入想要获取的年月份 cal = calendar.month(2020, 9) print(cal) m = datetime.now().month y = datetime.now().year ndays = (date(y...
  • 利用turtle库、datetime库和time库,获取并描绘出现在的系统时间,并且时间具有动态刷新功能,即每秒刷新一次。 实现代码如下: from turtle import * from datetime import datetime import time def drawGap(): ...
  • python七段数码管时钟 python七段数码管时钟(静态刷新版) 仿照”七段数码管绘制“编写一段程序,实现如下的时钟效果 图片要求 直接上代码 import turtle as t import time def pen(): t.up() t.fd(6) t.down() def ...
  • 干货必看 | Python的turtle库之时钟

    千次阅读 多人点赞 2020-12-21 15:32:09
    Python的turtle库的易...下面教各位使用Python中的turtle库实现动态时钟。 (一)整体代码 #coding=utf-8 import turtle from datetime import * #抬起画笔,向前运动一段距离放下 def Skip(step): turtle.penup() .
  • 数码管显示时间,动态刷新 运行截图 源代码 from turtle import * #导入turtle包 from datetime import datetime import time def drawLine(draw, length): # 绘制单段数码管 if (draw): #if函数,绘制六边形路径...
  • Brython被用来设计为替代JavaScript,...在Demo网站上(http://www.brython.info/)显示了一个HTML5动态时钟,不过右键点击查看页面源代码,就会发现,应用并非使用JavaScript代码,其脚本类型是“text/python”。...
  • 动态类型语言,支持面向对象和函数式编程 代码规范程度高,可读性强 Python在以下领域都有用武之地。 后端开发 - Python / Java / Go / PHP DevOps - Python / Shell / Ruby 数据采集 - Python / C++ / Java 量化...
  • ├── 动态数组.cpp ├── 字典插入与查找.cpp ├── 异常捕获.cpp ├── 类模板之栈.cpp ├── 类模板特化之数组.cpp ├── 继承与封装.cpp ├── 读写文件综合题.cpp ├── 输入输出运算符重载.cpp ├──...
  • 6.8 动态加入环 113 6.9 安全 114 6.9.1 使用SimpleAuthenticator 114 6.9.2 编程鉴权 117 6.9.3 使用MD5加密 118 6.9.4 提供你自己的鉴权算法 118 6.10 杂项设置 119 6.11 附加工具 120 6.11.1 ...
  • Backgrounds V1.4.7:一款系统增强及美化软件,可以让桌面动态信息显示、将视频作为动态桌面、当iTunes播放音乐的时候显示音乐专辑等等 2Do V2.3.2 :一款极简易用的任务管理软件 Things V3.8:一款优秀的GTD任务...
  • ✅ 微信公众号代码高亮插件:Chrome扩展,可以在公众号文章插入代码高亮,支持多个高亮主题自选,行号和二次编辑 - 更多介绍 2019年12月9号添加 nicejade(ShenZhen) - Github, 博客 ✅ Arya - 在线 Markdown...
  • Tcl_TK编程权威指南pdf

    热门讨论 2011-03-25 09:30:55
    使用cgi创建动态页面 guestbook.cgi脚本程序 定义表单以及处理表单数据 cgi.tcl软件包 接下去的几步 第4章 tcl中的字符串处理 string命令 append命令 format命令 scan命令 binary命令 相关章节 第5章...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

python动态时钟代码

python 订阅