運算子與表示式
通常你寫出的程式語句(邏輯行)會包含若干 表示式 。如 2 + 3
即為一個簡單的表示式。
表示式由運算子與運算元構成。
運算子
常用的運算子:
+
-
*
**
(乘方)/
//
(除且取整)%
(取模)<<
(左移)>>
(右移)&
(按位與)|
(按位或)^
(按位異或)~
(按位取反)<
>
<=
(小於或等於)>=
(大於或等於)==
!=
(不等於)not
(布林非)and
(布林與)or
(布林或)
數學運算和賦值的快捷方式
對一個變數進行數學運算,然後將運算結果賦回給變數,這個過程很有用。於是,對於這樣的表達方式有一個快捷方式:
a = 2
a = a * 3
# 上下兩部分對比,發現差異
a = 2
a *= 3
計算順序
下表給出了 Python 的優先順序表,從最低優先順序(最小約束)到最高優先順序(最大約束)。
Operator | Description |
---|---|
:= |
Assignment expression |
lambda |
Lambda expression |
if – else |
Conditional expression |
or |
Boolean OR |
and |
Boolean AND |
not x |
Boolean NOT |
in , not in , is , is not , < , <= , > , >= , != , == |
Comparisons, including membership tests and identity tests |
` | ` |
^ |
Bitwise XOR |
& |
Bitwise AND |
<< , >> |
Shifts |
+ , - |
Addition and subtraction |
* , @ , / , // , % |
Multiplication, matrix multiplication, division, floor division, remainder |
+x , -x , ~x |
Positive, negative, bitwise NOT |
** |
Exponentiation |
await x |
Await expression |
x[index] , x[index:index] , x(arguments...) , x.attribute |
Subscription, slicing, call, attribute reference |
(expressions...) ,[expressions...] , {key: value...} , {expressions...} |
Binding or parenthesized expression, list display, dictionary display, set display |
具有 相同優先順序 的操作符在上表中的同一列中列出。例如 +
和 -
具有相同的優先順序。
改變計算順序
我們可以使用括號,使表示式更加具有可讀性。而且,利用括號可以幫助我們改變計算的順序。例如你想在一個表示式中先算加法後算乘法,那麼你可以寫成 (1 + 2) * 3
。
關聯性
一般而言,操作符從左到右進行關聯。這意味著具有相同優先順序的操作符按照從左到右的方式進行計算。例如, 2 + 3 + 4
計算順序為 (2 + 3) + 4
。
表示式
示例:
length = 5
breadth = 2
area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))
輸出
Area is 10
Perimeter is 14
它的工作原理:
矩形的長和寬分別儲存在變數 length 和 breadth 中。在表示式的幫助下,我們使用長和寬來計算矩形的面積和周長。我們將表示式 length * breadth
的計算結果儲存到變數 area
中,然後用 print
函式將其列印輸出。第二種情況是,我們直接在 print 函式中使用表示式 2 * (length + breadth)
的值。
控制流
我們可以通過控制流語句來實現一些功能。在 Python 中,有 if
,for
和 while
三個控制流語句。
未完待續
本作品採用《CC 協議》,轉載必須註明作者和本文連結