1. 程式人生 > >Python 常用模塊學習

Python 常用模塊學習

python模塊

一、什麽是模塊

Python中的模塊是可以將代碼量較大的程序分割成多個有組織的、彼此獨立但又能互相交互的代碼片段,這些自我包含的有組織的代碼段就是模塊。Python允許“導入”其他模塊以實現代碼重用,從而也實現了將獨立的代碼文件組織成更大的程序系統。Python中,模塊也是對象。在一個模塊的頂層定義的所有變量都在被導入時成為了被導入模塊的屬性。

二、模塊的使用

1、python程序架構
一個Python程序通常包括一個頂層程序文件和若幹個模塊文件。頂層文件包含了程序的主要控制流程,模塊文件是為頂層文件或其他模塊提供各種功能性組件,模塊首次導入(或重載)時,Python會立即執行模塊文件的頂層程序代碼(不在函數內的代碼),而位於函數主體內的代碼直到函數被調用後才會執行。

2、模塊的執行環境
模塊是被導入的,但模塊也可以導入和使用其他模塊,這些模塊可以用Python或其它編程語言寫成
模塊可內含變量、函數以及類來進行其工作,而函數和類可以包含變量和其它元素
3、導入模塊
在導入模塊時只能使用模塊名,而不能使用帶.py後綴的模塊文件名

import語句:
            導入指定的整個模塊,包括生成一個以模塊名命名的名稱空間
            import module1[,module2[,...moduleN]]
            建議一個import語句只導入一個模塊
            import module as module_alias
from-import語句:
            常用於只導入指定模塊的部分屬性至當前名稱空間
            from module import name1[,name2[,...nameN]]
          import和from-import是賦值語句
            import和from是可執行語句,類似於def,因此,它們可以嵌套在if測試中,出現於def中等等
            Python執行到這些語句時才會對其進行解析,這意味著,所有來自模塊的屬性僅在import語句執行後才能使用
模塊就是名稱空間
            模塊的名稱空間可以通過屬性__dict__或dir(M)獲取
                模塊屬性可通過點號(.)運算符獲取,格式為M.attr
            模塊是一個獨立的作用域(本地變量就是全局變量)

4、import的工作機制
import語句導入指定的模塊時會執行三個步驟
1、找到模塊文件
在指定的路徑下(sys.path)搜索模塊文件
2、編譯成字節碼
文件導入時就會編譯,因此,頂層文件的.pyc字節碼文件在內部使用後會被丟棄,只有被導入的文件才會留下.pyc文件
3、執行模塊的代碼來創建其所定義的對象
模塊文件中的所有語句會依次執行,從頭到尾,而此步驟中任何對變量名的賦值運算,都會產生所得到的模塊文件的屬性
註意:模塊只在第一次導入時才會執行如上步驟,後續的導入操作只不過是提取內存中已加載的模塊對象,reload()可用於重新加載模塊

三、time

time模塊用來操作時間值
時間戳:time.time()

格式化時間:字符串表示,time.strftime(‘%Y-%m-%d‘)
結構化時間:元組表示,time.localtime(), time.gmtime()

asctime:返回時間格式Sun Mar 18 10:51:28 2018
In [1]: import time
In [2]: time.asctime()
Out[2]: ‘Sun Mar 18 10:51:28 2018‘
In [3]: time.asctime(time.localtime())
Out[3]: ‘Sun Mar 18 10:51:45 2018‘
ctime:將自紀元以來的時間以秒為單位轉換為本地時間的字符串,相當於time.asctime(time.localtime())
In [4]: time.ctime()
Out[4]: ‘Sun Mar 18 10:55:26 2018‘
gmtime:當前UTC時間
In [7]: time.gmtime()
Out[7]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=2, tm_min=58, tm_sec=1, tm_wday=6, tm_yday=77, tm_isdst=0)
localtime:返回本地時間
In [9]: time.localtime()
Out[9]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=11, tm_min=3, tm_sec=56, tm_wday=6, tm_yday=77, tm_isdst=0)
strptime:將傳入的時間轉換為str格式的時間
In [11]: time.strptime(‘2018-3-18‘, ‘%Y-%m-%d‘)
Out[11]: time.struct_time(tm_year=2018, tm_mon=3, tm_mday=18, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=77, tm_isdst=-1)
strftime:將struct格式時間轉換為指定格式的時間
In [13]: time.strftime(‘%Y-%m-%d‘)
Out[13]: ‘2018-03-18‘
In [14]: time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())
Out[14]: ‘2018-03-18 03:09:47‘
mktime:將struct時間轉換為時間戳
In [15]: time.mktime(time.strptime(‘2018-3-18‘, ‘%Y-%m-%d‘))
Out[15]: 1521302400.0
sleep:睡眠時間
In [16]: time.sleep(5)

技術分享圖片

datetime模塊用來操作時間
datetime.date:表示日期的類。常用的屬性有year, month, day
datetime.time:表示時間的類。常用的屬性有hour, minute, second, microsecond
datetime.datetime:表示日期時間
datetime.timedelta:表示時間間隔,即兩個時間點之間的長度
timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
strftime("%Y-%m-%d")

>>> import datetime                         
>>> import time
#當前時間
>>> print(datetime.datetime.now())
2018-03-18 12:10:27.199643
#格式化時間戳
>>> print(datetime.date.fromtimestamp(time.time()))
2018-03-18
#當前時間?3天
>>> print(datetime.datetime.now() + datetime.timedelta(3))
2018-03-21 12:10:52.869598
#當前時間?3天
>>> print(datetime.datetime.now() + datetime.timedelta(-3))
2018-03-15 12:11:04.721491
#當前時間?3小時
>>> print(datetime.datetime.now() + datetime.timedelta(hours=3))
2018-03-18 15:11:18.628036
#當前時間?4小時
>>> print(datetime.datetime.now() + datetime.timedelta(hours=-4))
2018-03-18 08:11:42.096182
#當前時間?120分鐘
>>> print(datetime.datetime.now() + datetime.timedelta(minutes=120))
2018-03-18 14:11:53.305800

四、random

隨機數

In [1]: import random
In [2]: random.random()
Out[2]: 0.9381887159573181
#隨機返回1到10之間的整數
In [3]: random.randint(1,10)
Out[3]: 8
#從1到10中,2為步長隨機返回一個數
In [4]: random.randrange(1,10,2)
Out[4]: 5
#隨機返回序列中的元素
In [5]: random.choice([1,2,3,4])
Out[5]: 3
#打亂序列中的元素順序
In [10]: l1 = [1,2,3,4]
In [11]: random.shuffle(l1)
In [12]: l1
Out[12]: [1, 2, 4, 3]
#隨機返回序列中的2個元素
In [13]: random.sample(l1,2)
Out[13]: [2, 4]

Python 常用模塊學習