步骤:
1.观察数字0-9,找出规律。如图:

1-1.顺序: g-c-d-e-f-a-b (从g开始向右画线段,转弯,画线,转弯,画线,转弯,这样画数字比较有规律,不会走重复路线,也方面使用for 循环)
以‘2’为例,第一笔为g,相同规律的还有3,4,5,6,8,9,把这些数字建成列表。
以此类推:第二笔为c:0, 1, 3, 4, 5, 6, 7, 8, 9
第三笔为d:0, 2, 3, 5, 6, 8, 9
......
2.导入turtle,time库
3.开始画图
4.关键:4-1.画出一个数字
4-2.画出2019,10, 28 一串数字
4-3.画出年,月,日 并格式化
import turtle #导入海龟库
import time #导入时间库
t = turtle.Pen() #生成画笔
t.shape("turtle") #画笔形状
t.speed(0) #画笔速度
def drawGap(): #定义画笔空隙
t.up()
t.fd(5)
t.down()
def drawline(flag): #定义画笔,if成立开始画线,不成立则拿起画笔走“虚线”
if flag: #(不管条件成不成立,画笔都要往前走并向右转90度)
t.down()
else:
t.up()
t.fd(40)
t.right(90)
def drawdigit(num): #开始画数字,如果在数字列表里,走画出相应的线段
drawline(True) if num in [2, 3, 4, 5, 6, 8, 9] else drawline(False)
drawline(True) if num in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawline(False)
drawline(True) if num in [0, 2, 3, 5, 6, 8, 9] else drawline(False)
drawline(True) if num in [0, 2, 6, 8] else drawline(False)
t.left(90)
drawline(True) if num in [0, 4, 5, 6, 8, 9] else drawline(False)
drawline(True) if num in [0, 2, 3, 5, 6, 7, 8, 9] else drawline(False)
drawline(True) if num in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] else drawline(False)
t.up() #拿起笔,向左转180,再向前走20,为画下一个数字准备
t.left(180)
t.fd(20)
# if num in [2, 3, 4, 5, 6, 8, 9]:
# t.down()
# t.fd(40)
# t.right(90)
# if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]:
# t.fd(40)
# t.right(90)
# if num in [0, 2, 3, 5, 6, 8, 9]:
# t.fd(40)
# t.right(90)
# drawdigit(2)
def get_data(data): #定义得到数据,并时间格式改为2019年10月28日
for i in data:
if i == '/':
t.write('年', font=("Arial", 20, "normal"))
t.pencolor('green')
elif i == '-':
t.write('月', font=("Arial", 20, "normal"))
t.pencolor('blue')
t.up()
t.fd(40)
t.down()
elif i == '+':
t.write("日", font=("Arial", 20, "normal"))
t.up()
t.goto(-200, 100)
t.down()
t.write("Happy Day ", font=("Arial", 40, "normal"))
else:
drawdigit(eval(i))
def main(): #定义一个主流程
t.up()
t.backward(300)
t.down()
t.pencolor("red")
t.pensize(5)
get_data(time.strftime('%Y/%m-%d+', time.gmtime()))
t.hideturtle()
main()
turtle.done()
