import turtle,time
# 绘制单段数码管
#每次画笔描绘 真假 长度 描绘完成之后向右旋转角度
def drawGap():#每段描绘空格5像素
turtle.penup()
turtle.fd(5)
def drawLine(draw):#每一笔描绘的过程
drawGap()
turtle.pendown() if draw else turtle.penup()# 如果draw是真 画笔落下 假 画笔抬起
turtle.fd(40)#向前前进40像素
drawGap()
turtle.right(90)#向右转90度
def drawDigit(digit):
#当该笔画在数字中的笔画需要落下时 就调用真 不需要则调用假
#下面的列表内是数字格式
drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,6,8] else drawLine(False)
turtle.left(90)# 因为下面部分描绘完成 当前默认向右旋转了,接下来需要描绘上半部分,回正
drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False)
drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False)
drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
turtle.left(180)# 绘制完毕一个 那么 这时的方向是向左的 旋转180度 向右
turtle.penup()#抬起画笔
turtle.fd(20)#向前隔开20像素
def drawDate(date):#date为日期 格式如'2021-03=01+'
turtle.pencolor("red")#默认红色为年
for i in date:#循环每个字符串
if i =="-":
turtle.write("年",font=("Arial",18,"normal"))#描写的字符串 字体 大小
turtle.pencolor("green")#字体颜色
turtle.fd(40)#向前进40像素
elif i =="=":
turtle.write("月",font=("Arial",18,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i =="+":
turtle.write("日",font=("Arial",18,"normal"))
else:
drawDigit(eval(i))# 把字符串转换为数字格式
def main():
turtle.setup(800,350,200,200)#桌面的窗口大小宽度为800 高度350 距离桌面左上角的高度200左边宽度200
turtle.penup()
turtle.fd(-300)#向中心点左移300像素开始
turtle.pensize(5)#画笔宽度5像素
# drawDate("2021-03=18+")#设定固定的字符串
#自定义则为
# drawDate = input("请输入日期【年月日】如:2021-03=18+")
#自动获取时间
# time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间
# time.strftime(<填充格式>,<gmtime() 函数将一个时间戳转换为UTC时区>)
drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
turtle.hideturtle()#隐藏画笔的turtle形状
turtle.done()#必须是乌龟图形程序中的最后一个语句
#调用函数
main()
Python turtle draws the date and time of the seven-segment digital tube (note)
Guess you like
Origin blog.csdn.net/weixin_47021806/article/details/115019711
Recommended
Ranking