python學習筆記

這個筆記就大致的記了一下一些基本的操作吧, 寫的不是很全, 但是自己寫了一遍, 感覺對於學python 還是很有幫助的, 但是還是想說,不管什麼語言, 一定要多敲代碼, 纔能有所理解

賦值 
  x1, x2 = 1 , 2  
 x1,x2 = x2,x1 


type(xx)
返回類型


id(內存地址)


切片操作
xx[a:b:c] 
a 起始
b 結束
c 步長  ,c = -1  逆序輸出




cmp(a, b)


repr() 或''  
str() 以字符串的方式獲取對象的內容


eval() 重新獲得對象


abs() 取絕對值
coerce() 數值轉換


divmod(a,b)  -> 返回元組(a/b ,a%b) 


chr(x) 轉爲字符
unichr(x) 
otc(x)  8進制
ord(x) 轉爲整形


range([start,]stop,[step]) 注意 stop的值取不到
xrange()  生成一個 生成器
//  需導入random模塊
randrange()
random()  返回0-1 之間的一個數
randint() 返回整型
uniform()   返回二者間的浮點數
choice()   隨機返回給定序列的一個元素




input("sada:")   輸入必須是合法字符,但輸入數字時有自己的特性 like:'asdas'
raw_input("asdas:")   接受任何輸入




序列關係操作符  in  / not in
se *xx  重複
se[x]   某元素
se[start :end]   元素集合
se1 + se2






list(iter)  可迭代對象轉列表
tuple(iter) 可迭代對象轉元組
len(seq)      返回seq的長度
max/min(iter , key = None ) 返回最大小值  ,如果指定key , key 必須可以傳給iter
sum(iter , init = 0 )       總和
reversed(seq)  返回一個逆序的迭代器
sorted(iter  ,func = None , key = None ,reversed = False ) 


zip(it0 ,it1 ,it2.....)   打包, 返回多個列表, 每個it 的第i 個元素,組成第i個元組


string 的操作和列表相似, str() 
s.join (xxxx) ,在xxxx中插入s
s.split ('x') 以x 爲分隔符 
* S.swapcase()  大小寫轉換
str 元素不可變
但可以通過排切片操作來達到刪除、插入的目的
 s = '%sC%s' % (s[0:2], s[3:])
 list.exend()
 list.append() 


unicode 字符串操作
字符串操作 的函數較多,故省略
u'sdad' 


enumerate(x) 如果要對一個列表或者數組既要遍歷索引又要遍歷元素時


列表解析
[exp for xx in xaxsa]






字典{}
keys()
d.fromkeys(('x','y'),-1)  值一樣
d.keys() 字典的鍵
 d.value () 
d.items() 
d.pop() 
dict()


集合  
set()   可變集合


frozenset()  不可變集合


s.add('asdsad') , 則加入一個asdsad 
s.update('sadas') ,如果有不同的字符則更新 s
|   聯合 
&   交集
-   補集
^   對稱差分
當然還有|= , -= 等
s.difference()
s.rmove()


迭代器  
iter()
iter(func , sexa)  #調用h函數 ,直至到sexa


生成器表達式


(exp  for i in xxx )




文件操作




f = open("file" ,'way')


f.seek(a, b )  b = 1 當前  = 0 頭  =2 尾
f.tell()
for eachline in f.read()




命令行 
import sys
sys.argv   
import os : 跟系統有關的函數 
os.path
 os.path.expanduser()

 a.strip(xx)  刪除開頭結尾處的xx
 split()   分割


 filter()   過濾 






錯誤和異常
捕獲所有異常  Exception , e  
try:
pass
except (Exception1,Exception2.....)[, e]:
raise
else:
pass
finally:
pass


raise   引發你自己的異常  
with  上下文管理
assert 斷言






函數


def  xx(*tuple , **dict):
'I "m attribution'  
[return xxx]
函數可內嵌
裝飾器


在某函數前 @另一個函數 , 相當於繼承 
函數屬性  
__doc__




函數的形式參數
可以傳函數名
def www( args , argv , asdfd = 0 , bsad=1 ):
默認的參數放後面
可變長度的參數


def wwx ([form1_agrs] , *varg_tuple):


匿名函數 lambda  :exp a = lambda argc : expr


內建函數




filter(func , seq)用於過濾
  
  map(expr , seq )




  reduce()  like  func (func (a, b ) ,c) 




偏函數
from operator import add 
from functools import partial 


add1 = partial(add ,1)


全局變量  


global xxx   


閉包


def make_adder(addend):
    def adder(augend):
        return augend + addend
    return adder


p = make_adder(23)
q = make_adder(44)


print p(100)
print q(100)




生成器   
def asdas():
yield xxxx




模塊 
import sys
sys.path.append('path')



 from xx import xxx as 
 from xx import *  導入所有的函數 但是不是很推薦




 可從.zip文件導入模塊
 globals()
 locals() 




包import xx.xxx.xxx.xxxxx
from xx.x.xxx import xxxxxxx






執行環境 






callable(xxx)  看 xxx 是否可以用() 來調用 返回 True/False


compile(string , file|'' , type)  type = eval | exec | single
eval() 表達式求值 
single 是單一可執行語句
exec   多個
都用 exec 執行  
execfile()
exec()執行語句    
input("asdsad")


執行   
os.system()
os.popen() 可以返回文件對象 


os.fork() 
os.exec()


subprocess 


sys.exit)_ 


SystemExit 






正則
|  表示或  : foo|xxx  -> foo , xxx 
.  任何一個字符  .f ->  af ,tf ....
^ 匹配以xx開頭的字符串  ^aaa ->aaad ,.....
$ .......結尾。。。。。  aaa$ -> daaa
\basd\b             asd  
\bss                 以ss開頭
\Bss                 含有ss
[] 字符類
-指定範圍
^否定
........
match() 
serch()
findall()  返回所有匹配的值
subn('x' , 'tihuanhou' , 'string ')   多返回 一個 次數
sub()  
split()
閉包操作符 * + ? {}(N次出現)




線程   threading sys


time.sleep(xx) xx 爲秒數 


ctime   輸出一個完整的信息 


以下爲thread模塊(最好不要用此模塊) 
thread.start_new_thread (loop , () )


thread.allocate_lock() 分配鎖對象
acquire()   獲取對象
lock() 鎖定
release() 解鎖


threading模塊 


Thread.start() 
run() 
join() 掛起進程, 直到線程結束
isAlive() 
isDaemon() 







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章