python學習心得

2022-08-22 01:33:11 字數 2803 閱讀 4460

一,高階特性:

1,切片:[start:stop:step]

>>>l=range(6)

>>>l[3,-1,2]

resulte is [3]

2,迭代

2.1按itervalues()

>>> d=

>>> for k in d:

... print k,d[k]

...

1 22 3

3 4

2.2 按iteritems()

>>> for v in d.iteritems():

... print v

...

(1, 2)

(2, 3)

(3, 4)

以元組形式返回

2.3 帶索引輸出:enumerate

>>> for i,value in enumerate(['a','b','c']):

... print i,value

...

0 a1 b

2 c

2.4 生成器:一邊迴圈一邊計算的機制,稱為生成器(generator),有利於節省儲存空間,相當於鍊錶中next

>>> def fib(max):

... n,a,b=0,0,1

... while n>> fib(6)

>>> for i in fib(6):

... print i

... 11

2358

(二),函式式程式設計

1,高階函式:函式名當作方法的引數變數

>>> def add(x,y,abs):

... return abs(x)*abs(y)

>>> def cut(x,add):

... return x-add(x,x,abs)

...

>>> cut(1,add)

0

2,map

把使用者輸入的不規範的英文名字,變為首字母大寫,其他小寫的規範名字

map(lambda s :s.capitalize(),['ac','ac']

[ac,ac]

reduce:

>>> l=map(lambda s:s.capitalize(),['ac','ac'])

>>> reduce(lambda x,y:x+y,l)

'acac'

filter:

>>> import math

>>> def isprim(s):

... for i in range(2,int(math.sqrt(s)+1)):

... if s%i==0:

... return false

... return true

...

>>> filter(isprim,range(2,10))

[2, 3, 5, 7]

>>> import time

>>> print time.mktime(time.localtime())//時間計算

1497605034.0

3,sorted  x>y 1,x

sorted([1,3,2],lambda x,y:y-x) //如果y-x>0則兩個數交換位置,使用氣泡排序

[3, 2, 1]

4,閉包(closure),使用返回函式形式:

def count():

fs=

for i in range(1,4)

def f(j):

def g():

return j*j

return g

return fs

for i in count():

print i,j

5,匿名函式:lambda

6,「裝飾器」(decorator):對方法進行增強說明,但有不去改變方法

import functools

def log(args):

""""""

task = "call"

def actual_log(func):

@functools.wraps(func)

print '%s:%s()' % (task,func.__name__)//兩個下劃線

return func(*args, **kw)

if hasattr(args,'__call__'):

return actual_log(args)

else:

task = args

return actual_log

@log

def f():

pass

@log("execute")

def e():

pass

5,偏函式

>>> max2=functool.partial(max,10) //10作為*args的一部分自動加到左邊

>>> max2(1,3,4,5)

10>>> def func(a,b,c):

>>>  print a,b,c

>>>func2=functools.partial(func,b=3) 替換關鍵引數

>>>func(1,c=4)

1 3 4

學習心得 python學習心得

自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...

Python學習心得

python 學習心得 定義乙個類的方法 class classname 其中 init 可以看成是類的建構函式,定義python的私有函式的方法是 funtionname,定義私有資料的方法是 dataname,看看下面的例子。class myclass a example class i 123...

python學習心得

那麼怎麼辦。我的建議是應該跳出對經典答案的追求選擇用翻譯軟體,直接翻譯。然後自我解答。這樣可以提高我們自己的解題能力。也能發現很多我們未發現的小毛病或者很尬的問題。但是現在的進度也是非常低 第1章 第2章用了一共2周。第3章2周半,第4章4周半。第五章迴圈。我可以說2個月看了3遍了。第5章還沒看明白...