collection模組:python中的擴充套件資料模組#namedtuple: 生成可以使用名字來訪問元素內容的tuple
'''from collections import namedtuple
point=namedtuple('point',['x','y']) #必須起名字 point
p=point(1,2)
print(p.x) #表示座標中的x點
print(p.y)
print(p) #point(x=1, y=2) 表示座標'''
#deque 雙端佇列,快速的從另外一側追加和推出物件 適用於佇列和棧
#佇列queue:先進先出 fifo 堆疊:先進後出 list是線性儲存
'''from collections import deque
q=deque([1,2])#建立乙個佇列,佇列裡面放乙個列表
q.insert(1,4)#插隊
# q.pop()#從後面去資料
# q.popleft()#從前面取資料
print(q.pop())
print(q.popleft())'''
#ordereddict:有序字典---》保持key的順序
'''from collections import ordereddict
d=dict([('a',1),('b',2),('c',3)])
print(d)#c此時無序
d1=ordereddict([('a',1),('b',2),('c',3)])
print(d1)#ordereddict([('a', 1), ('b', 2), ('c', 3)])此時有序'''
# counter:計數器,用來計數 無序的容器型別
#defaultdict:帶有預設值得字典
'''from collections import counter
c=counter('vcbdjsihguirehgslkjfsdkfjiugh')
print(c)
#counter()
'''#給集合排序 大與某個值的和小於某個值的存放在兩個key下面
'''from collections import defaultdict
dic=[11, 22, 33,44,55,66,77,88,99,90]
d1=defaultdict(list)
for i in dic:
if i>66:
else:
print(d1) #defaultdict(, )'''
#時間模組
#匯入時間模組
#常用的方法
# 1.time.time() 獲取當前時間
# 2.time.sleep(secs) 推遲的時間戳
#表示時間的三種方式
#時間戳:時間戳表示的是從2023年1月1日00:00:00開始按秒計算的偏移量。我們執行「type(time.time())」,返回的是float型別
# 元組(struct_time):
# 格式化的時間字串format string 『1999-12-06』
'''import time
#時間戳
x=time.time()
print(x)
#時間字串
y=time.strftime("%y-%m-%d %x")
print(y)'''
#時間元組:localtime將乙個時間戳轉換為當前時區的struct_time
#print(time.localtime())
#time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24,tm_hour=13, tm_min=59, tm_sec=37, tm_wday=0, tm_yday=205, tm_isdst=0)
#時間戳是計算機能夠識別的時間;時間字串是人能夠看懂的時間;元組則是用來操作時間的*****************
#三種方式之間的轉換
#random模組
import random #隨機數
#隨機小數
'''x=random.random() #大於0且小於1之間的小數
print(x)
x1=random.uniform(12,23)#大於12小於23的小數
print(x1)
#隨機整數
y=random.randint(1243,6567) #首尾都baokuo
y1=random.randrange(1,10,2) # 大於等於1且小於10之間的奇數 #不包括wei
print(y)
print(y1)
#隨機選擇多個返回
z=random.sample([1,'23',[4,5]],2) # #列表元素任意2個組合
print(z)
#打亂列表順序
item=[1,23,5,7,97]
x=random.shuffle(item)
print(item)'''
#生成隨機驗證碼
'''def v_code():
code = ''
for i in range(5):
num=random.randint(0,9)
alf=chr(random.randint(65,90))
add=random.choice([num,alf])
code="".join([code,str(add)])
return code
print(v_code())'''
#os模組(作業系統模組):與作業系統互動的乙個介面
#sys模組:與python直譯器互動的乙個介面
#******
# 序列就是字串
# 序列化的應用
# 寫檔案(資料傳輸)
# 網路傳輸
# 序列化模組:將原本的字典、列表等內容轉換成乙個字串的過程就叫做序列化。
# 序列化:記憶體中的物件轉換為位元組序列(字串)
# 反序列化:將位元組序列轉換為記憶體中的物件
# 序列化的目的:
# 1.以某種儲存形式是自定義物件持久化
# 2.將物件從乙個地方傳遞到另乙個地方
# 3.使程式更具有維護性
## json模組:通用的序列化格式 只有很少的一部分資料型別通過json轉化為字串
#可以進行序列化的:數字 字串 元組 列表 不能轉集合
# 1.dumps() 序列化方法
'''dic=
print(type(dic),dic)
import json
str_dic=json.dumps(dic)
print(type(str_dic),str_dic)
#2.loads反序列化方法
dic_d=json.loads(str_dic)
print(type(dic_d),dic_d)'''
#格式化輸出
'''import json
data =
json_dic2 = json.dumps(data,sort_keys=true,indent=2,separators=(',',':'),ensure_ascii=false)
print(json_dic2)
結果;'''
#3.dump和load 不加s 和檔案相關的操作
import json
# dic=
# f=open('fff','w',encoding='utf-8')
# json.dump(dic,f)
# f.close()
# f=open('fff')
# res=json.load(f)
# print(type(res),res)
# pickle模組:所有的python中的資料型別都可以轉化 但只有pyth理解,且部分反序列化依賴**
# shelve模組:序列化控制代碼 直接操作,方便
python各個模組
os.listdir path 以list形式返回路徑下的所有檔名,傳入path時要注意一點,路徑中的反斜線最好使用兩個,使用乙個反斜線加字母容易產生反義歧義 執行結果 注意這個list是無序的 python os官方文件 sort 該函式可以給陣列,鍊錶list或者向量排序,用法 sort fir...
spring中各個模組的作用
spring 有可能成為所有企業應用程式的一站式服務點,然而,spring 是模組化的,允許你挑選和選擇適用於你的模組,不必要把剩餘部分也引入。下面的部分對在 spring 框架中所有可用的模組給出了詳細的介紹。spring 框架提供約 20 個模組,可以根據應用程式的要求來使用。核心容器由核心,b...
spring 中各個模組的作用
spring 有可能成為所有企業應用程式的一站式服務點,然而,spring 是模組化的,允許你挑選和選擇適用於你的模組,不必要把剩餘部分也引入。下面的部分對在 spring 框架中所有可用的模組給出了詳細的介紹。spring4.0 框架提供約 20 個模組,可以根據應用程式的要求來使用。核心容器由核...