python 學習筆記 -- Python關鍵字總結
0.寫在前面的話
學習一門語言最重要的功課是練習與複習,在《笨方法學Python》中第三十七節雖然沒有教你任何內容,但是它提醒我們:“學了這麼多,你還能記得多少?該複習了!”
下面我們就對這一節的第一部分“關鍵字”來做個複習:
Python中的關鍵字包括如下:
and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try
你想看看有哪些關鍵字?OK,開啟一個終端,就像這樣~
[email protected]:~$ python
Python 2.7.3 (default, Jan 2 2013, 16:53:07)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import keyword
>>> keyword.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']
>>>
============================== 華麗的 正文分隔符 ========================================
看到這些關鍵字你還能記得多少?你不妨自己一個一個對照想想它的用法,下面是我總結的,我根據前面的學習筆記將上述關鍵字分為以下幾類:
1.判斷、迴圈
對於Python的迴圈及判斷主要包括這些關鍵字:
if elif else for while break continue and or is not in
這幾個關鍵字在前面介紹 if 語法、while語法、for語法以及and...or語法中已有介紹,下面再一筆帶過:
1.1 if 語法
if語法與C語言、shell指令碼之下的非常類似,最大的區別就是冒號以及嚴格的縮排,當然這兩點也是Python區別於其他語言的地方:
if condition1:
do something
elif condition2:
do another thing
else:
also do something
1.2 while 語法
Python的while語法區別於C、shell下的while除了冒號及縮排之外,還有一點就是while可以攜帶一個可選的else語句:
while condition:
do something
else:
do something
注:else語句是可選的,但是使用while語句時一定要注意判斷語句可以跳出!
1.3 for 語法
與while類似,Python的for迴圈也包括一個可選的else語句(跳出for迴圈時執行,但是如果是從break語句跳出則不執行else語句塊中的程式碼!),而且for 加上 關鍵字in就組成了最常見的列表解析用法(以後會寫個專門的部落格)。
下面是for的一般用法:
for i in range(1,10,2):
do something
if condition:
break
else:
do something
for的列表解析用法:
for items in list:
print items
1.4 and...or 語法
Python的and/or操作與其他語言不同的是它的返回值是參與判斷的兩個值之一,所以我們可以通過這個特性來實現Python下的 a ? b : c !
有C語言基礎的知道 “ a ? b : c ! ” 語法是判斷 a,如果正確則執行b,否則執行 c!
而Python下我們可以這麼用:“ a and b or c ”(此方法中必須保證b必須是True值),python自左向右執行此句,先判斷a and b :如果a是True值,a and b語句仍需要執行b,而此時b是True值!所以a and b的值是b,而此時a and b or c就變成了b or c,因b是True值,所以b or c的結果也是b;如果a是False值,a and b語句的結果就是a,此時 a and b or c就轉化為a or c,因為此時a是 False值,所以不管c是True 還是Flase,a or c的結果就是c!!!捋通邏輯的話,a and b or c 是不是就是Python下的a ? b : c ! 用法?
1.5 is ,not
is 和 is not 是Python下判斷同一性的關鍵字,通常用來判斷 是 True 、False或者None(Python下的NULL)!
比如 if alue is True : ...
(不記得本節的童鞋罰複習:python 學習筆記 2 -- 判斷語句)
2.函式、模組、類
對於Python的函式及模組主要包括這些關鍵字:
from import as def pass lambda return class
那麼你還能記得它們麼?下面簡單介紹一下:
2.1 模組
Python的程式設計通常大量使用標準庫中的模組,使用方法就是使用import 、from以及as 關鍵字。
比如: import sys # 匯入sys模組
from sys import argv # 從sys模組中匯入argv ,這個在前面介紹指令碼傳引數時使用到
import cPickle as p # 將cPickle模組匯入並在此將它簡單命名為p,此後直接可以使用p替代cPickle模組原名,這個在介紹檔案輸入輸出時的儲存器中使用到
2.2 函式
Python中定義函式時使用到def關鍵字,如果你當前不想寫入真實的函式操作,可以使用pass關鍵字指代不做任何操作:
def JustAFunction:
pass
當然,在需要給函式返回值時就用到了return關鍵字,這裡簡單提一下Python下的函式返回值可以是多個(接收返回值時用相應數量的變數接收!)!
此外Python下有個神奇的Lambda函式,它允許你定義單行的最小函式,這是從Lisp中借用來的,可以用在任何需要函式的地方。比如:
g = lambda x : x*2 # 定義一個Lambda函式用來計算引數的2倍並返回!
print g(2) # 使用時使用lambda函式返回的變數作為這個函式的函式名,括號中帶入相應引數即可!
(不記得本節的童鞋罰複習:python 學習筆記 4 -- 函式篇)
3.異常
對於Python的異常主要包括這些關鍵字:
try except finally raise
異常這一節還是比較簡單的,將可能出現的異常放在 try: 後面的語句塊中,使用except關鍵字捕獲一定的異常並在接下來的語句塊中做相應操作,而finally中接的是無論出現什麼異常總在執行最後做finally: 後面的語句塊(比如關閉檔案等必要的操作!)
raise關鍵字是在一定的情況下引發異常,通常結合自定義的異常型別使用。
(不記得本節的童鞋罰複習:python 學習筆記 6 -- 異常處理)
4.其他
上面的三類過後,還剩下這些關鍵字:
print del global with assert yield exec
首先print 在前面的筆記或者任何地方你都能見到,所以還是比較熟悉的,此處就不多介紹了!
del 關鍵字在前面的筆記中已有所涉及,比如刪除列表中的某項,我們使用 “ del mylist[0] ”
可能這些剩下來的關鍵字你比較陌生,所以下面來介紹一下:
4.1.global 關鍵字
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 。所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。
eg.
?1 2 3 4 5 6 7 8 9 10 11 |
#!/usr/bin/python
#
Filename: func_local.py
def
func(x):
print 'x
is' ,
x
x
= 2
print 'Changed
local x to' ,
x
x
= 50
func(x)
print 'x
is still' ,
x
|
執行的結果是這樣的:
?
1 2 3 4 |
$
python func_local.py
x
is 50 #
執行func函式時,先列印x的值,此時帶的值是作為引數帶入的外部定義的 50 ,所以能正常列印
x= 50
Changed
local x to 2 #
在func函式中將x賦
|