這幾天一直趕着寫寫做業,博客的書寫又落下了,要加油鴨,開寫python
今日份目錄數組
1.內置函數閉包
2.遞歸函數函數
開始今日份總結編碼
1.內置函數spa
內置函數就是python內部包含的函數,總計有68種,不過有些事真的每天用,按照我的以及老師的想法會對函數標註重要性code
1.1 三星函數orm
1.1.1 做用域相關函數對象
這倆個函數在學閉包的時候用的比較多blog
locals:函數會以字典的類型返回當前位置的所有局部變量
globals:函數以字典的類型返回所有全局變量
1.1.2 輸入輸出相關
這倆基本是每天用吧
input:用戶交互,接收到的數據都是string類型
print:打印輸出,print的帶參用法
print(1,2,3,sep='|') # 設置打印的分隔符 print(1,2,3,end=' ') # 設置結束時的格式 f = open('log','w',encoding='utf-8') print('寫入文件',file=f)#用打印的方式將打印的內容直接寫入到文件
1.1.3內存相關
hash:獲取一個對象(可哈希對象:int,str,bool,tuple)的哈希值
id:用於獲取對象的內存地址,例如:深淺copy中
1.1.4 文件操做
這個文件操做都在用啊
open: 函數用於打開一個文件,建立一個文件句柄(file對象),相關的方法才能夠調用
1.1.5幫助
help:函數用於查看函數或模塊用途的詳細說明
1.1.6調用相關
callable:函數用於檢查一個對象是否能夠調用,返回True調用對象有可能不成功,可是False是絕對調用失敗
def func(): pass func1 = 77 print(callable(func)) print(callable(func1))
1.1.7迭代器生成器相關
range:函數建立一個整數對象,通常用在for循環中
1.1.8數學運算
sum:求和
min:求最小值,可加key,key爲函數名,經過函數的規則,返回最小值
l1 = [3, 2, 7, 9, 10] print(min(l1)) l1 = [3, 2, 7, 9, -10, -1] print(min(l1,key=abs)) dic = {'a': 3 ,'b': 2,'c': 1} def func(x): # x = a 第一次 # x = b 第二次 # x = c 第二次 return dic[x] dic['a'] 3 dic['b'] 2 dic['c'] 1 print(min(dic)) # 默認比較字典的key 將最小的key返回 print(min(dic,key=func)) # 將dic中的每一個鍵傳入函數中,以函數的返回值比較最小。 print(dic[min(dic,key=func)]) # 將dic中的每一個鍵傳入函數中,以函數的返回值比較最小。 print(min(dic,key=lambda x: dic[x])) # 將dic中的每一個鍵傳入函數中,以函數的返回值比較最小。 print(dic[min(dic,key=func)]) l1 = [('a', 3), ('b', 2), ('c', 1)] # print(min(l1)) print(min(l1,key=lambda x: x[1]))
max:求最大值,能夠加key,key爲函數名,經過函數返回最大值
1.1.9字符相關
str:與編碼相關
bytes:與編碼相關
1.1.10
len:返回長度
sorted:對可迭代對象進行排序操做
zip:將可迭代的對象做爲參數,將對象中對應的元素打包成元祖,若是倆個列表元素長度不一致按照最短的操做
# l1 = [1, 2, 3] # l2 = ['a', 'b', 'c', 5] # l3 = ('*', '**', '***') # iter1 = zip(l1, l2, l3) # # print(iter1) # for i in iter1: # print(i)
filter:返回一個迭代器,相似列表推導式的篩選模式
map:返回一個迭代器,循環相似與列表推導式的循環模式
1.2 二星函數
1.2.1文字處理相關(慎重使用,儘可能不用,有風險)
eval:執行字符串類型的代碼,並返回最終結果。
msg ='1+2+3+4' print(eval(msg)) #結果 10
exec:執行代碼串類型的代碼流
s4 = ''' for i in range(1,5): print(i) ''' print(s4) #exec 執行字符串類型的代碼流 exec(s4) #結果 for i in range(1,5): print(i) 1 2 3 4
complie:將字符串類型的代碼編譯。代碼對象可以經過exec語句來執行或者eval()進行求值。(真沒用過)
1.2.2查看內置屬性
dir:函數不帶參數時,返回當前範圍內的變量;當函數帶參數時,返回參數的屬性與辦法列表
1.2.3迭代器生成器相關
next:內部實際調用的是__next__的方法,返回迭代器的下一個項目
iter:函數用來生成迭代器(一個可迭代對象如何生成一個迭代器)
float:將整數或者是字符串轉換成浮點數
1.2.4進制轉換
bin:十進制轉換成二進制並返回
oct:十進制轉換成八進制並返回
hex:十進制轉換成十六進制並返回
1.2.5 數字相關
bool:給參數轉換成布爾類型
int:將一個字符串或者是數字轉換爲整型,有些浮點型的會直接截斷小數直接取整
abs:返回一個數字的絕對值
round:保留浮點數的小數位數,默認是保留整數
pow:求冪
tuple:將一個可迭代對象轉換成元祖,(若是是字典,默認將key放在元祖中)
reversed:將一個序列翻轉,並返回此翻轉序列的迭代器
dict:建立一個字典,與dic有區別的
set:建立一個集合
frozenset:返回一個凍結的集合
1.3 一星函數
__import__:函數用於動態加載類和函數
slice:用於生成一個切片對象,方便列表切片
format:與具體數據相關,主要用於各類小數,精算等(若是是數據分析用 的比較多)
bytearry:返回一個新字節的數組
memoryview:
ord:找到一個字符在ascii碼中的位置
chr:與ord相反,輸入數字找到對應ascii碼中的字符
2.遞歸函數
人理解函數, 神理解遞歸
遞歸函數,就是函數本身調用自己,本身玩本身
def func1(): # print("我是誰") # print("我在哪") # func1() # # func1() # import sys # print(sys.getrecursionlimit()) # def func1(n): # n += 1 # print(n) # func1(n) # # func1(0) # sys.setrecursionlimit(100000) # 遞歸函數,會在內存空間不斷地開闢新的內存空間,直到內存佔滿爲止 # def func1(n): # n += 1 # print(n) # func1(n) # # func1(0) # 遞歸函數的應用: # os模塊的三個知識點 # import os # # file_list = os.listdir("D:\python騎士計劃3期") # (1)獲取目錄下全部文件和目錄, 經過list返回 # # print(file_list) # # for file in file_list: # file_path = os.path.join("D:\python騎士計劃3期", file) # (2)將上級文件路徑與文件拼接,返回文件路徑 # # print(file_path) # if os.path.isdir(file_path): # (2)判斷文件是不是目錄 # print("這是目錄", file) # else: # print("這是文件", file) import os def read(path, n): # n = 0 file_list = os.listdir(path) # 獲取目錄下全部文件和目錄, 經過list返回 for file in file_list: file_path = os.path.join(path, file) # 將上級文件路徑與文件拼接,返回文件路徑 if os.path.isdir(file_path): # 判斷文件是不是目錄 print(" " * n, file) read(file_path, n+1) else: print(" " * n, file) read("D:\python騎士計劃3期", 0)