日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?

發布時間:2023/12/2 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:技術圖文:如何利用 Python 做一個簡單的定時器類?

背景

今天在B站上看有關 Python 最火的一個教學視頻 -- “零基礎入門學習 Python”,這也是我們 Python基礎刻意練習活動 的推薦視頻教程。

python視頻

在學習魔法方法的時候,有一節視頻是制作一個簡單的定時器類,基本要求如下:

定制一個計時器的類。

start和stop方法代表啟動計時和停止計時。

假設計時器對象t1,print(t1)和直接調用t1均顯示結果。

當計時器未啟動或已經停止計時時,調用stop方法會給予溫馨的提示。

兩個計時器對象可以進行相加:t1+t2。

只能使用提供的有限資源完成。

技術分析

Python 的time模塊中,時間表現的格式主要有三種:

timestamp時間戳,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。

struct_time時間元組,共有九個元素組。

format time格式化時間,用格式化的結構使時間更具可讀性。包括自定義格式和固定格式。

獲取時間戳

time.time返回當前時間的時間戳(1970紀元后經過的浮點秒數)。

importtime

ticks = time.time

print( '當前時間戳為:', ticks) # 當前時間戳為: 1570793479.162907

獲取當前時間元組

time.localtime([sec])格式化時間戳為本地的時間。如果sec參數未輸入,則以當前時間為轉換標準。

importtime

localtime = time.localtime(time.time)

print( "本地時間為 :", localtime)

# 本地時間為 : time.struct_time(tm_year=2019, tm_mon=10, tm_mday=11, tm_hour=19, tm_min=35, tm_sec=31, tm_wday=4, tm_yday=284, tm_isdst=0)

tm_year:4位數年

tm_mon:月

tm_mday:日

tm_hour:小時

tm_min:分鐘

tm_sec:秒

tm_wday:一周的第幾日,0到6 (0是周一)

tm_yday:一年的第幾日

tm_isdst:夏令時,值有:1(夏令時)、0(不是夏令時)、-1(未知),默認 -1

獲取格式化的時間

time.asctime([tupletime])接受時間元組并返回一個可讀的形式。

importtime

t = time.localtime

print( "本地時間為 : %s "% time.asctime(t))

# 本地時間為 : Fri Oct 11 19:42:34 2019

格式化時間

time.strftime(format[,tupletime])接收以時間元組,并返回以可讀字符串表示的當地時間,格式由format決定。

time.strptime(str,format='%a %b %d %H:%M:%S %Y')根據format的格式把一個時間字符串解析為時間元組。

time.mktime(tupletime)接受時間元組并返回時間戳(1970紀元后經過的浮點秒數)。

importtime

print(time.strftime( "%Y-%m-%d %H:%M:%S", time.localtime))

# 2019-10-11 19:48:31

print(time.strftime( "%a %b %d %H:%M:%S %Y", time.localtime))

# Fri Oct 11 19:48:31 2019

a = "Fri Oct 11 19:48:31 2019"

print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y")))

# 1570794511.0

%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 當前時區的名稱

%% %號本身

Time 模塊

time.gmtime([secs])接收時間戳(1970紀元后經過的浮點秒數)并返回格林威治天文時間下的時間元組。

time.ctime([secs])把一個時間戳(按秒計算的浮點數)轉化為time.asctime的形式,作用相當于asctime(localtime(secs)),未給參數相當于asctime。

time.sleep(secs)推遲調用線程的運行,secs指秒數。

代碼實現

importtime

classMytime(object):

def__init__(self):

self.__info = '未開始計時!'

self.__begin = None

self.__end = None

self.__jg = 0

def__str__(self):

returnself.__info

def__repr__(self):

returnself.__info

defstart(self):

print( '計時開始...')

self.__begin = time.localtime

defstop(self):

ifnotself.__begin:

print( '提示:請先調用start開始計時!')

return

self.__end = time.localtime

self.__jg = time.mktime(self.__end) - time.mktime(self.__begin)

self.__info = '共運行了%d秒'% self.__jg

print( '計時結束!')

returnself.__jg

def__add__(self, other):

return'共運行了%d秒'% (other.__jg + self.__jg)

t1 = Mytime

print(t1)

# 未開始計時!

t1.stop

# 提示:請先調用start開始計時!

t1.start

# 計時開始...

time.sleep( 5)

t1.stop

# 計時結束!

print(t1)

# 共運行了5秒

t2 = Mytime

t2.start

# 計時開始...

time.sleep( 7)

t2.stop

# 計時結束!

print(t2)

# 共運行了7秒

print(t1 + t2)

# 共運行了12秒

總結

這個題目讓我們熟悉了 Python 中time模塊的使用方法,以及類的定義和類中的一系列魔法方法,如__init__、__str__、__repr__、__add__等等,Python 的魔法方法很是神奇啊,把面向對象中的構造函數、析構函數、運算符的重載等全部包含了進去。需要好好體會才能把這塊的知識學好。今天就這樣吧!See You!

參考文獻

https://www.bilibili.com/video/av4050443

https://www.cnblogs.com/lichunl/p/9098024.html

相關圖文:

經過8年多的發展,LSGO軟件技術團隊在「地理信息系統」、「數據統計分析」、「計算機視覺」等領域積累了豐富的研發經驗,也建立了人才培養的完備體系,目前深耕的領域為「機器學習與量化金融」,歡迎對計算機技術感興趣的同學加入,與我們共同成長進步。

后臺回復「搜搜搜」,隨機獲取電子資源!返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。