一、 Python的算術運算
Python的算術運算符與C語言類似,略有不同。包括加(+)、減(-)、乘(*)、除(/)、取余(%)、按位或(|)、按位與(&)、按位求補(~)、左移位(<<)、右移位(>>)、單目求反(-)、冪運算(**)、整除運算(//)、增強運算、增強矩陣乘法(@)。
增強運算是將算術運算符或邏輯運算符放到等號的左側,與C語言的增強運算符相同。如x+=5,表示x=x+5,該種方法CPU的處理效率高於普通運算方式,且執行優先級也高些。
下面看看這些運算的例子,大家可以理解一下:
>>> 10%3
1
>>> 10//3
3
>>> 10**3
1000
>>> n=False
>>> n
False
>>> type(n)
>>> i=0
>>> i==n
True
>>> 4>>2
1
>>> 4<<2
16
>>> ~4
-5
>>> 2&4
0
>>> 2|4
6
>>> m=2
>>> m**=3
>>> m
8
矩陣乘法目前本人還沒弄明白,如果以后弄明白了再補充。
二、 Python的布爾類型
在介紹比較急邏輯運算之前,需要介紹一個前面沒有介紹的bool(布爾)數據類型。
布爾數據類型是用於條件判斷、比較運算和邏輯運算,只有兩個值真(True)和假(False)。布爾類型其實是int的子類,False和True對應的值是0和1。但真正使用時,下面的值都將被視為假:
False None 0 “” () [] {}
也就是說標准值False和None、各種類型(包括浮點數、復數等)的數值0、空序列(如空字符串、空元組和空列表)以及空映射(如空字典)都被視為假,而其他各種值都被視為真。
看看下面的運算結果:
>>> True == 1
True
>>> False == 0
True
>>> True + True
2
三、 比較運算
比較運算表達式 解釋
x==y x是否等於y
x>y x是否大於y
x 無錫人流醫院哪家好 http://www.csjlwtrl.com/
x>=y x是否大於等於y
x<=y x是否小於等於y
x!=y x是否不等於y
x is y x是否和y是同一對象
x is not y x是否和y不是同一對象
x in y x是否是y的元素
x not in y x是否不是y的元素
以上運算中的后2個主要用於復雜數據類型的成員判斷,后面講這些數據類型會用到。
四、 邏輯運算
邏輯運算與C語言的類似,有邏輯或(or)、邏輯與(and)、邏輯非(not),但沒有C語言的簡單運算符號||、&&、!。
看看運算實例:
>>> not 2
False
>>> not 0
True
>>> 2 and 4
4
>>> 2 or 4
2
>>> s='123'
>>> s or 2 or 3
'123'
>>> 2 and 3 and s
'123'
從上面后幾個示例看出,邏輯運算符and和or不一定都是返回True或False,or當其中參與運算的數據有個值不為False(包括False、0、空等,下同)則直接返回該數據,and當所有數據都不為False則返回最后一個數據。
五、 運算符的優先級
下面列出了所有運算符的優先級,數值越大,表示優先級越高。
上述運算符中有個lambda,這是個lambda就是用來定義一個匿名函數的。老猿認為用處不大,具體內容大家可以在網上查一下。
更正:
在上一章節,關於Python語句部分的前面部分內容強調“必須縮進4個空格”縮進與該章節“Python的代碼嵌套格式”描述不一樣,實際上相關要求是遵循“Python的代碼嵌套格式”的情況下,推薦使用一次縮進4個空格。
另外關於語句中冒號的使用,只說明了那些語句后面必須有冒號,但其實冒號指出來接下來是一段(也可以只有一行)統一縮進的代碼塊。
