1. 程式人生 > >Python隨筆(一)-python3關鍵字

Python隨筆(一)-python3關鍵字

開發十年,就只剩下這套架構體系了! >>>   

檢視Python3的全部關鍵字方法

import keyword
print(keyword.kwlist)
print(len(keyword.kwlist))


我們可以看到Python3有33個關鍵字

break False None True and as assert
class continue def del elif else except
finally for from global if import in
is lambda nonlocal not or with yield
pass raise return try while


針對每一個關鍵字我們做出簡單的介紹

  1. False 布林型別的值,表示假,與True對應
  2. class 定義類的關鍵字
  3. finally 異常處理使用的關鍵字,用它可以指定始終執行的程式碼,指定程式碼在finally裡面
class MyException(Exception):pass
      try:
        #some code here
        raise MyException
      except MyException:
        print "MyException encoutered"
      finally:
        print "Arrive finally"


  1. is Python中的物件包含三個要素:id,type,value 其中:
  • id:用來唯一標示一個物件
  • type:標識物件的型別
  • value:是物件的值
  • is:就是用來判斷a物件是否就是b物件,是通過id來判斷的
  • ==:判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的
    示例:
  1. return python 函式返回值 return,函式中一定要有return返回值才是完整的函式。如果你沒有python定義函式返回值,那麼會得到一個結果是None物件,而None表示沒有任何值。
  2. none None是一個特殊的常量,None和False不同,None不是0。None不是空字串。None和任何其他資料型別比較永遠返回False。None有自己的資料型別NoneType。我們可以將None複製給任何變數,但是不能建立其他NoneType物件。
  3. continue continue語句被用來告訴Python跳過當前迴圈塊中的剩餘語句,然後繼續進行下一輪迴圈。
  4. for for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串、迭代器 例如:
for letter in 'Python': # 字串
  print '當前字母 :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # 陣列
  print '當前水果 :', fruit
  print "Good bye!"


  1. lambda 匿名函式
func = lambda x:x+1
>>> func(1)
>>>2
>>>func(2)
>>>3
>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]
>>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>> print reduce(lambda x, y: x + y, foo)


  1. try 程式設計師可以使用try…except語句來處理異常。把通常的語句塊放在try塊中,而把錯誤處理的語句放在except塊中。
  2. true 布林型別的值,表示真,與false相反。
  3. def 定義函式
  4. from 在python用import或者from…import來匯入相應的模組。
  5. nonlocal nonlocal關鍵字用來在函式或其他作用域中使用外層(非全域性)變數。 例如:
def make_counter():
  count = 0
  def counter():
    nonlocal count
    count += 1
    return count
  return counter

def make_counter_test():
  mc = make_counter()
  print(mc())
  print(mc())
  print(mc())


  1. while   #while語句重複執行一塊語句。while是迴圈語句的一種,while語句有一個可選的else從句。
  2. and 邏輯判斷語句,and左右兩邊都為真,則判斷結果為真,否則都是假
  3. del del用於list列表操作,刪除一個或者連續幾個元素。 python的del不同於C的free和C++的delete。 由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是資料物件上
a = [-1,3,'aa',85] # 定義一個list
del a[0] # 刪除第0個元素
del a[2:4] # 刪除從第2個到第3個元素。


  1. global 定義全域性標量。
  2. not 邏輯取反
  3. with with是python2.5以後有的,它實質是一個控制流語句,with可以用來簡化try…finally語句,它的主要用法是實現一個類_enter_()和_exit_()方法。
class controlled_execution:
  def _enter_(self):
    set things up
      return thing
  def _exit_(self,type,value,traceback):
    tear thing down
with controlled_execution() as thing:
   some code


  1. as 結合with使用,或者在import的時候對引入的物件進行重新命名
  2. elif 和if配合使用的
  3. if if語句用來檢驗一個條件,如果條件為真,我們執行一塊語句(稱為if…塊),否則我們處理另外一塊語句(稱為else…塊)。else從句是可選的。
  4. or 邏輯判斷,or兩邊有一個為真,判斷結果就是真。
  5. yield yield用起來像return,yield在告訴程式,要求函式返回一個生成器專門分了一偏文章來說明yield
  6. assret 斷言,用來在執行中檢查程式的正確性,寫過單元測試的小夥伴應該不陌生
assert len(mylist) >= 1


  1. else 與if配合使用
  2. import 在Python用import或者from…import來匯入相應的模組。
  3. pass 佔位符,當我們寫出程式架構,還沒有定義好方法的時候用pass去填補方法實現
 def f(arg): 
 	pass # a function that does nothing (yet)
 class Myclass: 
 	pass    # a class with no methods(yet)


  1. break 跳出迴圈體
  2. except 與try連用用來捕獲異常。 in for…in是另外一個迴圈語句,它在一序列的物件上遞迴即逐一使用佇列中的每個專案。
  3. raise railse丟擲異常。
class MyException(Exception):pass
	try:
		raise MyException
	except MyException:
		print('MyException encoutered')
	finally:
		print('Arrive finally')


  1. elif 與if連用,相當於是替代其他語言內的switch 32 finally 與try...expect...finally連用表示異常處理過後