《Python 簡明教程》讀書筆記系列二 —— 從 「運算子與表示式」「控制流」「函式」可以看出什麼

yidajiabei發表於2020-04-17

運算子與表示式

通常你寫出的程式語句(邏輯行)會包含若干 表示式 。如 2 + 3 即為一個簡單的表示式。

表示式由運算子與運算元構成。

運算子

常用的運算子:

  • +
  • -
  • *
  • **(乘方)
  • /
  • //(除且取整)
  • %(取模)
  • <<(左移)
  • >>(右移)
  • &(按位與)
  • |(按位或)
  • ^(按位異或)
  • ~(按位取反)
  • <
  • >
  • <=(小於或等於)
  • >=(大於或等於)
  • ==
  • !=(不等於)
  • not(布林非)
  • and(布林與)
  • or(布林或)

數學運算和賦值的快捷方式

對一個變數進行數學運算,然後將運算結果賦回給變數,這個過程很有用。於是,對於這樣的表達方式有一個快捷方式:

a = 2
a = a * 3
# 上下兩部分對比,發現差異
a = 2
a *= 3

計算順序

下表給出了 Python 的優先順序表,從最低優先順序(最小約束)到最高優先順序(最大約束)。

Operator Description
:= Assignment expression
lambda Lambda expression
ifelse 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 中,有 ifforwhile 三個控制流語句。

未完待續

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章