七段數碼管(seven-segmentindicator)由7段數碼管拼接而成,每段有亮或不亮兩種情況,改進型的七段數碼管還包括一個小數點位置
繪制模式:
input:輸入當前日期的數字形式
process:根據每個數字繪制七段數碼管表示
output:繪制當前日期的七段數碼管表示

示例一:
#DrawSevenSegDisplay.py import turtle, datetime 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)) #注意: 通過eval()函數將數字變為整數 def main():   turtle.setup(800, 350, 200, 200)   turtle.penup()   turtle.fd(-300)   turtle.pensize(5)   drawDate(datetime.datetime.now().strftime('%Y%m%d')) turtle.hideturtle()main() 效果展示:

示例二:
#DrawSevenSegDisplay.py import turtle, datetime def drawGap(): #繪制數碼管間隔   turtle.penup()   turtle.fd(5) def drawLine(draw):  #繪制單段數碼管   drawGap()   turtle.pendown() if draw else turtle.penup()   turtle.fd(40)   drawGap()   turtle.right(90) def drawDigit(d): #根據數字繪制七段數碼管   drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)   drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)   drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)   drawLine(True) if d in [0,2,6,8] else drawLine(False)   turtle.left(90)   drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)   drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)   drawLine(True) if d 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, 350, 200, 200)   turtle.penup()   turtle.fd(-350)   turtle.pensize(5)   drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))   turtle.hideturtle() main()             
新聞熱點
疑難解答