#時間裝飾器,日誌裝飾器
def log(func):
def logger_warpper(*args,**kwargs):
print(func.__name__+' is running')
result = func(*args,**kwargs)
print(func.__name__+' is finish')
return result
return logger_warpper
@log
def timer (func):
def time_warpper(*args,**kwargs):
from time import time
start_time = time()
result = func(*args,**kwargs)
end_time = time()
use_time = end_time - start_time
print(func.__name__+' use %.6f' % (use_time))
return result
return time_warpper
@timer
def f(n):
sum = 0
for i in range(n):
sum += i
return sum
print(f(100000))
#輸出的結果
timer is running
timer is finish
f use 0.010936
4999950000
tuple:是不可變的資料結構,初始化後就不可以改變,多用於查詢
set:不重複的集合
dict:key-value的形式,key必須是不可變的元素,key不可重複
time:用於獲取時間
re:進行正規表示式的匹配
re.findall()查詢所有匹配的字串
re.match()從開始位置開始匹配,如果開始位置匹配不上則返回none
re.search()掃瞄整個字串,檢視是否有匹配
itertools:迭代的模組
request:用於進行http請求,request.post(url,body),request.get(url,params)
os:檔案路徑,os.listdir(path)獲取path下的所有檔案和資料夾,os.path.join(file,path)連線路徑
list = [1,2,3] ,每個值只可以取一次
from itertools import combinations
l = [1,2,3]
print(list(combinations(l,2)))
結果[(1, 2), (1, 3), (2, 3)]
list = [1,2,3] ,每個值只可以取一次的全排列
from itertools import permutations
l = [1,2,3]
print(list(permutations(l,2)))
結果[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]
list = [1,2,3] ,可以重複取值
from itertools import product
l = [1,2,3]
print(list(product(l,repeat=2)))
結果[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
str = ' abc def g '
print(str.strip())
只除去首位,結果:abc def g
print(str.split(' '))
按空格進行切割,結果是list,['', '', '', 'abc', 'def', 'g', '', '', '']
列表生成式
l = [x for x in range(3)]
print(l)
#結果是個list,[0, 1, 2]
生成器g = (x for x in range(3))
print(g)
#直接print的話無法看到結果at 0x000000000224d138>
#通過for迴圈或者next()來獲取結果
for i in g:
print(i)
生成器函式
def fungenerator(n):
for i in range(n):
yield i#yield可以返回乙個結果
f = fungenerator(3)
print(f)
#直接print的話無法看到結果at 0x000000000224d138>
#通過for迴圈或者next()來獲取結果
for i in f:
print(i)
在執行期間動態修改乙個類或模組會比較靈活。
功能:引用團隊通用庫里的模組,又想豐富模組的功能,就可以用猴子補丁
用ujson替換json又不需要改其他的**
import json
import ujson
def monkey_patch_json():
json.__name__ = 'ujson'
json.dumps = ujson.dumps
json.loads = ujson.loads
monkey_patch_json()
python基礎學習筆記二
二 資料型別 3 bool 布林 4 list 列表 5 tuple 元組 6 dict 字典 7 set 集合 包含 英文本母 數字 特殊字元 大小 8bit 1byte 包含 中文 是國標碼 大小 16bit 2byte 包含 萬國碼 大小 32bit 4byte 包含 英文 歐洲文字 中文 英...
python學習筆記(二) python基礎函式
python之所以強大好用,離不開可以呼叫的各種庫,同時也和他自身函式相關,下面為學習python函式相關知識後整理知識點。1 python函式引數 python函式定義簡單但靈活度非常大。除正常定義的必選引數外,還可以使用預設引數,可變引數,關鍵字引數。預設引數 def power 5 x 2 在...
Python基礎函式學習筆記 二
一 格式化列印輸出 乙個輸出時 兩個輸出時 輸出換行 print預設輸出自動加換行,如下所示 rabbits 20 print rabbits cages 15 print cages 結果如下所示 如果要在同一行顯示的話,可以在行末加逗號,如下 二 使用者輸入 兩個函式input和raw inpu...