PYTHON學習筆記 4 time庫

2021-10-01 09:45:23 字數 3856 閱讀 2562

5.4模組2:time庫的使用

5.4.1time庫基本介紹

1)time庫是python中處理時間的標準庫:import time   time.()

2)功能: 計算機時間的表達 ;提供獲取系統時間並格式化輸出功能 ;提供系統級精確計時功能,用於程式效能分析

3)time庫包括三類函式

- 時間獲取:time()  ctime()  gmtime()

- 時間格式化:strftime()  strptime()

- 程式計時:sleep()  perf_counter()

5.4.2詳細函式介紹:

time() 獲取當前時間戳,即計算機內部時間值,浮點數

>>>time.time() 1516939876.6022282

ctime() 獲取當前時間並以易讀方式表示,返回字串

>>>time.ctime() 'fri jan 26 12:11:16 2018'

gmtime()獲取當前時間,表示為計算機可處理的時間格式

>>>time.gmtime()

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16, tm_wday=4, tm_yday=26, tm_isdst=0)

時間格式化將時間以合理的形式展示出來,類似字串格式化,需要有展示模板,展示模板由特定的格式化控制符組成。

strftime(tpl, ts) tpl是格式化模板字串,用來定義輸出效果 ts是計算機內部時間型別變數

>>>t = time.gmtime()

>>>time.strftime("%y-%m-%d %h:%m:%s",t)

'2018-01-26 12:55:20'

格式化控制符:

格式化字串

日期/時間說明

值範圍和示例

%y年份

0000~9999,例如:1900

%m月份

01~02,例如:10

%b月份名稱

january~december,例如:april

%b月份名稱縮寫

jan~dec,例如:apr

%d日期

01~31,例如:25

%a星期

monday~sunday,例如:wednesday

%a星期縮寫

mon~sun,例如:wed

%h小時(24h制)

00~23,例如:12

%i小時(12h制)

01~12,例如:7

%p上/下午

am,pm,例如:pm

%m分鐘

00~59,例如:26%s秒

00~59,例如:26

程式計時:測量起止動作歷時的過程

測量時間函式:perf_counter()

產生時間函式:sleep()

perf_counter():返回乙個cpu級別的精確時間計數值,單位為秒

由於這個計數值起點不確定,連續呼叫差值才有意義 :

>>>start = time.perf_counter()

318.66599499718114

>>>end = time.perf_counter()

341.3905185375658

>>>end - start

22.724523540384666

sleep(s):s擬休眠的時間,單位是秒,可以是浮點數

>>>def wait():

time.sleep(3.3)

>>>wait()

#程式將等待3.3秒後再退出

python官方文件中文版:

5.5示例4:文字進度條

1)實現:採用字串方式列印可以動態變化的文字進度條 ;進度條需要能在一行中逐漸變化

2)如何獲得文字進度條的變化時間? - 採用sleep()模擬乙個持續的進度

3)單行動態重新整理:

- 重新整理的關鍵是 \r  

- 重新整理的本質是:用之後列印的字元覆蓋之前的字元

- 不能換行:print()需要被控制

- 要能回退:列印後游標退回到之前的位置 \r

4)**:

#textprobarv3.py

import time

scale = 50

print("執行開始".center(scale//2,"-"))

start = time.perf_counter()

for i in range(scale+1):

a = '*' *i

b = '.'*(scale-i)

c = (i/scale)*100

dur = time.perf_counter() - start

print("\r%[{}->{}]s".format(c,a,b,dur),end='')

time.sleep(0.1)

print("\n"+"執行結束".center(scale//2,"-"))

**解析:

print("執行開始".center(scale//2,"-")):

center() 方法返回乙個指定的寬度 width 居中的字串,fillchar 為填充的字元,預設為空格,語法str.center(width[, fillchar])。

.center() 控制輸出的樣式,寬度為 50//2,即 25,漢字居中,兩側填充 -

start = time.perf_counter():

呼叫一次perf_counter(),從計算機系統裡隨機選乙個時間點a,計算其距離當前時間點b1有多少秒。當第二次呼叫該函式時,預設從第一次呼叫的時間點a算起,距離當前時間點b2有多少秒。兩個函式取差,即實現從時間點b1到b2的計時功能。

print("\r%[{}->{}]s".format(c,a,b,dur),end=''):

\r用來在每次輸出完成後,將游標移至行首,這樣保證進度條始終在同一行輸出,即在一行不斷重新整理的效果;,輸出格式為居中,佔3位,小數點後0位,浮點型數,對應輸出的數為c;{},對應輸出的數為a;{},對應輸出的數為b;,輸出有兩位小數的浮點數,對應輸出的數為dur;end='',用來保證不換行,不加這句預設換行。

結果:

得不到老師的結果:

原因:?

進度條的單行回退要在命令列(也叫控制台、windows的cmd)下才能使用,idle遮蔽了'\r'的功能。

文字進度條程式使用了 perf_counter() 計時,計時方法適合各類需要統間的算問題,例如:比較不同演算法時間 、統計程式執行時。

進度條可應用在:任何執行時間需要較長的程式中;任何希望提高使用者體驗的應中;進度條是人機互動的紐帶之一

文字進度條的不同設計函式:

4 time獲取時間函式

time獲取時間的函式,一般用來獲取當前時間,或者用於一些不會重複的介面欄位中 format string for dateformat optional 時間的格式字串 非必填 如果不填預設獲取當前時間的毫秒,如果填了,要填寫正確的格式 name of variable in which to s...

Python學習筆記 time

總結在日常的程式設計中,時間的處理應是最常用的過程之一,在python中,一般使用模組time與datetime,本文總結時間訪問和轉換的基礎內容。如下 示例 import time print time.time 當前時間的時間戳 print time.strftime y m d h m s 格...

python學習筆記(4)

函式定義和呼叫 函式就是最基本的一種 抽象的方式 python有許多內建函式 呼叫 要呼叫乙個函式,需要知道函式 的名稱和引數 比較函式cmp x,y 就需要兩個引數,如果 x,就返回 1,如果 x y 就返回 0,如果 x y 就返回1 資料型別轉換函式,不如int 函式可以把其他資料型別轉換為整...