一.random模塊python
取隨機小數:數學計算shell
1 import random 2 print(random.random()) # 取0-1之間的小數 3 print(random.uniform(1.,2)) #取1-2之間的小數
取隨機整數:彩票 抽獎bash
import random print(random.randint(1,2)) #[1,2] print(random.randrange(1,2)) # [1,2) print(random.randrange(1,10,2)) #大於等於1且小於10之間的奇數
從一個列表中隨機抽取值: 抽獎dom
1 import random 2 l= ["s","b",(1,2),123] 3 print(random.choice(l)) 4 print(random.sample(l, 2))
打亂一個列表的順序,在原列表的基礎上直接進行修改,節省空間 :洗牌函數
1 import random 2 l = ["s","b",(1,2),123] 3 random.shuffle(l) 4 print(l)
習題 :驗證碼spa
1 # 四位驗證碼 2 import random 3 s = "" 4 for i in range(4): 5 sum = random.randint(0,9) 6 s += str(sum) 7 print(s) 8 # 六位驗證碼 9 import random 10 s = "" 11 for i in range(6): 12 sum = random.randint(0,9) 13 s = s + str(sum) 14 print(s) 15 # 函數版本 16 import random 17 def code(n=6): 18 s = "" 19 for i in range(n): 20 num = random.randint(0,9) 21 s = s+ str(num) 22 return s 23 print(code(4)) 24 print(code()) 25 # 6位數字+字母驗證碼 26 import random 27 def code(n = 6): 28 s = "" 29 for i in range(n): 30 num = str(random.randint(0,9)) 31 alpha_upper = chr(random.randint(65,90)) 32 alpha_lower = chr(random.randint(97,122)) 33 ret = random.choice([num,alpha_upper,alpha_lower]) 34 s +=ret 35 return s 36 print(code(4)) 37 print(code()) 38 # 一塊兒的 39 import random 40 def code(n=6,alpha = True): 41 s = "" 42 for i in range(n): 43 sum = str(random.randint(0,9)) 44 if alpha: 45 alpha_upper = chr(random.randint(65,90)) 46 alpha_lower = chr(random.randint(97,122)) 47 sum = random.choice([sum,alpha_upper,alpha_lower]) 48 s += sum 49 return s 50 print(code(4,False)) 51 print(code())
二.時間模塊命令行
1 #經常使用方法 2 1.time.sleep(secs) 3 (線程)推遲指定的時間運行。單位爲秒。 4 2.time.time() 5 獲取當前時間戳
時間格式:線程
1.格式化的時間字符串(Format String): ‘1999-12-06’code
2.結構化時間 元組(struct_time) :struct_time元組共有9個元素共九個元素:(年,月,日,時,分,秒,一年中第幾周,一年中第幾天等)orm
3.時間戳(timestamp) :一般來講,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量。咱們運行「type(time.time())」,返回的是float類型。
索引(Index) | 屬性(Attribute) | 值(Values) |
---|---|---|
0 | tm_year(年) | 好比2011 |
1 | tm_mon(月) | 1 - 12 |
2 | tm_mday(日) | 1 - 31 |
3 | tm_hour(時) | 0 - 23 |
4 | tm_min(分) | 0 - 59 |
5 | tm_sec(秒) | 0 - 60 |
6 | tm_wday(weekday) | 0 - 6(0表示週一) |
7 | tm_yday(一年中的第幾天) | 1 - 366 |
8 | tm_isdst(是不是夏令時) | 默認爲0 |
小結:時間戳是計算機可以識別的時間;時間字符串是人可以看懂的時間;元組則是用來操做時間的
幾種格式之間的轉換
時間戳時間
import time print(time.time())
格式化時間
import time print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2018-0/8-20 print(time.strftime("%y-%m-%d %H:%M:%S")) # 1/8-08-20 print(time.strftime("%c")) # Mon Aug 20 16:59:08 2018
結構化時間
1 import time 2 struct_time = time.localtime() 3 print(struct_time) 4 print(struct_time.tm_mon)
時間戳換成字符串時間
1 import time 2 struct_time = time.localtime(1500000000) 3 print(time.gmtime(1500000000)) 4 # time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0) 5 6 ret = time.strftime('%y-%m-%d %H:%M:%S',struct_time) 7 print(ret) 8 # 17-07-14 10:40:00
字符串時間 轉 時間戳
1 import time 2 struct_time = time.strptime('2018-8-8','%Y-%m-%d') 3 print(struct_time) 4 # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=220, tm_isdst=-1) 5 res = time.mktime(struct_time) 6 print(res) 7 # 1533657600.0
習題
1 # 1.查看一下2000000000時間戳時間表示的年月日 2 # 時間戳 - 結構化 - 格式化 3 import time 4 struct_t = time.localtime(2000000000) 5 print(struct_t) 6 print(time.strftime('%y-%m-%d',struct_t)) 7 8 # 2.將2008-8-8轉換成時間戳時間 9 import time 10 t = time.strptime('2008-8-8','%Y-%m-%d') 11 print(time.mktime(t)) 12 13 # 3.請將當前時間的當前月1號的時間戳時間取出來 - 函數 14 # 2018-8-1 15 import time 16 def get_time(): 17 st = time.localtime() 18 st2 = time.strptime('%s-%s-1'%(st.tm_year,st.tm_mon),'%Y-%m-%d') 19 return time.mktime(st2) 20 print(get_time()) 21 22 # 4.計算時間差 - 函數 23 # 2018-8-19 22:10:8 2018-8-20 11:07:3 24 # 通過了多少時分秒 25 import time 26 str_time1 = '2018-8-19 22:10:8' 27 str_time2 = '2018-8-20 11:07:3' 28 struct_t1 = time.strptime(str_time1,'%Y-%m-%d %H:%M:%S') 29 struct_t2 = time.strptime(str_time2,'%Y-%m-%d %H:%M:%S') 30 timestamp1 = time.mktime(struct_t1) 31 timestamp2 = time.mktime(struct_t2) 32 sub_time = timestamp2 - timestamp1 33 gm_time = time.gmtime(sub_time) 34 # 1970-1-1 00:00:00 35 print('過去了%d年%d月%d天%d小時%d分鐘%d秒'%(gm_time.tm_year-1970,gm_time.tm_mon-1, 36 gm_time.tm_mday-1,gm_time.tm_hour, 37 gm_time.tm_min,gm_time.tm_sec))
三.sys模塊
sys 是和Python解釋器打交道的
sys.argv 命令行參數List,第一個元素是程序自己路徑
import sys print(sys.argv) # argv的第一個參數 是python這個命令後面的值
sys.exit(n) 退出程序,正常退出時exit(0),錯誤退出sys.exit(1)
1 import sys 2 usr = input('username') 3 pwd = input('password') 4 # usr = sys.argv[1] 5 # pwd = sys.argv[2] 6 if usr == 'alex' and pwd == 'alex3714': 7 print('登陸成功') 8 else: 9 exit()
sys.path 返回模塊的搜索路徑,初始化時使用PYTHONPATH環境變量的值
1 import sys 2 sys.path 3 print(sys.path)
1 import sys 2 import re 3 sys.modules 4 print(sys.modules) # 是咱們導入到內存中的全部模塊的名字 : 這個模塊的內存地址 5 print(sys.modules['re'].findall('\d','abc126')) 6 # ['1', '2', '6']
四.os模塊
1 os.makedirs('dirname1/dirname2') 可生成多層遞歸目錄 2 os.removedirs('dirname1') 若目錄爲空,則刪除,並遞歸到上一級目錄,如若也爲空,則刪除,依此類推 3 os.mkdir('dirname') 生成單級目錄;至關於shell中mkdir dirname 4 os.rmdir('dirname') 刪除單級空目錄,若目錄不爲空則沒法刪除,報錯;至關於shell中rmdir dirname 5 os.listdir('dirname') 列出指定目錄下的全部文件和子目錄,包括隱藏文件,並以列表方式打印 6 os.remove() 刪除一個文件 7 os.rename("oldname","newname") 重命名文件/目錄 8 os.stat('path/filename') 獲取文件/目錄信息
1 os.system("bash command") 運行shell命令,直接顯示 2 os.popen("bash command).read() 運行shell命令,獲取執行結果 3 os.getcwd() 獲取當前工做目錄,即當前python腳本工做的目錄路徑 4 os.chdir("dirname") 改變當前腳本工做目錄;至關於shell下cd