1. Python是動(dòng)態(tài)語言 恕沫,變量是不需要指定類型的 a = 'com' a = 123
2. Python的格式:行和縮進(jìn)
學(xué)習(xí) Python 與其他語言最大的區(qū)別就是,Python 的代碼塊不使用大括號(hào){}來控制類,函數(shù)以及其他邏輯判斷剧防。python 最具特色的就是用縮進(jìn)來寫模塊席覆。
3. Python數(shù)據(jù)類型:
? ? ? ? ● Numbers(數(shù)字):int(有符號(hào)整型)long(長整型[也可以代表八進(jìn)制和十六進(jìn)制])float(浮點(diǎn)型)complex(復(fù)數(shù))
? ? ? ? ●String(字符串):str='Hello World!'printstr ? printstr[2:5]
? ? ? ? ●List(列表):list=['runoob',786,2.23,'john',70.2]? ? printlist[1:3]
? ? ? ? ? ? ? ? List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。
? ? ? ? ? ? ? ? 列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)菌仁。它支持字符浩习,數(shù)字,字符串甚至可以包含列表(即嵌套)济丘,即不需要相同的類型
? ? ? ? ●Tuple(元組):tuple=('runoob',786,2.23,'john',70.2) ? ?
? ? ? ? ? ? ? ? 元組用"()"標(biāo)識(shí)谱秽。內(nèi)部元素用逗號(hào)隔開。但是元組不能二次賦值摹迷,相當(dāng)于只讀列表
? ? ? ? ●Dictionary(字典):tinydict= {'name':'john','code':6734,'dept':'sales'}
? ? ? ? ? ? ? ? ? ? tinydict.keys()? ? # 輸出所有鍵 ? ? ? ? 結(jié)果: ?['dept','code','name']
? ? ? ? ? ? ? ? ? ? tinydict.values()# 輸出所有值? ? ? ? ? 結(jié)果:['sales',6734,'john']
? ? ? ? ? ? ? ? 字典(dictionary)是除列表以外python之中最靈活的內(nèi)置數(shù)據(jù)結(jié)構(gòu)類型疟赊。列表是有序的對(duì)象結(jié)合,字典是無序的對(duì)象集合峡碉。
? ? ? ? ? ? ? ? 兩者之間的區(qū)別在于:字典當(dāng)中的元素是通過鍵來存取的近哟,而不是通過偏移存取。
? ? ? ? ? ? ? ? 字典用"{ }"標(biāo)識(shí)鲫寄。字典由索引(key)和它對(duì)應(yīng)的值value組成吉执。
? ? ? ? ? Python數(shù)據(jù)類型轉(zhuǎn)換:int(x) ? ?str(x) ? ? ?字符串直接加上數(shù)字是不行的疯淫,需要先轉(zhuǎn)換
4. Python的日期和時(shí)間:
? ? ? ? ? 每個(gè)時(shí)間戳都以自從1970年1月1日午夜(歷元)經(jīng)過了多長時(shí)間來表示。
? ? ? ? ? 時(shí)間戳單位最適于做日期運(yùn)算戳玫。但是1970年之前的日期就無法以此表示了熙掺。太遙遠(yuǎn)的日期也不行,UNIX和Windows只支持到2038年咕宿。
? ? ? ? ? 需要的時(shí)候需要仔細(xì)研究币绩,有各式各樣的格式和函數(shù)
5. Python函數(shù):
? ? ? ? ? 函數(shù)代碼塊以def關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()府阀。
? ? ? ? ? 任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間缆镣。圓括號(hào)之間可以用于定義參數(shù)。
? ? ? ? ? 函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明试浙。
? ? ? ? ? 函數(shù)內(nèi)容以冒號(hào)起始董瞻,并且縮進(jìn)。
? ? ? ? ? return [表達(dá)式]結(jié)束函數(shù)川队,選擇性地返回一個(gè)值給調(diào)用方力细。不帶表達(dá)式的return相當(dāng)于返回 None。
? ? ? ? ?參數(shù)
? ? ? ? ? ? ? 以下是調(diào)用函數(shù)時(shí)可使用的正式參數(shù)類型:必備參數(shù) ? ?關(guān)鍵字參數(shù) ? ?默認(rèn)參數(shù) ? ?不定長參數(shù)
? ? ? ? ?def printinfo(name,age):
? ? ? ? ? ? ? ? print "Name: ",name;
? ? ? ? ? ? ? ? print "Age ",age;
? ? ? ? ? ? ? ? return;
? ? ? ? ? #調(diào)用printinfo函數(shù)
? ? ? ? ? printinfo(age=50,name="miki")? ? ? ? 說明:這樣是關(guān)鍵字參數(shù)調(diào)用固额,順序可以任意調(diào)換眠蚂,如果是必備參數(shù)的寫法則 printinfo("miki",50)
? ? ? ? ? 其他參考:http://www.runoob.com/python/python-functions.html
? ? ? ? ? 另外說明:函數(shù)本質(zhì)也是對(duì)象斗躏,被賦值的變量
6. ?Python-類變量逝慧,成員變量,靜態(tài)變量啄糙,類方法笛臣,靜態(tài)方法,實(shí)例方法隧饼,普通函數(shù)
? ? ? ?(1)類變量:
7. 裝飾器:包裝函數(shù)——假設(shè)我們要增強(qiáng)now()函數(shù)的功能沈堡,比如,在函數(shù)調(diào)用前后自動(dòng)打印日志燕雁,但又不希望修改now()函數(shù)的定義诞丽,這種在代 ? ? ? 碼運(yùn)行期間動(dòng)態(tài)增加功能的方式,稱之為“裝飾器”(Decorator)拐格。
? ? python 的 Decorator在使用上和Java/C#的Annotation很相似僧免,就是在方法名前面加一個(gè)@XXX注解來為這個(gè)方法裝飾一些東西。但是捏浊,Java/C#的Annotation也很讓人望而卻步懂衩,太TMD的復(fù)雜了,你要玩它,你需要了解一堆Annotation的類庫文檔浊洞,讓人感覺就是在學(xué)另外一門語言
? ? 無參數(shù)類型:
? ? importfunctools
? ? def logger(func):
? ? ? ? ? ? ? @functools.wraps(func)
? ? ? ? ? ? ? def inner(*args,**kwargs):#1
? ? ? ? ? ? ? ? ? ? ?print"Arguments?were:?%s,?%s"%(args,?kwargs)
? ? ? ? ? ? ? ? ? ? ?return func(*args,**kwargs)#2
? ? ? ? ? ? ? retur ninner
? ?有參數(shù)類型:
? ?importfunctools
? ?def log(text):
? ? ? ? ? def decorator(func):
? ? ? ? ? ? ? ? ? ?@functools.wraps(func)
? ? ? ? ? ? ? ? ? ? def wrapper(*args,**kw):
? ? ? ? ? ? ? ? ? ? ? ? ? ? print'%s?%s():'%(text,?func.__name__)
? ? ? ? ? ? ? ? ? ? ? ? ? ? return func(*args,**kw)
? ? ? ? ? ? ? ? ? ? ?return wrapper
? ? ? ? ? ?return decorator
? ? ?*args要么是表示調(diào)用方法大的時(shí)候額外的參數(shù)可以從一個(gè)可迭代列表中取得牵敷,要么就是定義方法的時(shí)候標(biāo)志這個(gè)方法能夠接受任意的位置參數(shù)