python?使用turtle實(shí)現(xiàn)實(shí)時(shí)鐘表并生成exe
源代碼
python引入兩個(gè)內(nèi)置庫(kù)turtle和datetime即可制作一個(gè)實(shí)時(shí)鐘表,代碼如下:
# 用turtle畫時(shí)鐘
# 以自定義shape的方式實(shí)現(xiàn)
import turtle as t
import datetime as d
def skip(step): # 抬筆,跳到一個(gè)地方
t.penup()
t.forward(step)
t.pendown()
def drawClock(radius): # 畫表盤
t.speed(0)
t.mode("logo") # 以Logo坐標(biāo)、角度方式
t.hideturtle()
t.pensize(7)
t.home() # 回到圓點(diǎn)
for j in range(60):
skip(radius)
if (j % 5 == 0):
t.forward(20)
skip(-radius - 20)
else:
t.dot(5)
skip(-radius)
t.right(6)
def makePoint(pointName, len): # 鐘的指針,時(shí)針、分針、秒針
t.penup()
t.home()
t.begin_poly()
t.back(0.1 * len)
t.forward(len * 1.1)
t.end_poly()
poly = t.get_poly()
t.register_shape(pointName, poly) # 注冊(cè)為一個(gè)shape
def drawPoint(): # 畫指針
global hourPoint, minPoint, secPoint, fontWriter
makePoint("hourPoint", 100)
makePoint("minPoint", 120)
makePoint("secPoint", 140)
hourPoint = t.Pen() # 每個(gè)指針是一只新turtle
hourPoint.shape("hourPoint")
hourPoint.shapesize(1, 1, 6)
minPoint = t.Pen()
minPoint.shape("minPoint")
minPoint.shapesize(1, 1, 4)
secPoint = t.Pen()
secPoint.shape("secPoint")
secPoint.pencolor('red')
fontWriter = t.Pen()
fontWriter.pencolor('gray')
fontWriter.hideturtle()
def getWeek(weekday):
weekName = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
return weekName[weekday]
def getDate(year, month, day):
return "%s-%s-%s" % (year, month, day)
def getRealtime():
curr = d.datetime.now()
curr_year = curr.year
curr_month = curr.month
curr_day = curr.day
curr_hour = curr.hour
curr_minute = curr.minute
curr_second = curr.second
curr_weekday = curr.weekday()
t.tracer(False)
secPoint.setheading(360 / 60 * curr_second)
minPoint.setheading(360 / 60 * curr_minute)
hourPoint.setheading(360 / 12 * curr_hour + 30 / 60 * curr_minute)
fontWriter.clear()
fontWriter.home()
fontWriter.penup()
fontWriter.forward(80)
# 用turtle寫文字
fontWriter.write(getWeek(curr_weekday), align="center", font=("Courier", 14, "bold"))
fontWriter.forward(-160)
fontWriter.write(getDate(curr_year, curr_month, curr_day), align="center", font=("Courier", 14, "bold"))
t.tracer(True)
print(curr_second)
t.ontimer(getRealtime, 1000) # 每隔1000毫秒調(diào)用一次realTime()
def main():
t.tracer(False)
drawClock(160)
drawPoint()
getRealtime()
t.tracer(True)
t.mainloop()
if __name__ == '__main__':
main()引用模塊:turtle,datetime
定義函數(shù):
- skip():重復(fù)指定動(dòng)作
- drawClock():畫表盤
- drawPoint():畫指針
- getWeek():顯示星期
- getDate():顯示日期
- getRealtime():顯示實(shí)時(shí)時(shí)間
- main():主函數(shù)
運(yùn)行效果如下:

打包exe
也可打包為exe,這樣在沒(méi)有編譯環(huán)境的情況下也可以運(yùn)行(發(fā)給你的小伙伴展示一下你的技術(shù),豈不美哉) 效果如下(不會(huì)打包看pyinstaller打包exe詳細(xì)教程) 這里就不做演示了,直接上效果圖


以上就是利用turtle庫(kù)和datetime庫(kù)制作實(shí)時(shí)鐘表
到此這篇關(guān)于python 使用turtle實(shí)現(xiàn)實(shí)時(shí)鐘表并生成exe的文章就介紹到這了,更多相關(guān)python 實(shí)時(shí)鐘表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python SMTP實(shí)現(xiàn)發(fā)送帶附件電子郵件
這篇文章主要為大家詳細(xì)介紹了python SMTP實(shí)現(xiàn)發(fā)送帶附件電子郵件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Python實(shí)現(xiàn)PS圖像抽象畫風(fēng)效果的方法
這篇文章主要介紹了Python實(shí)現(xiàn)PS圖像抽象畫風(fēng)效果的方法,涉及Python基于skimage模塊進(jìn)行圖像處理的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
PHP webshell檢查工具 python實(shí)現(xiàn)代碼
Web安全應(yīng)急響應(yīng)中,不免要檢查下服務(wù)器上是否被上傳了webshell,手工檢查比較慢,就寫了個(gè)腳本來(lái)檢查了。Windows平臺(tái)下已經(jīng)有了lake2寫的雷克圖的了,一般的檢查也夠用了,寫了個(gè)Linux下面的,用python寫的。2009-09-09
Python numpy多維數(shù)組實(shí)現(xiàn)原理詳解
這篇文章主要介紹了python numpy多維數(shù)組實(shí)現(xiàn)原理詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
python判斷列表的連續(xù)數(shù)字范圍并分塊的方法
今天小編就為大家分享一篇python判斷列表的連續(xù)數(shù)字范圍并分塊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
Python學(xué)習(xí)筆記之迭代器和生成器用法實(shí)例詳解
這篇文章主要介紹了Python學(xué)習(xí)筆記之迭代器和生成器用法,結(jié)合實(shí)例形式詳細(xì)分析了Python迭代器與生成器的功能、原理、定義及使用方法,需要的朋友可以參考下2019-08-08
60行Python PyGame代碼實(shí)現(xiàn)簡(jiǎn)單的迷宮游戲
這篇文章主要為大家詳細(xì)介紹如何通過(guò)了60行Python PyGame代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單的迷宮游戲,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12

