繪製七段數碼管,turtle

2021-09-11 22:04:01 字數 4412 閱讀 2596

繪製單段數碼管

import turtle

import time

def drawline(draw):

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

turtle.right(90)

#根據數字繪製數碼管

def drawdigit(digit):

drawline(true) if digit in [2,3,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,1,3,4,5,6,7,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,6,8] else drawline(false)

turtle.left(90)

drawline(true) if digit in [0,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,7,8,9] else drawline(false)

drawline(true) if digit in [0,1,2,3,4,7,8,9] else drawline(false)

turtle.left(180)

turtle.penup()

turtle.fd(20)

def drawdate(date):

for i in date:

drawdigit(eval(i))

def main():

turtle.setup(800,400,200,200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

date1 = time.ctime()

date = filter(str.isdigit, date1)

drawdate(date)

turtle.hideturtle()

turtle.done()

main()

優化與改進

import turtle

import time

#繪製單段數碼管

def drawline(draw):

drawgap()

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

drawgap()

turtle.right(90)

def drawgap():

turtle.penup()

turtle.fd(5)

#根據數字繪製數碼管

def drawdigit(digit):

drawline(true) if digit in [2,3,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,1,3,4,5,6,7,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,6,8] else drawline(false)

turtle.left(90)

drawline(true) if digit in [0,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,7,8,9] else drawline(false)

drawline(true) if digit 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,400,200,200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawdate(time.strftime(』%y-%m=%d+』,time.gmtime()))

turtle.hideturtle()

turtle.done()

main()

python兩位數倒計時

import turtle

import time

#繪製單段數碼管

def drawline(draw):

turtle.speed(1000000)

drawgap()

turtle.pendown() if draw else turtle.penup()

turtle.fd(40)

drawgap()

turtle.right(90)

def drawgap():

turtle.penup()

turtle.fd(5)

#根據數字繪製數碼管

def drawdigit(digit):

drawline(true) if digit in [2,3,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,1,3,4,5,6,7,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,6,8] else drawline(false)

turtle.left(90)

drawline(true) if digit in [0,4,5,6,8,9] else drawline(false)

drawline(true) if digit in [0,2,3,5,6,7,8,9] else drawline(false)

drawline(true) if digit in [0,1,2,3,4,7,8,9] else drawline(false)

turtle.left(180)

turtle.penup()

def drawnumber(n):

turtle.pencolor(『red』)

for i in range(n, -1, -1):

if(i>=10):

drawdigit(i//10)

turtle.fd(20)

drawdigit(i%10)

time.sleep(0.5)

turtle.clear()

turtle.penup()

turtle.fd(-100)

turtle.pendown()

else:

drawdigit(i)

time.sleep(0.5)

turtle.clear()

turtle.penup()

turtle.fd(-50)

turtle.pendown()

def main():

turtle.setup(800,400,200,200)

turtle.penup()

turtle.fd(-300)

turtle.pensize(5)

drawnumber(10)

turtle.done()

main()

繪製七段數碼管

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