python3 打点计时
生活随笔
收集整理的這篇文章主要介紹了
python3 打点计时
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用方法:?
(1)記錄時間點:? ? 打點()?
(2)計算時間差值: 計時()
?
示例:
if __name__ == '__main__':打點()time.sleep(1)打點("a2")time.sleep(1)打點("a3")time.sleep(2)打點("a4")time.sleep(3)打點()print(f"\n默認情況取最后的兩點:\n"f"{計時()}")print(f"\n下標的使用跟數組截取一樣:\n"f"{計時(0, 3)}")print(計時(0))print(f"\n也可以通過打點時定義的名稱來截取范圍:\n"f"{計時('a2', 'a4')}")print()print()print(計時().秒數())print(計時().可視化時間())print(計時().最近計算的可視化時間字典())?
?
?
?
工具類:
import time# region 打點計時# region 轉換秒數相關 _毫秒_秒數 = 0.001 _秒_秒數 = _毫秒_秒數 * 1000 _分鐘_秒數 = _秒_秒數 * 60 _小時_秒數 = _分鐘_秒數 * 60 _天_秒數 = _小時_秒數 * 24def 拆解秒數(秒數, 各時間單位值字典={}):if 秒數 > _天_秒數 + _小時_秒數:除余結果 = divmod(秒數, _天_秒數)各時間單位值字典["天"] = int(除余結果[0])return "%d 天, %s" % (int(除余結果[0]), 拆解秒數(除余結果[1], 各時間單位值字典))elif 秒數 > _小時_秒數 + _分鐘_秒數:除余結果 = divmod(秒數, _小時_秒數)各時間單位值字典["小時"] = int(除余結果[0])return '%d 小時, %s' % (int(除余結果[0]), 拆解秒數(除余結果[1], 各時間單位值字典))elif 秒數 > _分鐘_秒數 + _秒_秒數:除余結果 = divmod(秒數, _分鐘_秒數)各時間單位值字典["分鐘"] = int(除余結果[0])return '%d 分鐘, %s' % (int(除余結果[0]), 拆解秒數(除余結果[1], 各時間單位值字典))elif 秒數 > _秒_秒數 + _毫秒_秒數:除余結果 = divmod(秒數, _秒_秒數)各時間單位值字典["秒"] = int(除余結果[0])return '%d 秒, %s' % (int(除余結果[0]), 拆解秒數(除余結果[1], 各時間單位值字典))else:除余結果 = divmod(秒數, _毫秒_秒數)各時間單位值字典["毫秒"] = int(除余結果[0])return "%d 毫秒" % int(除余結果[0])# endregionclass 打點計時類:class 時間值存儲類:def __init__(self, 時間值=0):self.時間值 = 時間值self.各時間單位值字典 = {}@staticmethoddef 實例化():return 打點計時類.時間值存儲類()def 可視化時間(self):# 清空字典self.各時間單位值字典["天"] = 0self.各時間單位值字典["小時"] = 0self.各時間單位值字典["分鐘"] = 0self.各時間單位值字典["秒"] = 0self.各時間單位值字典["毫秒"] = 0return 拆解秒數(self.時間值, self.各時間單位值字典)def 秒數(self):return self.時間值def 最近計算的可視化時間字典(self):return self.各時間單位值字典def __str__(self):return self.可視化時間()def __init__(self, 數組型打點上限=150, 刪除區間=[5, -5]):self.默認打點數組 = []self.個性打點字典 = {}self.時間值存儲實例 = 打點計時類.時間值存儲類.實例化()self.數組型打點上限 = 數組型打點上限self.刪除區間 = 刪除區間@staticmethoddef 實例化(數組型打點上限=150, 刪除區間=[5, -5]):return 打點計時類(數組型打點上限, 刪除區間)def 打點(self, 計時點名稱=None):計時點 = time.time()if len(self.默認打點數組) > self.數組型打點上限:self.默認打點數組 = self.默認打點數組[0:self.刪除區間[0]] + self.默認打點數組[self.刪除區間[1]:]self.默認打點數組.append(計時點)if 計時點名稱:計時點名稱 = str(計時點名稱)self.個性打點字典[計時點名稱] = 計時點def 計時(self, 起始點=None, 結束點=None):def 無參_無參_處理():所需計時點_數組 = self.默認打點數組[-2:]時間差值 = 所需計時點_數組[0] - 所需計時點_數組[-1]if 時間差值 < 0:時間差值 = -時間差值self.時間值存儲實例.時間值 = 時間差值return self.時間值存儲實例def 下標_下標_處理():所需計時點_數組 = self.默認打點數組[起始點:結束點]時間差值 = 所需計時點_數組[0] - 所需計時點_數組[-1]if 時間差值 < 0:時間差值 = -時間差值self.時間值存儲實例.時間值 = 時間差值return self.時間值存儲實例def 下標_無參_處理():所需計時點_數組 = self.默認打點數組[起始點:]時間差值 = 所需計時點_數組[0] - 所需計時點_數組[-1]if 時間差值 < 0:時間差值 = -時間差值self.時間值存儲實例.時間值 = 時間差值return self.時間值存儲實例def 名稱_名稱_處理():時間差值 = self.個性打點字典[起始點] - self.個性打點字典[結束點]if 時間差值 < 0:時間差值 = -時間差值self.時間值存儲實例.時間值 = 時間差值return self.時間值存儲實例def default():raise Exception("計時失敗,參數類型未支持")switch = {"<class 'NoneType'><class 'NoneType'>": 無參_無參_處理,"<class 'int'><class 'int'>": 下標_下標_處理,"<class 'int'><class 'NoneType'>": 下標_無參_處理,"<class 'str'><class 'str'>": 名稱_名稱_處理}try:return switch.get(repr(type(起始點)) + repr(type(結束點)), default)()except Exception as e:print("計時出錯")print(e)_靜態計時器 = 打點計時類.實例化()def 打點(計時點名稱=None):_靜態計時器.打點(計時點名稱)def 計時(起始點=None, 結束點=None):return _靜態計時器.計時(起始點, 結束點)# endregion 打點計時?
?
總結
以上是生活随笔為你收集整理的python3 打点计时的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssb的matlab仿真,单边带调制(S
- 下一篇: 如何从PayPal提现