Python的內建模組詳解
阿新 • • 發佈:2018-11-17
一、什麼是模組
模組就是封裝了一些列功能的py檔案,我們使用的時候直接匯入這個檔案,通過傳入引數的方式使用其他檔案的功能函式
二、模組有哪些
- 內建模組
- 自定義模組
- 第三方模組
三、如何匯入模組
匯入模組分為4種:
1 #匯入模組 2 import mode_test 3 #匯入mode_test模組中的connect_mysql功能函式 4 from mode_test import connect_mysql 5 #匯入mode_test模組中的connect_mysql功能函式,並且起一個叫mysql的名字 6 from mode_test importconnect_mysql as mysql 7 #匯入mode_test內的全部功能函式 8 from mode_test import *
注意:使用自定義的功能模組的時候一定要加入sys.path中加入自己功能模組的路徑
四、內建模組詳解:
- Time模組(一定要匯入Time模組) import time
sleep() | 延遲時間 |
gmtime() | 出入時間戳,不傳入引數使用本地時間轉換成UTC時間,轉換後的格式元組 |
localtime() | 把時間戳轉換成元組格式,轉換成本地時區 |
mktime() | 將本地的元組格式時間的形式轉換成時間戳 |
strftime() | 格式化時間字串 |
strptime() | 轉化結果是元組的時間格式 |
asctime() | 傳入元組轉換成字串 |
ctime | 傳入時間戳,轉換成字串,轉換的字串和asctime的格式一致 |
1 #延遲函式 2 time.sleep(3) #引數以秒為單位 3 #gmtime() 傳入時間戳,不填寫引數使用本地時間轉換成UTC時Time模組例項程式碼4 print('gmtime()==>',time.gmtime()) 5 #localtime() 引數是時間戳,轉化成本地時區的元組格式,不傳入時間 6 print('localtime==>',time.localtime()) 7 #mktime() 引數是元組格式的時間轉換成時間戳, 8 print( 'mktime()==>',time.mktime(time.localtime())) 9 #strftime() 第一個引數是格式化時間的控制格式,第二個引數是元組形式的時間 10 print(time.strftime('%Y-%m-%d',time.localtime())) 11 #將時間格式轉換成元組格式,第二個引數是檢測對應引數的,次引數對應元組引數 12 print(time.strptime('2018-11-17','%Y-%m-%d')) 13 #傳入元組格式的時間,轉換成通用時間字串 14 print(time.asctime(time.localtime())) 15 #傳入時間戳轉換成通用時間字串 16 print(time.ctime(121212121212))
下面是上面程式碼執行的結果,請自己對應下,第一行的sleep程式碼不會顯示結果
1 gmtime()==> time.struct_time(tm_year=2018, tm_mon=11, tm_mday=17, tm_hour=3, tm_min=59, tm_sec=45, tm_wday=5, tm_yday=321, tm_isdst=0) 2 localtime()==> time.struct_time(tm_year=2018, tm_mon=11, tm_mday=17, tm_hour=11, tm_min=59, tm_sec=45, tm_wday=5, tm_yday=321, tm_isdst=0) 3 mktime()==> 1542427185.0 4 strftime()==> 2018-11-17 5 strptime()==> time.struct_time(tm_year=2018, tm_mon=11, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=321, tm_isdst=-1) 6 asctime()==> Sat Nov 17 11:59:45 2018 7 ctime()==> Wed Jan 23 09:40:12 5811上面程式碼執行和結果
時間控制格式
%Y | Year with century as a decimal number |
%m | Month as a decimal number[01,12] |
%d | Day of the month as a decimal number[1,31] |
%H | Hour(24-hour clock) as a decimal number[00,23] |
%M | Minute as a decimal number[00,59] |
%S | Second as a decimal number[00,61] |
%z | Time zone offset from UTC |
%a | Local’s abbreviated weekday name |
%A | Local’s full weekday name |
%b | Local’s abbreviated month name |
%B | Local’s full month name |
%c | Local’s appropriate date and time representation |
%I | Hour(12-hour clock) as a decimal number[01,12] |
%p | Local’s equivalent of either AM or PM |
-------------------------------------------- Hua Li Fen Ge Xian --------------------------------------------
- DateTime模組(一定要匯入DateTime模組) import datetime
datetime.datetime.now() | 獲取當前時間 |
datetime.timedelta(3) | 獲取三天前的時間 |
datetime.datetime.now().replace(year=2017) | 修改時間 |
1 #列印當前時間 2 print('列印當前時間==>',datetime.datetime.now()) 3 #獲取三天前的時間 4 print('獲取三天前的時間==>',datetime.datetime.now() - datetime.timedel 5 #修改時間為2017年 6 print('修改時間為2017年',datetime.datetime.now().replace(year=2017))DateTime模組例項程式碼
下面是上面程式碼執行的結果,請自己對應下,第一行的sleep程式碼不會顯示結果
1 列印當前時間==> 2018-11-17 12:12:49.234198 2 獲取三天前的時間==> 2018-11-14 12:12:49.234289 3 修改時間為2017年 2017-11-17 12:12:49.234323上面程式碼執行結果
-------------------------------------------- Hua Li Fen Ge Xian --------------------------------------------
- Random模組(一定要匯入Random模組)import random
random() | 隨機0到1之間的小數 |
randint(1,7) | 隨機整數1到7之間的整數 |
randrange(1,3) | 隨機1到3之間的數,隨機值包括1但是不包括3 |
choice() | 隨機字串的字元,引數可以傳入列表 |
sampie(‘字串’,指定隨機幾個值) | 第一個引數的隨機的字串,第二個引數是隨機幾個值 |
uniform(1,3) | 隨機1到3之間的浮點數 |
shuffle() | 傳入一個列表,打亂列表順序 |
1 print('隨機0到1之間的值==>',random.random()) 2 print('隨機整數1到7之間的==>',random.randint(1,7)) 3 print('隨機1到3之間的數,包括1但是不包括3',random.randrange(1,3)) 4 print('隨機字串的字元==>',random.choice('sadsad')) 5 print('隨機字串的字元,第二個引數是隨機多少位==>',random.sample('sadasdas',3)) 6 print('隨機1到3浮點數==>',random.uniform(1,3)) 7 a = [1,2,3,4,5,6] 8 random.shuffle(a) 9 print('傳入列表打亂順序==>',a)Random模組
下面是上面程式碼執行的結果,請自己對應下
1 隨機0到1之間的值==> 0.908484158387085 2 隨機整數1到7之間的==> 1 3 隨機1到3之間的數,包括1但是不包括3 2 4 隨機字串的字元==> a 5 隨機字串的字元,第二個引數是隨機多少位==> ['s', 'd', 's'] 6 隨機1到3浮點數==> 2.857186994266166 7 傳入列表打亂順序==> [4, 3, 2, 5, 1, 6]上述程式碼的結果