#七段数码管的绘制.py
from turtle import *
from random import *
import time
def drawGap():
penup()
fd(5)
def drawLine(draw):
drawGap()
if draw:
pendown()
else:
penup()
fd(40)
drawGap()
right(90)
def drawDight(digit):
pencolor(random(),random(),random())
drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
drawLine(True) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
drawLine(True) if digit in [0, 2, 6, 8] else drawLine(False)
pencolor(random(), random(), random())
left(90)
drawLine(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
pencolor(random(), random(), random())
left(180)
penup() # 为绘制后续数字确定位置
fd(20) # 为绘制后续数字确定位置
def drawDate(date):
for i in date:
if i == '-':
write('年', font=("Arial", 28, "normal"))
pencolor("orange")
fd(40)
elif i == '=':
write('月', font=("Arial", 28, "normal"))
pencolor("pink")
fd(40)
elif i == '+':
write('日', font=("Arial", 28, "normal"))
pencolor("yellow")
else:
drawDight(eval(i))
def main():
setup(800, 350, 200, 200)
penup()
fd(-300)
pensize(5)
drawDate(time.strftime('%Y-%m=%d+',time.localtime())) # 将模板设置为"小时-分钟=秒+"
hideturtle()
done()
main()
该博客展示了一个Python程序,用于使用turtle库绘制七段数码管,并结合random模块随机选择颜色来显示当前日期。程序首先定义了绘制数码管各部分的函数,然后根据时间模块获取的日期字符串绘制相应的数码管数字。最后,隐藏turtle并结束程序。
375

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



