- 變數 (variable)
- 字面常數 (literal)
- 物件的定義形式
運算式會計算出一個結果,通常會是一個物件 (object) , Python 中的物件由類別 (class) 定義,一種類別也被稱為一種型態 (type) ,因此運算式的結果通常也具有型態。
運算式細分的種類有非常多,我們主要介紹由運算子與運算元組成的幾種。
以下程式示範由字面常數組成的運算式
if True:
print("Hello world!")
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:expr01.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月 */執行結果如下

第 1 行
if True:
if 陳述 (statement) 後空一格,到冒號 : 之間為條件 (condition) ,須為計算結果為 True 或 False 運算式,這裡直接以關鍵字 (keyword) True 代入。 if 同英文字義,如果為真,就會執行底下縮排 (indentation) 的陳述。
True 意義為邏輯上的「真」,用法跟字面常數一樣,另一個關鍵字 False 則為邏輯上的「假」,實際上非 0 的值都會得到 True ,運算式結果為 0 會得到 False 。因此這一行可以改成
if 1:
這會得到相同的執行結果,也就是印出字串 "Hello orld!" 。
由運算子與運算元所組成的運算式,會依結合規則及優先次序進行計算,全部運算子如下列表
| + | - | * | ** | / | // | % |
| << | >> | & | | | ^ | ~ | |
| < | > | <= | >= | == | != |
另有指派運算子 (assignment operator)
| = | |||||
| += | -= | *= | /= | //= | %= |
| &= | |= | ^= | <<= | >>= | **= |
關鍵字中用作運算子的有
- and
- not
- or
- is
- in
- lambda
小括弧雖然沒有列在表中,但小括弧具有最高的優先權,因此當運算式中任何部份需要先計算時,可以直接用小括號圍起來,無須考量運算子的優先次序。如以下程式
print(12 + 2 * 8) print(12 + (2 * 8)) print((12 + 2) * 8) # 《程式語言教學誌》的範例程式 # http://pydoing.blogspot.com/ # 檔名:expr02.py # 功能:示範 Python 程式 # 作者:張凱慶 # 時間:西元 2010 年 12 月 */
執行結果如下

第 3 行
print((12 + 2) * 8)
算術運算子的計算優先次序跟手算一樣,先乘除後加減,因此 12 + 2 被小括弧圍起來,這部份會先被計算出來,然後結果 14 才乘以 8 。
| 中英文術語對照 | |
|---|---|
| 運算式 | expression |
| 運算元 | operand |
| 運算子 | operator |
| 變數 | variable |
| 字面常數 | literal |
| 物件 | object |
| 類別 | class |
| 型態 | type |
| 陳述 | statement |
| 條件 | condition |
| 關鍵字 | keyword |
| 縮排 | indentation |
| 指派運算子 | assignment operator |
參考資料
http://docs.python.org/py3k/reference/lexical_analysis.html
http://docs.python.org/py3k/reference/expressions.html
http://docs.python.org/py3k/reference/lexical_analysis.html
http://docs.python.org/py3k/reference/expressions.html
沒有留言:
張貼留言