內建函式和裝飾器
內建函式補充
callable() #檢測一個東西能否被呼叫
def f1(): pass f2 =123 print(callable(f1)) print(callable(f2))
# chr() 數字轉化成字母
# ord() 字母轉化成數字
r = chr(65) print(r) n = ord("a") print(n)
#隨機碼 65到90
import random li = [] for n in range(6): r = random.randrange(0,5) if r ==2 or r ==4: num = random.randrange(0,10) li.append(str(num)) else: i = random.randrange(65,91) c = chr(i) li.append(c) result = "".join(li) print(result)
#Python join() 方法用於將序列中的元素以指定的字元連線生成一個新的字串,不同資料型別拼接會失敗
# compile() #把字串編譯成python程式碼
# eval() #執行,接收:表示式,並且獲取結果 有返回值
# exec() #執行python程式碼,接收:程式碼或者字串 沒有返回值
s = "print(123)"
#編譯
r = compile(s,"<string>","exec")
#執行
exec(r)
m = "8*8" ret = eval(m) print(ret)
#dir()用來快速獲取模組,物件,類提供了哪些功能 不詳細
# print(dir(dict))
#help(list)檢視幫助,詳細
divmod()
共97條,每頁顯示10條,需要多少頁
# r = divmod(97,10) # print(r[0]) # print(r[1]) # n1,n2 = divmod(97,10)
isinstance()#用來判斷某個物件是否是某個類的例項
s = "alex" r1 = isinstance(s,dict) r2 = isinstance(s,str) print(r1,r2)
#filter
# def f1(args): # result = [] # for item in args: # if item > 22: # result.append(item) # return result # li = [11,22,33,44,55] # ret = f1(li) # print(ret) #filter(函式,可迭代的物件) def f2(a): if a >22: return True li = [11,22,33,44,55] ret = filter(f2,li) print(list(ret)) # #filter內部,迴圈第二個引數 # result = [] # for item in 第二個引數: # r = 第一個引數(item) # if r: # result(item) #return result #filter,迴圈第二個引數,讓每個迴圈元素執行函式,如果函式返回值True,表示元素合法 li2 = [11,22,33,44,55] result = filter(lambda a: a > 33,li2) print(list(result))
#map(函式,可迭代的物件)
li = [11,22,33,44,55] def f1(args): result = [] for i in args: result.append(100+i) return result r = f1(li) print(r) def f2(a): return a + 100 #result = map(f2,li) result = map(lambda a: a + 100,li) print(list(result))
#區別
#filter 函式返回True,將元素新增到結果中
#map 將函式返回值新增到結果中
#globals,locals
NAME = "wangxin" def show(): a = 123 c = 123 print(locals()) print(globals()) show()
#hash() 一般python內部使用,知道
s = "sadfsadfsadf"
print(hash(s))
#id()檢視記憶體地址
#len()
s = "無馨"
print(len(s)) #python3預設按照字元、也可以轉化成位元組檢視,python2只能以位元組方式檢視
b = bytes(s.encoding='utf-8')
print(len(b))
#max,min,sum
r1 = max([11,22,33,44])
r2 = min([11,22,33,44])
r3 = sum([11,22,33,44])
#pow()
# 2**10
# r = pow(2,10)
# print(r)
#repr(),使用時會去呼叫這個物件的類裡面的repr方法
#reversed,反轉,同列表的反轉
#round 四捨五入
#slice 和切片功能一樣
# s = "wangyuehan"
# print(s[0:2])
#sorted 排序,和列表排序一樣
#zip 將可迭代的物件作為引數,將物件中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。
l1 = ["likai",11,22] l2 = ["is",11,22] l3 =["sb",11,22,33] r = zip(l1,l2,l3) temp = list(r)[0] ret = ' '.join(temp) print(ret)
裝飾器
#!/usr/bin/env python #-*- coding:utf-8 -*- import s2 ret = s2.f1("fafafa") print("返回值",ret) s2.f2(11,22)
#!/usr/bin/env python #-*- coding:utf-8 -*- def outer(func): def inner(*args,**kwargs): print('before') r = func(*args,**kwargs) print("after") return r return inner # @ + 函式名 # 功能 # 1.自動執行outer函式並且將其下面的函式名f1當作引數傳遞 # 2.將outer函式的返回值,重新賦值給f1 @outer def f1(arg): print(arg) return "哈哈" @outer def f2(a1,a2): print("F2")