看mooc看到了這道題,挺有意思的。簡單寫了下。**寫得不好看,有建議的話請提出來,學習嘛!
總體效果如圖:
**如下:
import turtle
import time
# 繪製數字
def draw(pen, x, y, num_list):
# 固定開始位置
pen.penup()
pen.goto(x, y)
# 遍歷數碼管的每一塊
for i in range(1, 8):
# 最後一塊需要重定位
if i == 7:
pen.penup()
pen.goto(x, y - 60)
# 每一塊的前後新增縫隙
gap(pen, i, num_list)
pen.forward(50)
gap(pen, i, num_list)
# 掃瞄到第2、5、7塊不許要改變方向
if i not in [2, 5, 7]: pen.right(90)
# 數碼管的每一塊之間的縫隙
def gap(p, i, num_list):
if i in num_list:
p.penup()
p.forward(6)
pen.pendown()
else:
p.penup()
p.forward(6)
if __name__ == '__main__':
# 啟用turtle
pen = turtle.turtle()
# 設值畫筆大小
pen.pensize(5)
# 隱藏畫筆
pen.hideturtle()
# 設值數字對應的數碼管塊
point =
date = input("請輸入日期(例如:20091101)")
# 初始化座標
x, y = 0, 0
# 遍歷輸入的字串
for i in range(len(date) + 1):
try:
if i == 0:
pen.pencolor("red")
elif i == 4:
pen.penup()
pen.goto(x + 95, y - 60)
pen.write('年', font=("arial", 20, "normal"))
pen.pencolor("green")
x += 150
elif i == 6:
pen.penup()
pen.goto(x + 95, y - 60)
pen.write('月', font=("arial", 20, "normal"))
pen.pencolor("blue")
x += 150
elif i == 8:
pen.penup()
pen.goto(x + 95, y - 60)
pen.write('日', font=("arial", 20, "normal"))
break
else:
x += 75
draw(pen, x, y, point[date[i]])
except keyerror:
print("您輸入的不是數字")
time.sleep(5)
繪製七段數碼管
seven digits draw v1.0 第一,繪製線 第二,繪製七段數碼管組成的數字 第三,繪製優化數碼管間距 第四,繪製多組數字 第五,獲取系統時間 第六,主函式執行程式。如下 import turtle as t import time def drawline draw drawgap ...
七段數碼管繪製
步驟1 繪製單個數字對應的數碼管 步驟2 獲得一串數字,繪製對應的數碼管 步驟2 獲得當前系統時間,繪製對應的數碼管 步驟1 繪製單個數字對應的數碼管 基本問題是繪製一條線,可將其定義為乙個基本函式 def drawline draw turtle.pendown if draw else turt...
七段數碼管繪製
七段數碼管繪製 import turtle as t import time as t def drawgap 繪製數碼管的間隔 t.penup t.fd 5 def drawline draw 繪製單段數碼管,draw為true時,則實畫 drawgap t.pendown if draw els...