在Python中,每行程序以換行符表明結束,若是一行程序太長的話,能夠用「\」符號擴展到下一行。在python中以三引號(""")括起來的字符串,列表,元組和字典都能跨行使用。而且以小括號(...)、中括號[...]和大括號{...}包圍的代碼不用加「\」符也可擴展到多行。python
在Python中是以縮進來區分程序功能塊的,縮進的長度不受限制,但就一個功能塊來說,最好保持一致的縮進量。app
若是一行中有多條語句,語句間要以分號(;)分隔。函數
以「#」號開頭的內容爲註釋,python解釋器會忽略該行內容。測試
在python中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。python中的標識符是區分大小寫的。this
如下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的表明不能直接訪問的類屬性,需經過類提供的接口進行訪問,不能用「from xxx import *」而導入;以雙下劃線開頭的(__foo)表明類的私有成員;以雙下劃線開頭和結尾的(__foo__)表明python裏特殊方法專用的標識,如__init__()表明類的構造函數。spa
在交互模式下運行python時,一個下劃線字符(_)是特殊標識符,它保留了表達式的最後一個計算結果。code
>>> "hello" 'hello' >>> _ 'hello' >>> 10+10 20 >>> _ 20
在python中,函數、類、模塊定義的第一段代碼若是是字符串的話,就把它叫做文件字串,可經過__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的關鍵字:blog
>>> 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運算符列表
運算符 | 描述 |
---|---|
x+y,x-y | 加、減,「+」號可重載爲鏈接符 |
x*y,x**y,x/y,x%y | 相乘、求平方、相除、求餘,「*」號可重載爲重複,「%」號可重載爲格式化 |
<,<=,>,>=,==,<>,!= | 比較運算符 |
+=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|= | 自變運算符 |
x|y | 按位或 |
x^y | 按位異或 |
x&y | 按位與 |
~x | 按位取反 |
x<<,x>>y | x向左或向右移y位 |
is, is not | 等同測試 |
in, not in | 是否爲成員測試 |
or,and,not | 邏輯運算符 |
x[i],x[i:j],x.y,x(...) | 索引,分片,限定引用,函數調用 |
(...),[...],{...},'...' | 元組,列表,字典,轉化爲字符串 |
運算符優先順序列表(從最高到最低)
運算符 | 描述 |
---|---|
'expr' | 字符串轉換 |
{key:expr,...} | 字典 |
[expr1,expr2...] | 列表 |
(expr1,expr2,...) | 元組 |
function(expr,...) | 函數調用 |
x[index:index] | 切片 |
x[index] | 下標索引取值 |
x.attribute | 屬性引用 |
~x | 按位取反 |
+x,-x | 正,負 |
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匿名函數 |
真值表
對象/常量 | 值 |
---|---|
"" | 假 |
"string" | 真 |
0 | 假 |
>=1 | 真 |
<=-1 | 真 |
()空元組 | 假 |
[]空列表 | 假 |
{}空字典 | 假 |
None | 假 |
複合表達式
對於and,當計算a and b時,python會計算a,若是a爲假,則取a值,若是a爲真,則python會計算b且整個表達式會取b值。如:
>>> a,b=10,20 >>> a and b #a is true 20 >>> a,b=0,5 #a is false >>> a and b 0
對於or,當計算a or b時,python會計算a,若是a爲真,則整個表達式取a值,若是a爲假,表達式將取b值。如:
>>> a,b=10,20 >>> a or b 10 >>> a,b=0,5 >>> a or b 5
對於not,not將反轉表表達式的「實際值」,若是表達式爲真,not爲返回假,如爲表達式爲假,not爲返回真。如:
>>> not 2 False >>> not 0 True >>> not "test" False >>> not "" True
變量賦值:賦值並非直接將一個值賦給一個變量,在Python中,對象是經過引用傳遞的。Python的賦值語句不會返回值,相似下面的語句是非法的:
>>> x=1
>>> y=(x=x+1)
SyntaxError: invalid syntax
鏈式賦值沒有問題:
>>> x=1
>>> y=x=x+1
>>> x,y
(2, 2)
Python不支持相似x++或--x這樣的前置/後置自增/自減運算
能夠多重複值:
>>> x=y=z=1 >>> x 1 >>> y 1 >>> z 1
能夠多元賦值:
>>> x,y,z=1,2,'a string' >>> x 1 >>> y 2 >>> z 'a string'
一般使用小括號括起來,加強代碼的可讀性:
>>> (x,y,z)=(1,2,'a string') >>> x 1 >>> y 2 >>> z 'a string'
使用Python的多元賦值方式能夠實現無中間變量交換兩變量的值:
>>> #swapping variables in Python >>> x,y=1,2 >>> x 1 >>> y 2 >>> x,y=y,x >>> x 2 >>> y 1