python那些事儿编程技巧_python一些编程技巧(持续更新)
def xxx(x1,x2,n=3):
#一般函數中會傳遞數一個或數個可變參數以及一個默認位置參數
#可變參數 *karg
def xxx(*xx):
s=0
for i in xx:
s+=i
return s
#可以在函數中輸入一個或多個變量,系統默認將多個變量組成tuple來處理
num=[1,2,3,4]
print(xxx(*num)) #如果參數就是個列表,那么在函數之中,可以對列表名加個可變參數符號*,將列表變成可變參數傳遞
#關鍵詞參數,可以不受限制的輸入,以dict的形式傳入
def xxx(name='bob',age=24,**kw):
print({'NAME':name,'AGE':age,'others':kw})
print(xxx('bob',24,city='nanjing',nation='china'))
print(xxx('bob',24,city='nanjing',nation='china',waihao='stupid'))
#和上面可變參數一樣,如果輸入參數本身就是一個字典,則可以將字典名加上**,將字典中的元素傳遞函數當中
d={'city':'nanjing','nation':'china','birth':1994}
print(xxx(**d))
#命名關鍵詞參數,限制關鍵詞的輸入
#例如只想要city和nation的信息,在關鍵詞之前加上* 如果函數參數中有可變參數。則不需要加*
def xxx(name='bob',age=24,*,city,nation): def xxx(name='bob',age=24,*args,city,nation)
print({'NAME': name, 'AGE': age, 'city':city,'nation':nation})
xxx(city='nanjing',nation='china')
#一個完整的函數中包括必選參數、默認參數、可變參數、命名關鍵字參數和關鍵字參數,順序不能打亂
def xxx(name,age=24,*args,city,**kw):
def xxx(name,age=24,*,city,**kw):
#遞歸函數 (一個函數在內部調用函數自身)
#比如階乘函數:
def xxx(n):
if n==1:return 1
return n*xxx(n-1)
#函數式編程 (高階函數) 將函數本身作為變量賦予另一個函數
#map(),reduce(),filter(),sorted()
def F(x,y,f): #這里f本身就是一個函數
return f(x)+f(y)
print(F(1,-4,abs))
#map/reduce的用法 (高階函數)
'''map()函數接收兩個參數,一個是函數,一個是Iterable,map將傳入的函數依次作用到序列的每個元素,并把結果作為新的Iterator返回。'''
def fun(x):
return x*x
print(list(map(str,[3,4,5,6,7]))) #將列表所有元素轉換為字符串
'''reduce把一個函數作用在一個序列[x1, x2, x3, ...]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算,其效果就是:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)'''
from functools import reduce # 階乘/累乘
def f(x,y):
return x*y
print(reduce(f,[1,2,3,4,5,6]))
#過濾函數filter() filter(fun,list),篩選掉那些不滿足函數的值,用法和map相似
#返回0-1000內所有的回數(左到右或右到左一樣)
def huishu(x):
s=str(x)
return s[::]==s[::-1]
print(list(filter(huishu,range(10,1001))))
#sorted()排序函數 對象時iterable對象
#sorted(l,key=function,reverse=False) key實現自定義排序,reverse=True實現倒序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
L=np.array(L)
#對列表名字實現排序
def byname(l):
return l[0]
print(sorted(L,key=byname)
print(sorted(L,key=lambda l:l[0])) 利用匿名函數
#對成績高低實現排序
def byscore(s):
return s[1]
print(sorted(L,key=byscore,reverse=True))
#函數中return函數 ‘閉包’
#還未更新
#匿名函數 lambda
def is_odd(n):
return n%2==1
print(list(filter(is_odd,range(1,20))))
print(list(filter(lambda x:x%2==1,range(1,20))))
#裝飾器 decorator
#還未更新
#偏函數 partial function 將函數的 關鍵詞參數 修改為默認值
#把一個函數的某些參數固定住并賦予一個新的函數,使新函數在使用起來更簡單
from functools import partial
max2=partial(max,10)
print(max2(1,2,3,4,5)) 等價于 print(max2(10,2,3,4,5))
int2=partial(int,base=6) #int2改為六進制
print(int2('120'))
總結
以上是生活随笔為你收集整理的python那些事儿编程技巧_python一些编程技巧(持续更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么查看linux日志里请求量最高的ur
- 下一篇: python考试题库程序改错_求助,程序