1. 程式人生 > 實用技巧 >想學好Python,你必須瞭解Python中的35個關鍵詞

想學好Python,你必須瞭解Python中的35個關鍵詞

每種程式語言都會有一些特殊的單詞,稱為關鍵詞。對待關鍵詞的基本要求是,你在命名的時候要避免與之重複。本文將介紹一下Python中的關鍵詞。關鍵詞不是內建函式或者內建物件型別,雖然在命名的時候同樣也最好不要與這些重名,但是,畢竟你還可以使用與內建函式或者內建物件型別重名的名稱來命名。關鍵詞則不同,它是不允許你使用。

在Python3.8中提供了35個關鍵詞,如下所示:

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

如果打算在互動模式裡面檢視關鍵詞,可以使用help()

>>> help("keywords")

Here is a list of the Python keywords.  Enter any keyword to get more help.

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

對每個關鍵詞的詳細說明,也可以用help()檢視:
>>> help('pass')    # 敲回車後出現下面的內容

The "pass" statement
******************** pass_stmt ::= "pass" "pass" is a null operation — when it is executed, nothing happens. It
is useful as a placeholder when a statement is required syntactically,
but no code needs to be executed, for example: def f(arg): pass # a function that does nothing (yet) class C: pass # a class with no methods (yet)

除了上面的方法之外,還有一個標準庫的模組keyword提供了關鍵詞查詢功能。

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', ...
>>> len(keyword.kwlist)
35

那麼,這些關鍵詞如何使用?在什麼情景下應用?下面以示例的方式對部分關鍵詞進行說明。

True、False和None

TrueFalse是布林型別的兩個值,注意必須首字母大寫。

>>> x = True
>>> x is True
True >>> y = False
>>> y is False
True

如果我們要判斷某個物件的布林值是True還是False,可以使用bool()函式實現,例如:

>>> x = "this is a truthy value"
>>> x is True
False
>>> bool(x) is True
True >>> y = "" # 這個是假
>>> y is False
False
>>> bool(y) is False
True

注意,如果向bool()傳入的引數是0, "", {}, []中的任何一個,返回值都是False

在條件語句中,本來是要判斷條件是否為True,但是,通常不需要直接與True或者False進行比較,依靠Python解析器自動進行條件判斷。

>>> x = "this is a truthy value"
>>> if x is True: # 不要這麼做
... print("x is True")
...
>>> if x: # 應該如此寫
... print("x is truthy")
...
x is truthy

None這個關鍵詞,在Python中表示沒有值,其他語言中,同樣的含義可能會用null,nil,none,undef,undefined等。None也是函式中沒有return語句的時候預設返回值。

>>> def func():
... print("hello")
...
>>> x = func()
hello
>>> print(x)
None

and、or、not、in、is

這幾個關鍵詞,其實都對應著數學中的操作符,如下表所示。

數學符號 關鍵詞
AND, ∧ and
OR, ∨ or
NOT, ¬ not
CONTAINS, ∈ in
IDENTITY is

Python程式碼具有很強的可讀性,通過關鍵詞就能一目瞭然曉得是什麼操作。

這幾個關鍵詞比較好理解,這裡僅提醒注意在Python中有一個著名的短路運算,例如and

<expr1> and <expr2>

不要將上面的式子理解成兩邊都是真的時候返回True。對此,在**《Python大學實用教程》**一書中有非常詳細的說明,請參閱。另外一個就是or,也存在短路運算。

break、continue和else

這幾個是經常用於迴圈語句的關鍵詞。

break的作用是終止當前迴圈,其使用的基本格式:

for <element> in <container>:
if <expr>:
break
舉個例子: >>> nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> sum = 0
>>> for num in nums:
... sum += num
... if sum > 10:
... break
...
>>> sum
15

continue則是要跳過某些迴圈,然後讓迴圈繼續。

for <element> in <container>:
if <expr>:
continue

else在條件語句中有,這裡提到它,是在迴圈語句中,它的作用是當迴圈結束後還要繼續執行的程式碼。

在for迴圈中,使用格式如下:

for <element> in <container>:
<statements>
else:
<statements>

在while迴圈中,使用格式如下:

while <expr>:
<statements>
else:
<statements>

例如,有時候我們要在迴圈語句中使用一個旗幟變數:

>>> for n in range(2, 10):
... prime = True
... for x in range(2, n):
... if n % x == 0:
... prime = False
... print(f"{n} is not prime")
... break
... if prime:
... print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime

在上面的程式碼中,prime就是一個旗幟變數,如果迴圈正常結束,prime的值就是True,否則,就是False。如果從迴圈中退出了,第8行判斷這個變數的值,如果為True則列印相應內容。

對於上面的程式碼,如果用else改寫,可以更簡潔,並且可讀性更強。

>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(f"{n} is not prime")
... break
... else:
... print(f"{n} is prime!")
...
2 is prime!
3 is prime!
4 is not prime
5 is prime!
6 is not prime
7 is prime!
8 is not prime
9 is not prime