題目:
數碼管是一種**便宜、使用簡單的發光電子器件,廣泛應用在**較低的電子類產品中,其中,七段數碼管最為常用。七段數碼管
(seven-segment indicator)由7 段數碼管拼接而成,每段有亮或不亮兩種情況,改進型的七段數碼管還包括乙個小數點位置,如圖1 所示。
圖 1:七段數碼管的結構圖
七段數碼管能形成27=128 種不同狀態,其中部分狀態能夠顯示易於人們理解的數字或字母含義,因此被廣泛使用。圖2 給出了十六進製制中16 個字元的七段數碼管表示。
圖 2:十六進製制中16 個字元的七段數碼管表示
請採用turtle 庫並使用函式封裝繪製七段數碼管,顯示當前系統日期和時間。該問題的ipo 描述如下:輸入:當前日期的數字形式處理:根據每個數字繪製七段數碼管表示輸出:繪製當前日期的七段數碼管表示程式的預期執行效果如圖3 和圖4 所示,與兩個效果中任何乙個相似均可。
原始碼:
'''
created on dec 5, 2017
@author: qizhao
'''import turtle,datetime
def drawgap():#畫數碼管間隔
turtle.penup()
turtle.fd(5)
def drawline(flag):#畫單條數碼管
drawgap()
turtle.pendown()
if(flag==false):
turtle.penup()
turtle.fd(40)
drawgap()
turtle.right(90)
def drawdight(dight):#根據數字繪製對應數字的數碼管
if dight in [2,3,4,5,6,8,9]:
drawline(true)
else:
drawline(false)
if dight in [0,1,3,4,5,6,7,8,9]:
drawline(true)
else:
drawline(false)
if dight in [0,2,3,5,6,8]:
drawline(true)
else:
drawline(false)
if dight in [0,2,6,8]:
drawline(true)
else:
drawline(false)
turtle.left(90)
if dight in [0,4,5,6,8,9]:
drawline(true)
else:
drawline(false)
if dight in [0,2,3,5,6,7,8,9]:
drawline(true)
else:
drawline(false)
if dight in [0,1,2,3,4,7,8,9]:
drawline(true)
else:
drawline(false)
turtle.setheading(0)
turtle.fd(25)
def drawdata(data):#根據日期畫出對應數字
turtle.color("red")
for i in data:
if i=='+':
turtle.write('年',font=("宋體", 24, "normal"))
turtle.color("green")
turtle.fd(30)
elif i=='-':
turtle.write('月',font=("宋體", 24, "normal"))
turtle.color("blue")
turtle.fd(30)
elif i=='*':
turtle.write('日',font=("宋體", 24, "normal"))
else:
drawdight(eval(i))
def main():
turtle.setup(800,500)
turtle.penup()
turtle.fd(-350)
turtle.pendown()
turtle.hideturtle()
turtle.pensize(6)
turtle.speed(9)
drawdata(datetime.datetime.now().strftime('%y+%m-%d*'))
a=input()
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...