數(shù)碼管是一種半導體發(fā)光器件关拒,數(shù)碼管可分為七段數(shù)碼管和八段數(shù)碼管,區(qū)別在于八段數(shù)碼管比七段數(shù)碼管多一個用于顯示小數(shù)點的發(fā)光二極管單元DP(decimal point)侦厚。它價格便宜耗帕、使用簡單佣赖,通過對其不同的管腳輸入相對的電流,使其發(fā)亮表伦,從而顯示出數(shù)字能夠顯示 時間谦去、日期、溫度等所有可用數(shù)字表示的參數(shù)的器件蹦哼。在電器特別是家電領域應用極為廣泛鳄哭,如顯示屏、空調(diào)纲熏、熱水器妆丘、冰箱等等锄俄。
本案例使用turtle庫實現(xiàn),首先了解下turtle的使用方法
turtle的空間體系
1勺拣,絕對坐標體系奶赠,中心是(0,0)就是我們初中就開始學的絕對坐標體系
2,相對坐標體系药有,turtle是海龜毅戈,頭部朝向左側(cè)為正,右側(cè)朝向為負的一個體系
turtle的顏色控制體系
1愤惰,可以用一些默認的顏色來控制
2苇经,可以用最大值255或者最大值為1來控制,切換方式為turtle.colormode(255)或者turtle.colormode(1)來控制
turtle的運動控制函數(shù)
1宦言,turtle.fd(d)走直線塑陵,行進距離是d
2,turtle.circle(r,angle) 繪制一個圖形蜡励,r是半徑令花,angle是弧形的角度,如果r是正數(shù)凉倚,則表示圓心在tutle的左側(cè)兼都,如果r是負數(shù),則表示圓心在turtle的右側(cè)
3稽寒,turtle.speed(x) x的取值從0到10扮碧,越大速度越快
4,turtle.goto(x,y)可以把畫筆直接移動到絕對坐標體系的某一個點
turtle的運動方向控制函數(shù)
1杏糙,seth(angle) 將turtle當前的方向設置為絕對坐標下的angle角度
2慎王,left(angle) 將turtle朝向設置為海龜當前朝向左側(cè)的angle
2,right(angle) 將turtle朝向設置為海龜當前朝向右側(cè)的angle
turtle的流程控制
1宏侍,turtle畫筆默認首先在中心的位置赖淤。并且畫筆是放下狀態(tài)
2,turtle.penup() 抬起畫筆
3谅河,turtle.pendown() 放下畫筆
4咱旱,turtle.pensize() 設置畫筆的粗細
5,turtle.pencolor() 設置畫筆的顏色
6绷耍,turtle.done()表示狀態(tài)誓焦,運行完之后不會退出安岂,需要手動退出摸屠,如果不加入的話跪帝,turtle畫布會自動退出
7,turtle.write(c,font=(“Arial”,18,”normal”))來寫文字c崎苗,包括漢字
8狐粱,turtle.hideturtle()函數(shù)可以隱藏turtle的的畫筆
代碼實現(xiàn)
import turtle,time
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(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,350,200,200)
turtle.speed(10) # 設置畫筆移動速度赘阀,畫筆繪制的速度范圍[0,10]整數(shù),數(shù)字越大越快脑奠。
turtle.pensize(5)
turtle.penup()
turtle.fd(-300)
drawDate(time.strftime('%Y-%m=%d+', time.gmtime()))
turtle.hideturtle() # 隱藏畫筆的turtle形狀
turtle.done()
if __name__ == '__main__':
main()
效果圖
參考:中國大學MOOC網(wǎng) 《Python語言程序設計》