1. 程式人生 > >教自己學Python(一)基本運算

教自己學Python(一)基本運算

運算

基本運算

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5
1.6
>>> 8 / 4
2.0

Python3中的除法運算總會得到一個浮點值,但是在Python2中不是這樣的,Python2會根據參與運算的數字來決定結果,比如:

>>> 8 / 5
1
>>> 8 / 5.0
1.6
>>> 8.0 / 5
1.6

魔法運算

如果想在Python2中使用Python3中的除法特性可以在互動環境中輸入from __future__ import divistion

,這句話的意思是從未來的版本中引入除法運算,以後會經常使用from * import *這樣的格式來引入其它功能。再看下面兩個三個運算:

 >>> 13 // 3
 4
 >>> 13 % 3
 1
 >>> 3**2
 9

比較特別的是第一行和第三行,兩個除號是向下取整,兩個乘號是n次方的意思。

在互動模式下,還有一個很有意思的符號_,它可以儲存上一次的運算結果,也就是說如果我們把互動環境當做計算器的話,會更好用。看下面的例子:

>>> tax = 12.5 / 100  # 把值賦給一個名字(變數),以下就可以用變數名來使用值。
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _    # _登場,其值是上面的12.5625
113.0625
>>> round(_, 2)    # 結果保留兩位小數
113.06

當然如果在Python3中,上面的程式碼也可以寫成:

>>> 稅 = 12.5 / 100
>>> 價格 = 100.50
>>> 稅 * 價格
>>> 12.5625

Python3中可以使用漢字命名變數,事實上可以使用所有unicode集中的字元,另外Python3中會把當作是一個字元,而不再是Python2版本中的兩個。為了輸入方便和他人理解,我們還是習慣性的使用經典命名(字母數字下劃線,且第一個字元不可以是數字)

此外變數的名字應當是有意義的,一個變數名裡如果包含多個單詞可以使用_形如:collect_incoming_data

或者“駝峰”命名,形如:createUserInfo,更多的命名和程式碼規範目前還不需要,我們介紹到相應程式碼的時候會給出相應說明。

邏輯運算

>>> 3 > 2
Ture
>>> 9 < 5
False
>>> 3 < 5 and 9 > 8
True
>>> 7 > 8 or 4 < 9
True
>>> not 9 > 3
False
>>> 5 == 4
False
>>> 7 != 8
True

and是邏輯與的意思,or是邏輯或的意思,not是邏輯取反的意思。Python還支援鏈式邏輯運算:

>>> 4 < 10 > 7
True

直譯器會把上式轉換成4 < 10 and 10 > 7

位運算

位運算即先把數轉換成2進製表示,再按位進行運算。

按位與運算

>>> 5 & 3    # 5:'101', 3:'11'
1

按位或運算

>>> 5 | 2    # 2:'10'
7

按位異或運算

>>> 5 ^ 4    # 4:'100'
1

異或運算有一個簡單的應用,兩數互換值不需要額外空間,程式碼如下:

>>> a = 5    # 5: '101'
>>> b = 8    # 8:'1000'
>>> a = a^b
>>> b = a^b
>>> a = b^a
>>> a, b
(8, 5)    # 這種用括號括裡來,逗號分隔的樣子叫元組

當然如果僅僅是兩數互換值的話,Python中還有更輕鬆愉悅的寫法:

>>> a, b = 5, 8    # 多個變數賦值
>>> a, b = b, a    # 同樣是多個變數賦值
>>> a, b
(8, 5)

以上三種位運算均滿足交換律。