步驟:
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()