在Python中,每行程序以換行符代表結(jié)束,如果一行程序太長的話,可以用“/”符號擴(kuò)展到下一行。在python中以三引號(""")括起來的字符串,列表,元組和字典都能跨行使用。并且以小括號(...)、中括號[...]和大括號{...}包圍的代碼不用加“/”符也可擴(kuò)展到多行。
在Python中是以縮進(jìn)來區(qū)分程序功能塊的,縮進(jìn)的長度不受限制,但就一個功能塊來講,最好保持一致的縮進(jìn)量。
如果一行中有多條語句,語句間要以分號(;)分隔。
以“#”號開頭的內(nèi)容為注釋,python解釋器會忽略該行內(nèi)容。
在python中,所有標(biāo)識符可以包括英文、數(shù)字以及下劃線(_),但不能以數(shù)字開頭。python中的標(biāo)識符是區(qū)分大小寫的。
以下劃線開頭的標(biāo)識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進(jìn)行訪問,不能用“from xxx import *”而導(dǎo)入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(__foo__)代表python里特殊方法專用的標(biāo)識,如__init__()代表類的構(gòu)造函數(shù)。
在交互模式下運(yùn)行python時,一個下劃線字符(_)是特殊標(biāo)識符,它保留了表達(dá)式的最后一個計算結(jié)果。
>>> "hello"'hello'>>> _'hello'>>> 10+1020>>> _20
在python中,函數(shù)、類、模塊定義的第一段代碼如果是字符串的話,就把它叫作文件字串,可通過__doc__屬性訪問。如:
def test():"this is a document string"return 100+1000>>>PRint test.__doc__this is a document string
and elif global or yield assert else if pass break except import print class exec in raise continue finally is return def for lambda try del from not while
使用下面的代碼可以打印python的關(guān)鍵字:
>>> from keyWord import kwlist>>> print kwlist
輸出如下:
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
Python運(yùn)算符列表
| 運(yùn)算符 | 描述 |
|---|---|
| x+y,x-y | 加、減,“+”號可重載為連接符 |
| x*y,x**y,x/y,x%y | 相乘、求平方、相除、求余,“*”號可重載為重復(fù),“%”號可重載為格式化 |
| <,<=,>,>=,==,<>,!= | 比較運(yùn)算符 |
| +=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|= | 自變運(yùn)算符 |
| x|y | 按位或 |
| x^y | 按位異或 |
| x&y | 按位與 |
| ~x | 按位取反 |
| x<<,x>>y | x向左或向右移y位 |
| is, is not | 等同測試 |
| in, not in | 是否為成員測試 |
| or,and,not | 邏輯運(yùn)算符 |
| x[i],x[i:j],x.y,x(...) | 索引,分片,限定引用,函數(shù)調(diào)用 |
| (...),[...],{...},'...' | 元組,列表,字典,轉(zhuǎn)化為字符串 |
運(yùn)算符優(yōu)先順序列表(從最高到最低)
| 運(yùn)算符 | 描述 |
|---|---|
| 'expr' | 字符串轉(zhuǎn)換 |
| {key:expr,...} | 字典 |
| [expr1,expr2...] | 列表 |
| (expr1,expr2,...) | 元組 |
| function(expr,...) | 函數(shù)調(diào)用 |
| x[index:index] | 切片 |
| x[index] | 下標(biāo)索引取值 |
| x.attribute | 屬性引用 |
| ~x | 按位取反 |
| +x,-x | 正,負(fù) |
| x**y | 冪 |
| x*y,x/y,x%y | 乘,除,取模 |
| x+y,x-y | 加,減 |
| x<<y,x>>y | 移位 |
| x&y | 按位與 |
| x^y | 按位異或 |
| x|y | 按位或 |
| x<y,x<=y,x==y,x!=y,x>=y,x>y | 比較 |
| x is y,x is not y | 等同測試 |
| x in y,x not in y | 成員判斷 |
| not x | 邏輯否 |
| x and y | 邏輯與 |
| x or y | 邏輯或 |
| lambda arg,...:expr | Lambda匿名函數(shù) |
真值表
| 對象/常量 | 值 |
|---|---|
| "" | 假 |
| "string" | 真 |
| 0 | 假 |
| >=1 | 真 |
| <=-1 | 真 |
| ()空元組 | 假 |
| []空列表 | 假 |
| {}空字典 | 假 |
| None | 假 |
復(fù)合表達(dá)式
對于and,當(dāng)計算a and b時,python會計算a,如果a為假,則取a值,如果a為真,則python會計算b且整個表達(dá)式會取b值。如:
>>> a,b=10,20>>> a and b #a is true20>>> a,b=0,5 #a is false>>> a and b0
對于or,當(dāng)計算a or b時,python會計算a,如果a為真,則整個表達(dá)式取a值,如果a為假,表達(dá)式將取b值。如:
>>> a,b=10,20>>> a or b10>>> a,b=0,5>>> a or b5
對于not,not將反轉(zhuǎn)表表達(dá)式的“實際值”,如果表達(dá)式為真,not為返回假,如為表達(dá)式為假,not為返回真。如:
>>> not 2False>>> not 0True>>> not "test"False>>> not ""True
變量賦值:賦值并不是直接將一個值賦給一個變量,在Python中,對象是通過引用傳遞的。Python的賦值語句不會返回值,類似下面的語句是非法的:
>>> x=1>>> y=(x=x+1)SyntaxError: invalid syntax鏈?zhǔn)劫x值沒有問題:
>>> x=1>>> y=x=x+1>>> x,y(2, 2)Python不支持類似x++或--x這樣的前置/后置自增/自減運(yùn)算
可以多重復(fù)值:
>>> x=y=z=1>>> x1>>> y1>>> z1
可以多元賦值:
>>> x,y,z=1,2,'a string'>>> x1>>> y2>>> z'a string'
通常使用小括號括起來,增強(qiáng)代碼的可讀性:
>>> (x,y,z)=(1,2,'a string')>>> x1>>> y2>>> z'a string'
使用Python的多元賦值方式可以實現(xiàn)無中間變量交換兩變量的值:
>>> #swapping variables in Python>>> x,y=1,2>>> x1>>> y2>>> x,y=y,x>>> x2>>> y1
新聞熱點(diǎn)
疑難解答