国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現簡易數碼時鐘

2020-01-04 14:02:52
字體:
來源:轉載
供稿:網友

最近迷上了Python,要說為什么呢?Python語法簡單,功能強大,有廣泛的第三方庫能快速編程實現自己的想法(無需重復去造輪子)。就像某位前輩說的:“人生苦短,學會偷懶…”,配置好sublime text照著網上教程直接上手寫個小程序入門。

先插張圖,計算機技術的演進過程,總結的還是挺到位的。

python,數碼時鐘

安裝好Python環境,引入需要用到的庫:

import threadingimport turtleimport time

引入time庫后使用localtime()方法可以獲取當前服務器時間,然后使用turtle庫繪制7段數碼管時鐘。

now = time.localtime() # 返回服務器時間 print(now)print(time.strftime("%Y-%m-%d %H:%M:%S", now)) # 轉成字符串# %y 兩位數的年份表示(00-99)# %Y 四位數的年份表示(000-9999)# %m 月份(01-12)# %d 月內中的一天(0-31)# %H 24小時制小時數(0-23)# %I 12小時制小時數(01-12)# %M 分鐘數(00=59)# %S 秒(00-59)# %a 本地簡化星期名稱# %A 本地完整星期名稱# %b 本地簡化的月份名稱# %B 本地完整的月份名稱# %c 本地相應的日期表示和時間表示# %j 年內的一天(001-366)# %p 本地A.M.或P.M.的等價符# %U 一年中的星期數(00-53)星期天為星期的開始# %w 星期(0-6),星期天為星期的開始# %W 一年中的星期數(00-53)星期一為星期的開始# %x 本地相應的日期表示# %X 本地相應的時間表示# %Z 當前時區的名稱# %% %號本身

python,數碼時鐘

繪制數碼管函數:

# 繪制單根數碼管def drawLine(draw): turtle.pensize(3) turtle.pu turtle.fd(3) if draw: turtle.pd() else: turtle.pu()  turtle.fd(24) turtle.pu() turtle.fd(3) turtle.right(90)  # 根據數字繪制數碼管def drawNum(num, color): turtle.colormode(255) turtle.color(eval(color)) # 第一條線 if num in [2, 3, 4, 5, 6, 8, 9]: drawLine(True) else: drawLine(False)  if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]: drawLine(True) else: drawLine(False)  if num in [0, 2, 3, 5, 6, 8, 9]: drawLine(True) else: drawLine(False)  if num in [0, 2, 6, 8]: drawLine(True) else: drawLine(False)  turtle.left(90)  if num in [0, 4, 5, 6, 8, 9]: drawLine(True) else: drawLine(False)  if num in [0, 2, 3, 5, 6, 7, 8, 9]: drawLine(True) else: drawLine(False)  if num in [0, 1, 2, 3, 4, 7, 8, 9]: drawLine(True) else: drawLine(False)  turtle.pu() turtle.left(180) turtle.fd(30) # 繪制后面數字間隔位置 turtle.update()

一個7段數碼管全部繪制(顯示數字8)順序如下,根據顯示的數字來決定哪些需要繪制,哪些只是抬起畫筆移動不進行繪制,所以繪制單段數碼管的函數內設置了一個參數draw。

python,數碼時鐘

定義一個Tick函數,利用threading庫實現定時刷新:

def Tick(): now = time.localtime() now_time.n_sec = now.tm_sec turtle.reset() turtle.hideturtle() turtle.pu() turtle.fd(-300)  darwDate(str(now.tm_year), '(255, 69, 0)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('年', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30)  darwDate(str(now.tm_mon), '(0,139,0)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('月', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30)  darwDate(str(now.tm_mday), '(0,0,139)') turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('日', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(-90) turtle.right(90) turtle.fd(-510)  darwDate(str(now.tm_hour)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('時', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30)  darwDate(str(now.tm_min)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('分', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30)  darwDate(str(now.tm_sec)) turtle.fd(10) turtle.right(90) turtle.fd(30) turtle.write('秒', align="center", font=("Courier", 30, "bold")) turtle.left(180) turtle.fd(30) turtle.right(90) turtle.fd(30)  timer = threading.Timer(0.1, Tick) # 利用多線程庫定時刷新 timer.start()

最后定義一個入口函數:

def mian(): turtle.hideturtle() # 隱藏畫筆 turtle.speed(0) # 最快 turtle.tracer(0) turtle.pu() turtle.fd(-300) Tick() turtle.done()# Python turtle模塊的海龜作圖,由于需要展示海龜運動的過程,缺省狀態下,對作圖進行了延遲處理,# 致使復雜圖形的繪制速度過慢,可以用如下方法取消延遲,加速繪圖:# 在繪圖之前調用tracer# turtle.tracer(0)# 在繪圖結束時調用update# turtle.update() mian()

最終效果:

python,數碼時鐘

代碼寫好后,可以打包成一個可執行文件,這里需要用到第三方庫PyInstaller;安裝第三方庫Python封裝了包管理工具pip(確保安裝時勾選了pip和Add python.exe to Path)。這里我用在線安裝的方式,在cmd窗口直接運行:pip install 包名,如 pip install pyInstaller,注意:這種方式安裝時會自動下載第三方庫,安裝完成后并不會刪除,如需刪除請到它的默認下載路徑下手動刪除。(win7的默認路徑://AppData可能是隱藏文件夾 c:/用戶/(你的用戶名)/AppData/Local/pip/cache/ linux的默認路徑: ~/.cache/pip)

耐心等待下載并安裝后,就可以使用PyInstaller了,在需要打包的文件目錄下運行pyinstaller -F指令:

python,數碼時鐘

打包后生成獨立執行文件time.exe:

python,數碼時鐘

打包時還可以通過–icon指令設置指定的圖標,還有更多指令等以后用到的時候再研究。用了一段時間的Python,因為語法簡潔所以代碼的縮進很重要,這也算是一個小坑吧,不過熟能生巧,還需多多練習。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宣化县| 安国市| 穆棱市| 西贡区| 曲周县| 宁国市| 密山市| 静安区| 龙陵县| 包头市| 云霄县| 永和县| 武夷山市| 通城县| 江安县| 砀山县| 佛教| 喀什市| 枞阳县| 仁寿县| 香港 | 象州县| 昌图县| 乐昌市| 松江区| 宁都县| 宁海县| 江永县| 修水县| 公主岭市| 中江县| 祥云县| 高要市| 洪湖市| 宁国市| 永清县| 浦江县| 栖霞市| 莫力| 泗阳县| 含山县|