Python數值運算與賦值的快捷方式

一種比較常見的操做是對一個變量進行一項數學運算並將運算得出的結果返回給這個變量,所以對於這類運算一般有以下的快捷表達方式:python

a = 2a = a * 3

 

一樣也可寫做:程序員

a = 2a *= 3

 

要注意到 變量 = 變量 運算 表達式 會演變成 變量 運算 = 表達式。
求值順序8express

若是你有一個諸如 2 + 3 * 4 的表達式,是優先完成加法仍是優先完成乘法呢?咱們的高中數學知識會告訴咱們應該先完成乘法。這意味着乘法運算符的優先級要高於加法運算符。
下面將給出 Python 中從最低優先級(最少綁定)到最高優先級(最多綁定)的優先級表。這意味着,在給定的表達式中,Python 將優先計算表中位列於後的較高優先級的運算符與表達式。
爲了保持完整,下表是從 Python教程 參考手冊 中引用而來。你最好使用圓括號操做符來對運算符與操做數進行分組,以更加明確地指定優先級。這也能使得程序更加可讀。你能夠閱讀改變運算順序來了解更多的細節。
lambda:Lambda 表達式
if - else :條件表達式
or:布爾「或」
and:布爾「與」
not x:布爾「非」
in, not in, is, is not, <, <=, >, >=, !=, ==:比較,包括成員資格測試(Membership Tests)和身份測試(Identity Tests)。
|:按位或
^:按位異或
&:按位與
<<, >>:移動
+, -:加與減
*, /, //, %:乘、除、整除、取餘
+x, -x, ~x:正、負、按位取反
**:求冪
x[index], x[index:index], x(arguments...), x.attribute:下標、切片、調用、屬性引用
(expressions...), [expressions...], {key: value...}, {expressions...}:表示綁定或元組、表示列表、表示字典、表示集合
咱們尚未遇到的運算符將在後面的章節中加以解釋。
在上表中位列同一行的運算符具備相同優先級。例如 + 和 - 就具備相同的優先級。函數

改變運算順序測試

爲了使表達式更加易讀,咱們能夠使用括號。舉個例子,2 + (3 4) 自是要比 2 + 3 4 要更加容易理解,由於後者還要求你要了解運算符的優先級。和其它的一切同樣,使用括號一樣也要適度(而不要過分),同時亦應不要像 (2 + (3 * 4)) 這般冗餘。
使用括號還有一個額外的優勢——它能幫助咱們改變運算的順序。一樣舉個例子,若是你但願在表達式中計算乘法以前應先計算加法,那麼你能夠將表達式寫做 (2 + 3) * 4。spa

結合性9code

運算符一般由左至右結合。這意味着具備相同優先級的運算符將從左至右的方式依次進行求值。如 2 + 3 + 4 將會以 (2 + 3) +4 的形式加以計算。blog

表達式教程

案例(將其保存爲 expression.py):ip

length = 5breadth = 2area = length * breadth
print('Area is', area)
print('Perimeter is', 2 * (length + breadth))

 

輸出:

$ python expression.py
Area is 10Perimeter is 14

 

它是如何工做的
矩形的長度(Length)與寬度(Breadth)存儲在以各自名稱命名的變量中。咱們使用它們並藉助表達式來計算矩形的面積(Area)與周長(Perimeter)。咱們將表達式 length breadth 的結果存儲在變量 area 中並將其經過使用 print 函數打印出來。在第二種狀況中,咱們直接在 print 函數中使用了表達式 2 (length + breadth) 的值。
同時,你須要注意到 Python是如何漂亮地打印出 輸出結果的。儘管咱們沒有特別在 Area is 和變量 area 之間指定空格,Python 會幫咱們加上因此咱們就能獲得一個整潔的輸出結果,同時程序也由於這樣的處理方式而變得更加易讀(由於咱們不須要在用以輸出的字符串中考慮空格問題)。這即是一個 Python 是如何讓程序員的生活變得更加便捷美好的範例。

總結

咱們已經瞭解瞭如何使用運算符、操做數與表達式——這些是咱們構建任何程序的基本塊。接下來,咱們將看到如何在程序中善加利用這些語句。

相關文章
相關標籤/搜索