Python關鍵詞(keywords)筆記

kitesky發表於2016-04-21

邏輯語句


is

python中,is檢查兩個物件是否是同一個物件,而==檢查他們是否相等。

>>> a = [1]
>>> b = a
>>> c = a
>>> d = [1]
>>> b is c
True
>>> b == c
True
>>> b is d
False
>>> b == d
True

 

對於數字、字元等,物件和值都相等。

>>> a='test'
>>> b = a
>>> c = a
>>> d = ’test’
>>> b is c
True
>>> b == c
True
>>> b is d
True
>>> b == d
True

 

and

邏輯運算子,與運算。

or

邏輯運算子,表示

not
邏輯運算子,表示

 

 

資料結構操作

 

del

del用於list列表操作,刪除一個或連續幾個列表元素或者列表本身。

例如:

a = [-1, 3, 'aa', 85, 'bbb', 555]
print a

del a[0]
print a

del a[2:4]
print a

del a

 

in

判斷指定的元素是否存在於列表中

注意陣列和元組(Tuple)用法的區別。

 

條件語句

if

條件分支語句。

elif

if連用,表示條件分支。例如:

if ():
    do something
elif():
    do another thing
else:
    write_error_log()
    exit()


else

條件分支語句。

pass

pythonpass用來表示某條件分支不做任何事情。

 

C/C++中寫法:

 

if(true)
; // do nothing
else
{} // do nothing

 

python中寫法:

if true:
pass # do nothing
else:
print "do something."



迴圈語句

for
continue

關鍵字continue跳出本次迴圈或者break跳出整個for迴圈。

 

while

迴圈的開始。pythonwhile一般用於無限迴圈,知道某條件達到時推出迴圈。
一般情況下使用for迴圈。


break

break語句是會立即退出迴圈,在其後邊的迴圈程式碼不會被執行。break語句可以用在中。

關鍵字continue跳出本次迴圈或者break跳出整個for迴圈。


yield

帶有 yield 的函式在 Python 中被稱之為 generator(生成器),其具體功能是可以當return使用,從函式里返回一個值,不同之處是用yield返回之後,可以讓函式從上回yield返回的地點繼續執行。也就是說,yield返回函式,交給呼叫者一個返回值,然後再瞬移回去,讓函式繼續執行, 直到下條yield語句再返回一個新的值。

 

程式引用


import

用來把模組或包匯入記憶體。在中所有載入到記憶體中的模組都存在於sys.modules

module

通常模組為一個檔案,直接使用import sys.path 目錄中按照模組名稱查詢模組檔案並載入。可以作為module的檔案型別有".py"".pyo"".pyc"".pyd"".so"".dll"

package

通常包總是一個目錄,可以使用import匯入包,或者from + import來匯入包中的部分模組。包目錄下為首的一個檔案便是 __init__.py。然後是一些模組檔案和子目錄,假如子目錄中也有 __init__.py 那麼它就是這個包的子包了。

from

 

pythonimport或者from…import(從檔案中)匯入相應的模組。模組其實就一些函式和類的集合檔案,它能實現一些相應的功能,當我們需要使用這些功能的時候,直接把相應的模組匯入到我們的程式中,我們就可以使用了。
這類似於C語言中的include標頭檔案,Python中我們用import匯入我們需要的模組。

Python
會在以下路徑中搜尋它想要尋找的模組:
1.
程式所在的資料夾
2.
標準庫的安裝路徑
3.
作業系統環境變數PYTHONPATH所包含的路徑

import sys
print('================Python import mode==========================');
print ('The command line arguments are:')
for i in sys.argv:
    print (i)
print ('\n The python path',sys.path)


from sys import argv,path  #
匯入特定的成員
print('================python from import===================================')
print('path:',path) #
因為已經匯入path成員,所以此處引用時不需要加sys.path

如果你要使用所有sys模組使用的名字,你可以這樣:
from sys import *
print('path:',path)

 

列印及檔案操作

print

列印命令。

 

 

動態執行


exec

透過exec可以執行動態Python程式碼,類似Javascripteval功能;

Python中的eval函式可以計算Python表示式,但不能為變數賦值;

>>> exec("print(\"hello, world\")")
hello, world
>>> a = 1
>>> exec("a = 2")
>>> a
2
>>> eval(‘a + 10’)
12

 

注意區分python  exec eval execfile  compile 用法



函式及變數


def
用來定義函式。

return

是從python 函式返回一個值

 

global

定義全域性變數。如果在某函式中定義了全域性變數,可以在函式之外修改其值。


lambda

 

它允許你快速定義單行的最小函式,類似與C語言中的宏,這些叫做lambda的函式,是從LISP借用來的,可以用在任何需要函式的地方:

 

>>> g = lambda x: x * 2 
>>> g(3) 

>>> (lambda x: x * 2)(3) 
6

參考:Python特殊語法:filtermapreducelambda

filter(function, sequence)

sequence中的item依次執行function(item),將執行結果為Trueitem組成一個List/String/Tuple(取決於sequence的型別)返回:

>>> def f(x): return x % 2 != 0 and x % 3 != 0 
>>> filter(f, range(2, 25)) 
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a' 
>>> filter(f, "abcdef") 
'bcdef'

 

物件導向


class

Python既是Function Programming語言,又是Object-Oriented語言。Class用來定義類。

 

異常處理

try…except…

用於捕獲異常。

異常資訊內容獲取的3個方法:

方法一:捕獲所有異常

try:
a=b 
b=c 
except Exception,e: 
print Exception,":",e

方法二:採用traceback模組檢視異常

#引入python中的traceback模組,跟蹤錯誤
import traceback 
try: 
    a=b 
    b=c 
except: 
    traceback.print_exc()

方法三:採用sys模組回溯最後的異常

如果你還想把這些異常儲存到一個日誌檔案中,可以:把 traceback.print_exc() 列印在螢幕上的資訊儲存到一個文字檔案中。

import traceback
try: 
    a=b 
    b=c 
except: 
    f=open("c:log.txt",'a') 
    traceback.print_exc(file=f) 
    f.flush() 
    f.close()

raise

使用raise丟擲異常。

當程式出現錯誤,python會自動引發異常,也可以透過raise顯示地引發異常。一旦執行了raise語句,raise後面的語句將不能執行。

try:
     s = None
     if s is None:
         print "s
是空物件"
         raise NameError     #
如果引發NameError異常,後面的程式碼將不能執行
     print len(s)
except TypeError:
     print "
空物件沒有長度"


finally

with…as…

替代try...finally...的另一種寫法。例如:

file = open("/tmp/foo.txt")
try:
    data = file.read()
finally:
    file.close()

改寫為:

with open("/tmp/foo.txt") as file:
    data = file.read()


assert

assert是用來檢查一個條件,如果它為真,就不做任何事。如果它為假,則會丟擲AssertError並且包含錯誤資訊。例如:

py> x = 23
py> assert x > 0, "x is not zero or negative"
py> assert x%2 == 0, "x is not an even number"
Traceback (most recent call last):
File "", line 1, in
AssertionError: x is not an even number

什麼時候應該使用assert?沒有特定的規則,斷言應該用於:

·         防禦型的程式設計

·         執行時檢查程式邏輯

·         檢查約定

·         程式常量

·         檢查文件

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/66009/viewspace-2085105/,如需轉載,請註明出處,否則將追究法律責任。

相關文章