Pyhton學習——Day7

##############################################匿名函數##################################################### lambda x:x+1# def calc(x):#     return x+1# calc(10)#用匿名函數來表示#####基本語法結構####lambda + 匿名函數的形參+函數表達處理公式(至關於函數的return)# lambda x:x+1# res = lambda x:x+1# print(res(10)###########根據輸入的內容修改################################################################################## name = 'alex'# def name_change(name):#     name = input('>>>')#     print(name)# name_change(name)###########匿名函數#####################須要和其餘函數一塊兒使用,通常不是獨立存在的############################### name = 'alex'# name_change = input(">>>")# lambda name:name_change# test = lambda name:name_change# print(test(name_change))##########匿名函數#####################只能使用一行,不能進行邏輯判斷################################################################################################################################################################編程方法論:#1.面向過程式編程#2.函數式編程#3.面向對象#####################################什麼是過程?#沒有返回值的對象就是面向過程,過程也是函數#面向過程就是把大的問題分解成小的問題,基本單位就是函數######################################## 什麼是函數式編程?# 和麪向對象同樣,基本單位都是函數#函數式編程 = 編程語言定義的函數 + 數學意義的函數#相比面向過程,函數式編程會更爲精簡,都是可讀性差#python不是一門嚴格意義上的函數式編程語言########################################函數式編程的特性#1.不可變,不用變量保存狀態,不修改變量#2.函數體內不該該有任何形式的賦值操做#3.儘可能不要使用在子函數去改全局變量########################################### def foo(n):#     print(n)# def bar(name):#     print('my name is %s' %name)# foo(bar('alex'))# 把函數當作參數傳值,傳給另外一個函數# def foo():#     print('from foo')#     return foo# print(foo()())######################################高階函數##################################################1.把函數當作參數傳給另一個函數#2.返回值中包含函數##############################高階函數用於構成裝飾器############################################——————————————————————————————————————————————###############################尾調用優化###########################################################尾調用:在函數的最後一步調用另一個函數(最後一行不必定是函數的最後一步)#——————————————————————————————————————————————################################map函數############################################################### num_1 = [1,2,10,5,3,7]#根據列表得出全部的元素的平方組成列表# ret = []# for item in num_1:#     ret.append(item**2)# print(ret)# [1, 4, 100, 25, 9, 49]#############################封裝函數############################################################### num_1 = [1,2,10,5,3,7]# def map_test(array):#     ret = []#     for item in num_1:#         ret.append(item**2)#     return ret# print(map_test(num_1))#————————————————————————————————————————————————## num_1 = [1,2,10,5,3,7]# def add_one(x):#lambda x:x+1#     return x+1# def min_one(x):#     return x-1# def map_test(func,array):#     ret = []#     for item in num_1:#         res =  func(item)#         ret.append(res)#     return ret# print(map_test(add_one,num_1))######終極版本############## num_1 = [1,2,10,5,3,7]# def map_test(func,array):#     ret = []#     for i in array:#         res = func(i)#         ret.append(res)#     return ret# print(map_test(lambda x:x-1,num_1))# [0, 1, 9, 4, 2, 6]#########################map函數###################################################################### num_1 = [1,2,10,5,3,7]# res = map(lambda x:x-1,num_1)# print('內置函數map,處理結果',res)# 內置函數map,處理結果 <map object at 0x00000000027B8128># [0, 1, 9, 4, 2, 6]# for i in res:#     print(i)# print(list(res))#map實際是迭代器#map 兩個參數,第一個填方法,第二個寫可迭代對象#———————————————————————————————————————————————————######################################filter函數########################################################## movie_person = ['alex','wupeiqi','yuanhao','sb_alex','linhaifeng']# def sb_show(n):#     return n.endswith('sb')# def filter_test(array):#     ret = []#     for p in array:#         if not p.startswith('sb'):#             ret.append(p)#     return ret# print(filter_test(movie_person))# movie_person = ['alex','wupeiqi','yuanhao','sb_alex','linhaifeng']# res = filter(lambda x:not x.startswith('sb'),movie_person)# print(list(res))# ['alex', 'wupeiqi', 'yuanhao', 'linhaifeng']#——————————————————————————————————————————————————————##################################reduce函數#################################################################### from functools import reducenum_l = [1,2,3,4,5,6,100]# res = 0# for num in num_l:#   res+=num# print(res)# def reduce_test(func,array):#     res = 0#     for num in (array):#         res+=num#     return res# print(reduce_test(num_l))#reduce函數實際就是壓縮數據,使用方法:函數+序列+初始值#################################################################總結#######################1.map用來處理序列中的每一個元素,獲得的結果是一個迭代器形式的列表(元素的格式及位置與原來同樣)#2.filter函數時遍歷序列中的每個元素,判斷每一個元素,獲得布爾值,若是是True則留在內存中[用於過濾數據]#3.reduce就是合併數據#——————————————————————————————————————————————————###########################################內置函數######################################################### 1.abs()取絕對值# print(abs(-5))# 5################## 2.all()表明全部的值,全部的元素取出作布爾運算,0 None ‘ ’爲假,全部的結果都是真則爲真,有一個爲假則爲假# print(all([1,2,'1']))# True#3.any()表明任意的值,有一個爲假,則全爲假,有一個爲真則全爲真# print(any([1,2,'3',0]))# True# 4.bin()十進制轉換爲二進制# print(bin(3))# 0b11# 5.bool判斷布爾值,空、None、0布爾值爲False#6.bytes()表明把字符串轉換爲字節的形式,經過2進制傳輸# name = "你好"# print(bytes(name,encoding='UTF-8').decode('UTF-8'))#用什麼方式編碼就要用什麼解碼#7.classmethod()#8.delattr()#9.dict()字典#10.dir()目錄,某一個對象下所具備的全部方法#11.divmod()取商得餘數,能夠用來作網頁的分頁功能# print(divmod(10,3))10表明總記錄,3表明每頁顯示3條記錄# (3, 1)#12.eval()將字符串中的字典提取出來,去除字符串,並執行數值計算# dic = {'name':'alex'}# dic_str = str(dic)# print(dic_str)# print(eval(dic_str))#13.hash()可hash的數據類型即不可變的數據類型,不可hash的位可變的數據類型# hash實際是一種算法,根據算法得出hash值,任何值都會被算爲指定位數的值,不能反推出值,變量不變,hash值不變#hash使用方法:網絡下載時,數據傳輸時修改木馬程序,致使電腦中毒,對軟件總體作hash運算,將值和軟件同時下載#下載後解碼時使用hash值得出下載值,只要hash值相同及軟件未被修改#14.help查看方法的使用#15.bin(10)十進制轉換爲二進制#16.hex(12)十進制轉換爲十六進制#17.oct(12)十進制轉換爲8進制#18.isinstance()什麼是什麼的實例,判斷輸入的數據是否是該類的數據類型# print(isinstance(1,int))# True#19.globals 系統處理成相對路徑# name = '哈哈哈哈哈哈哈'# print(globals())#max()、min()取最大最小值
相關文章
相關標籤/搜索