代码效果:
获取本地时间并使用turtle库绘制数码晶体管图,效果如下:

'''
from turtle import *
from time import *
def drawGap(): #绘制数码管间隔
penup()
fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
pendown() if draw else penup()
fd(40)
drawGap()
right(90)
def drawDigit(dight):
drawLine(True) if dight in '2,3,4,5,6,8,9' else drawLine(False)
drawLine(True) if dight in '0,1,3,4,5,6,7,8,9' else drawLine(False)
drawLine(True) if dight in '0,2,3,5,6,8,9' else drawLine(False)
drawLine(True) if dight in '0,2,6,8' else drawLine(False)
left(90)
drawLine(True) if dight in '0,4,5,6,8,9' else drawLine(False)
drawLine(True) if dight in '0,2,3,5,6,7,8,9' else drawLine(False)
drawLine(True) if dight in '0,1,2,3,4,7,8,9' else drawLine(False)
if dight in '-':
pendown()
fd(40)
penup()
fd(-40)
left(180)
penup()
fd(20)
# gmtime获取格林尼治时间 localtime获取本地时间
timestr=strftime('%y-%m-%d-%H-%M-%S',localtime())
print(timestr)
setup(1600, 350, 0, 200)
penup()
fd(-650)
pensize(5)
pencolor('red')
for i in timestr:
drawDigit(i)
done()
'''
import turtle as t
import time
def drawGap(): #绘制数码管间隔
t.penup()
t.fd(5)
def drawLine(draw): #绘制单段数码管
drawGap()
t.pendown() if draw else t.penup()
t.fd(40)
drawGap()
t.right(90)
def drawDigit(d): #根据数字绘制七段数码管
drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,6,8] else drawLine(False)
t.left(90)
drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
t.left(180)
t.penup()
t.fd(20)
def drawDate(date):
t.pencolor("red")
for i in date:
drawDigit(eval(i))
def main():
t.setup(800, 350, 200, 200)
t.penup()
t.fd(-300)
t.pensize(5)
drawDate(time.strftime('%Y%m%d',time.gmtime()))
t.done()
main()
该代码示例展示了如何利用Python的turtle图形库,结合time模块获取本地时间,然后绘制出时间的数码晶体管显示。通过定义drawGap和drawLine函数来构建数码管的各个部分,drawDigit函数用于根据数字绘制七段数码管。最后,程序会将当前日期和时间以特定格式绘制在画布上。

537

被折叠的 条评论
为什么被折叠?



