Python函數(shù)庫(kù)眾多,而且在不斷更新,所以學(xué)習(xí)這些函數(shù)庫(kù)最有效的方法,就是閱讀Python官方文檔。同時(shí)借助Google和百度。
員工經(jīng)過(guò)長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過(guò)團(tuán)隊(duì)的力量開(kāi)發(fā)出優(yōu)質(zhì)的產(chǎn)品。成都創(chuàng)新互聯(lián)堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、電商網(wǎng)站開(kāi)發(fā),微信小程序開(kāi)發(fā),軟件按需開(kāi)發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。本文介紹的turtle庫(kù)對(duì)應(yīng)的官方文檔地址
繪制動(dòng)態(tài)鐘表的基本思路如下(面向?qū)ο蟮木幊蹋?/p>
使用5個(gè)turtle對(duì)象
1個(gè)turtle:繪制外表盤
3個(gè)turtle:模擬表針行為
1個(gè)turtle:輸出表盤上文字
根據(jù)實(shí)時(shí)時(shí)間使用ontimer()函數(shù)更新表盤畫(huà)面,顯示效果如下:
相關(guān)函數(shù)的使用在程序中進(jìn)行了詳細(xì)的注釋,代碼如下:
# -*- coding: utf-8 -*- """ Created on Fri Jan 12 10:43:55 2018 @author: Administrator """ from turtle import * from datetime import * def skip(step): penup() forward(step) pendown() def mkhand(name,length): #注冊(cè)turtle形狀,建立表針turtle reset() skip(-length*0.1) begin_poly() forward(length*1.1) end_poly() handform=get_poly() register_shape(name,handform) def init(): global sechand,minhand,hurhand,printer mode("logo") #重置turtle指向北 #建立三個(gè)表針turtle并初始化 mkhand("sechand",125) mkhand("minhand",130) mkhand("hurhand",90) sechand=Turtle() sechand.shape("sechand") minhand=Turtle() minhand.shape("minhand") hurhand=Turtle() hurhand.shape("hurhand") for hand in sechand,minhand,hurhand: hand.shapesize(1,1,3) hand.speed(0) #建立輸出文字turtle printer = Turtle() printer.hideturtle() printer.penup() def setupclock(radius): #建立表的外框 reset() pensize(7) for i in range(60): skip(radius) if i %5==0: forward(20) skip(-radius-20) else: dot(5) skip(-radius) right(6) def week(t): week=["星期一","星期二","星期三","星期四","星期五","星期六","星期日"] return week[t.weekday()] def date(t): y=t.year m=t.month d=t.day return "%s %d %d" %(y,m,d) def tick(): #繪制表針的動(dòng)態(tài)顯示 t=datetime.today() second=t.second+t.microsecond*0.000001 minute=t.minute+second/60.0 hour=t.hour+second/60.0 sechand.setheading(6*second) minhand.setheading(6*minute) hurhand.setheading(30*hour) tracer(False) printer.forward(65) printer.write(week(t),align="center",font=("Courier",14,"bold")) printer.back(130) printer.write(date(t),align="center",font=("Courier",14,"bold")) printer.home() tracer(True) ontimer(tick,100)#100ms后繼續(xù)調(diào)用tick def main(): tracer(False) init() setupclock(160) tracer(True) tick() mainloop() main()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。