教自己學Python(一)基本運算
阿新 • • 發佈:2019-01-05
運算
基本運算
>>> 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)
以上三種位運算均滿足交換律。