程式設計的方**
面向過程:找到問題的
函式式:不可變、不用變數儲存狀態、不修改變數
物件導向:
高階函式:
滿足倆個特性任意乙個即為高階函式
1.函式的傳入引數是乙個函式名
2.函式的返回值是乙個函式名
map函式:
num_l=[1,2,10,5,3,7]# 計算該列表中數的平方值
方法一:
# ret=
# for i in num_l:
# print(ret)
方法二:
def map_test(array):
ret=
for i in num_l:
return retret=map_test(num_l)
print(ret)
方法三:
#大寫轉換
msg='wuxiping'
print(list(map(lambda x:x.upper(),msg)))
filter函式:
# movie_people=['sb_alex','sb_wupeiqi','linhaifeng','sb_yuanhao']
# def filter_test(array):
# ret=
# for p in array:
# if not p.startswith('sb'):
# return ret
# print(filter_test(movie_people))
# movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
# def sb_show(n):
# return n.endswith('sb')
# def filter_test(func,array):
# ret=
# for p in array:
# if not func(p):
# return ret
# res=filter_test(sb_show,movie_people)
# print(res)
#終極版本
movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
# def sb_show(n):
# return n.endswith('sb')
#lambda n:n.endswith('sb')
def filter_test(func,array):
ret=
for p in array:
if not func(p):
return ret
res=filter_test(lambda n:n.endswith('sb'),movie_people)
print(res)
#filter函式
movie_people=['alex_sb','wupeiqi_sb','linhaifeng','yuanhao_sb']
#print(filter(lambda n:n not n.endswith('sb',movie_people)))
res=filter(lambda n:not n.endswith('sb'),movie_people)
print(list(res))
reduce函式:
from functools import reduce
# num_l=[1,2,3,100]
# res=0
# for num in num_l:
# res+=num
# print(res)
#相加# num_l=[1,2,3,100]
# def reduce_test(array):
# res=0
# for num in num_l:
# res+=num
# return res
# print(reduce_test(num_l))
#相乘# num_l=[1,2,3,100]
# def reduce_test(func,array):
# res=array.pop(0)
# for num in array:
# res=func(res,num)
# return res
# print(reduce_test(lambda x,y:x*y,num_l))
# 指定初始值
# num_l=[1,2,3,100]
# def reduce_test(func,array,init=none):
# if init is none:
# res=array.pop(0)
# else:
# res=init
# for num in array:
# res=func(res,num)
# return res
# print(reduce_test(lambda x,y:x*y,num_l,100))
#reduce函式
num_l=[1,2,3,100]
print(reduce(lambda x,y:x+y,num_l,1))
print(reduce(lambda x,y:x+y,num_l,))
總結:
#總結:
# map函式:處理序列中的每個元素,得到的結果是乙個『列表』,該『列表』元素個數和位置與原來一樣
#filter函式:遍歷序列中的每個元素,判斷每個元素得到布林值,如果是true則留下來得到的結果是乙個『列表』
# people=[,
# ,
# ,
# ,]
# print(list(filter(lambda p:p['age']<=18,people)))
#reduce函式:處理 乙個序列,把序列進行合併操作
# num_l=[1,2,3,100]
# print(reduce(lambda x,y:x+y,num_l,1))
# print(reduce(lambda x,y:x+y,num_l,))
內建函式:
# print(abs(-1))
# print(all([1,2,'1']))#做布林運算(所有的都是true才返回true)
# name='你好'
# print(bytes(name,encoding='utf-8')) #編碼,三個位元組
# print(bytes(name,encoding='utf-8').decode('utf-8'))# 解碼
# print(bytes(name,encoding='gbk'))#兩個位元組
# print(bytes(name,encoding='gbk').decode('gbk'))
# #print(bytes(name,encoding='ascii'))#ascii 不能編碼中文
# print(chr(100))
# print(dir(all))
# print(divmod(10,3))
# dic=
# dic_str=str(dic)
# print(dic_str)
# print(eval(dic_str))eval()函式:以python的方式解析並執行字串,並將返回的結果輸出# d1=eval(dic_str)#把字串中的資料結構給提取出來# print(d1['name'])
# a='1+2*(3/3-1)-2'#把字串中的表示式進行運算# print(eval(a))
#可hash的資料型別即不可變資料型別,不可hash的資料型別即可變資料型別
# print(hash('dhfsaklefownfs2134254'))
# print(hash('-03thjsdnfkgqopw3utjlsdfml;'))
# name='alex'
# print(hash(name))
# print(hash(name))
# print(hash(name))
# print(help(dir))
# print(bin(10)) #10進製轉換成2進製
# print(hex(12)) #16
# print(oct(12)) #8
# print(isinstance(1,int))
# print(isinstance('abc',int))
# print(isinstance('abc',str))
name='哈哈哈哈'
print(globals())
print(__file__)
print(locals())
python學習day16 內建函式二
資料型別 int bool float等等 資料結構 dict tuple list set str 內建函式 l 1,2,3,4,5 l.reverse print l l 1,2,3,4,5 l2 reversed l 保留原列表,返回乙個反向的迭代器 print l2 l 1,2,3,4,5,...
day16 高階函式
匿名函式 高階函式 滿足倆個特性任意乙個即為高階函式 1.函式的傳入引數是乙個函式名 2.函式的返回值是乙個函式名 map num l 1,2,10,5,3,7 lambda x x 1 def add one x return x 1 lambda x x 1 def reduce one x r...
day16 匿名函式
匿名函式 函式名 lambda 引數1,引數2,返回值 注意 匿名函式不允許換行 匿名函式返回值和正常函式一樣可以是任意資料型別 def add x,y return x y add lambda x,y x y print add 3,6 dic def func num return dic n...