# 七段数码管的绘制

1.IPO描述;

2.学习目的：

1. 理解使用turtle库，
2. 理解函数及其封装的价值

#DrawSevenSegDisplay.py
import turtle, datetime
def drawGap():#绘制数码管间隔
turtle.penup()
turtle.fd(5)
def drawLine(draw):#绘制单段数码管
drawGap()
turtle.pendown() if draw else turtle.penup()
turtle.fd(40)
drawGap()
turtle.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)
turtle.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)
turtle.left(180)
turtle.penup()
turtle.fd(20)
def drawDate(date):
turtle.pencolor("red")
for i in date:
if i == '-':
turtle.write('年', font=("Arial ",18, "normal"))
turtle.pencolor("green")
turtle.fd(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)
turtle.penup()
turtle.fd(-350)
turtle.pensize(5)
drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))
turtle.hideturtle()
main()



  drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)


if d in [2, 3, 4, ,5, 6, 8, 9]
drawLine (True)
else:
drawLine(False)


drawLine()函数根据输出参数的值（True或False），决定是否抬起画笔
drawDate()函数将更长数字分解为单个数字，进一步调用drawDigit()分别画质每个数字。
main()函数将启动窗体大小、设置画笔宽度、设置系统弄时间等功能封装在一起。

08-24

12-12
08-02
02-19
01-22 2万+
04-09 2064
04-11 161