Python基礎學習筆記(二)

2021-10-05 19:54:08 字數 2923 閱讀 7220

#時間裝飾器,日誌裝飾器

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...