python七彩數碼管繪製

2021-08-11 18:13:03 字數 1815 閱讀 6772

看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...