1. 程式人生 > >十一、內建模組

十一、內建模組

一、json & pickle

1. 什麼是序列化
序列化就是將記憶體中的資料型別轉成另外一種格式

即:
字典---------序列化--------->其他的格式--------------->存到硬碟
硬碟---讀取---->其他格式----------反序列化-------->字典

2. 為什麼要序列化
1. 持久儲存程式的執行狀態
2. 資料的跨平臺互動



3. 如何序列化
json:
優點: 這種格式是一種通用的格式,所有程式語言都能識別
缺點: 不能識別所有python型別

強調:json格式不能識別單引號

pickle
優點: 能識別所有python型別
缺點: 只能被python這門程式語言識別

二、time與datatime

# 時間分為三種格式:
import time
1. 時間戳
print(time.time())

2. 格式化的字元
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))

3. 結構化的時間物件
print(time.localtime())
print(time.localtime().tm_hour)
print(time.localtime().tm_wday)

print(time.localtime().tm_yday)
print(time.gmtime())

時間轉換
時間戳---->struct_time------->格式化的字串
struct_time=time.localtime(123123)
print(struct_time)

print(time.strftime('%Y-%m-%d',struct_time))

格式化的字串---->struct_time------->時間戳
struct_time=time.strptime('2017-03-11','%Y-%m-%d')
print(struct_time)

print(time.mktime(struct_time))

三、random模組

print(random.random())
print(random.randint(1,3))
print(random.randrange(1,3))
print(random.uniform(1,3))

print(random.choice([1,'a','c']))
print(random.sample([1,'a','c'],2))


item=[1,3,5,7,9]
random.shuffle(item)
print(item)

隨機驗證碼:
def make_code(max_size=5):
res=''
for i in range(max_size):
num=str(random.randint(0,9))
alp=chr(random.randint(65,90))

res+=random.choice([num,alp])

return res


print(make_code(10))