- Python 3.6從入門到精通(視頻教學(xué)版)
- 王英英
- 1524字
- 2019-12-06 14:19:52
2.7 運(yùn)算符和優(yōu)先級(jí)
在Python語言中,支持的運(yùn)算符包括算術(shù)運(yùn)算符、比較運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符和身份運(yùn)算符。
2.7.1 算術(shù)運(yùn)算符
Python語言中常見的算術(shù)運(yùn)算符如表2-1所示。
表2-1 算術(shù)運(yùn)算符

【例2.6】使用算術(shù)運(yùn)算符(代碼2.5.py)。

保存并運(yùn)行程序,結(jié)果如圖2-18所示。

圖2-18 程序運(yùn)行結(jié)果
2.7.2 比較運(yùn)算符
Python語言支持的比較運(yùn)算符如表2-2所示。
表2-2 比較運(yùn)算符

【例2.7】使用比較運(yùn)算符(源代碼2.6.py)。

保存并運(yùn)行程序,結(jié)果如圖2-19所示。

圖2-19 程序運(yùn)行結(jié)果
2.7.3 賦值運(yùn)算符
賦值運(yùn)算符表示將右邊變量的值賦給左邊變量,常見的賦值運(yùn)算符的含義如表2-3所示。
表2-3 賦值運(yùn)算符

【例2.8】使用賦值運(yùn)算符(代碼2.7.py)。

保存并運(yùn)行程序,結(jié)果如圖2-20所示。

圖2-20 程序運(yùn)行結(jié)果
2.7.4 邏輯運(yùn)算符
Python支持的邏輯運(yùn)算符如表2-4所示。
表2-4 邏輯運(yùn)算符

【例2.9】使用邏輯運(yùn)算符(代碼2.8.py)。

保存并運(yùn)行程序,結(jié)果如圖2-21所示。

圖2-21 程序運(yùn)行結(jié)果
2.7.5 位運(yùn)算符
在Python中,位運(yùn)算符把數(shù)字看作二進(jìn)制來進(jìn)行計(jì)算。Python支持的位運(yùn)算符如表2-5所示。
表2-5 位運(yùn)算符

【例2.10】使用位運(yùn)算符(代碼2.9.py)。

保存并運(yùn)行程序,結(jié)果如圖2-22所示。

圖2-22 程序運(yùn)行結(jié)果
2.7.6 成員運(yùn)算符
Python還支持成員運(yùn)算符,測試實(shí)例中包含了一系列的成員,如字符串、列表、元組。成員運(yùn)算符包括in和not in,x in y表示若x在y序列中則返回True;x not in y表示若x不在y序列中則返回True。
【例2.11】使用成員運(yùn)算符(代碼2.10.py)。

保存并運(yùn)行程序,結(jié)果如圖2-23所示。

圖2-23 程序運(yùn)行結(jié)果
2.7.7 身份運(yùn)算符
Python支持身份運(yùn)算符為is和not is。其中,is判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象;is not判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象。
【例2.12】使用身份運(yùn)算符(代碼2.11.py)。

保存并運(yùn)行程序,結(jié)果如圖2-24所示。

圖2-24 程序運(yùn)行結(jié)果
2.7.8 運(yùn)算符的優(yōu)先級(jí)
下面是Python的運(yùn)算符,以處理順序的先后排列。
(1)()、[]、{}。
(2)object。
(3)object[i]、object[1:r]、object.attribute、function()。
“.”符號(hào)用來存取對(duì)象的屬性與方法。下面的示例調(diào)用對(duì)象t的append()方法,在對(duì)象t的結(jié)尾添加一個(gè)字符"t":
>>> t = ["P","a","r","r","o"] >>> t.append("t") >>> t ['P', 'a', 'r', 'r', 'o', 't']
(4)+x、-x、~x。
(5)x**y:x的y次方。
(6)x * y、x / y、x % y:x乘以y、x除以y、x除以y的余數(shù)。
(7)x + y、x – y:x加y、x減y。
(8)x << y、x >> y:x左移y位、x右移y位。例如:
>>> x = 4 >>> x << 2 16
(9)x & y:位AND運(yùn)算符。
(10)x ^ y:位XOR運(yùn)算符。
(11)x | y:位OR運(yùn)算符。
(12)<、<=、>、>=、==、!=、<>、is、is not、in、not in。
in與not in運(yùn)算符應(yīng)用在列表(list)上。is運(yùn)算符檢查兩個(gè)變量是否屬于相同的對(duì)象。is not運(yùn)算符則是檢查兩個(gè)變量是否不屬于相同的對(duì)象。
!=與<>運(yùn)算符是相同功能的運(yùn)算符,都用來測試兩個(gè)變量是否不相等。Python建議使用!=運(yùn)算符,而不要使用<>運(yùn)算符。
(13)not。
(14)and。
(15)or、lambda args:expr。
使用運(yùn)算符時(shí)注意下面的事項(xiàng):
① 除法應(yīng)用在整數(shù)時(shí),其結(jié)果會(huì)是一個(gè)浮點(diǎn)數(shù)。例如,8/4會(huì)等于2.0,而不是2。余數(shù)運(yùn)算會(huì)將x / y所得的余數(shù)返回來,如7%4 =3。
② 如果將兩個(gè)浮點(diǎn)數(shù)相除取余數(shù)的話,那么返回值也會(huì)是一個(gè)浮點(diǎn)數(shù),計(jì)算方式是x –int(x / y) * y。例如:
>>>7.0 % 4.0 3.0
③ 比較運(yùn)算符可以連在一起處理,如a < b < c < d,Python會(huì)將這個(gè)式子解釋成a < b and b < c and c < d。像x < y > z也是有效的表達(dá)式。
④ 如果運(yùn)算符(operator)兩端的運(yùn)算數(shù)(operand),其數(shù)據(jù)類型不相同,Python就會(huì)將其中一個(gè)運(yùn)算數(shù)的數(shù)據(jù)類型轉(zhuǎn)換為與另一個(gè)運(yùn)算數(shù)一樣的數(shù)據(jù)類型。轉(zhuǎn)換順序?yàn)椋喝粲幸粋€(gè)運(yùn)算數(shù)是復(fù)數(shù),則另一個(gè)運(yùn)算數(shù)也會(huì)被轉(zhuǎn)換為復(fù)數(shù);若有一個(gè)運(yùn)算數(shù)是浮點(diǎn)數(shù),則另一個(gè)運(yùn)算數(shù)也會(huì)被轉(zhuǎn)換為浮點(diǎn)數(shù)。
⑤ Python有一個(gè)特殊的運(yùn)算符—lambda。利用lambda運(yùn)算符能夠以表達(dá)式的方式創(chuàng)建一個(gè)匿名函數(shù)。lambda運(yùn)算符的語法如下:
lambda args : expression
args是以逗號(hào)(,)隔開的參數(shù)列表list,而expression則是對(duì)這些參數(shù)進(jìn)行運(yùn)算的表達(dá)式。
例如:
>>>a=lambda x,y:x + y >>>print (a(3,4)) 7
x與y是a()函數(shù)的參數(shù),a()函數(shù)的表達(dá)式是x+y。lambda運(yùn)算符后只允許有一個(gè)表達(dá)式。要達(dá)到相同的功能也可以使用函數(shù)來定義a,如下所示:

【例2.13】運(yùn)算符的優(yōu)先級(jí)(源代碼2.12.py)。

保存并運(yùn)行程序,結(jié)果如圖2-25所示。

圖2-25 程序運(yùn)行結(jié)果
- Practical Data Analysis Cookbook
- 玩轉(zhuǎn)Scratch少兒趣味編程
- Mobile Application Development:JavaScript Frameworks
- Mastering PHP Design Patterns
- Raspberry Pi 2 Server Essentials
- 概率成形編碼調(diào)制技術(shù)理論及應(yīng)用
- 琢石成器:Windows環(huán)境下32位匯編語言程序設(shè)計(jì)
- The Complete Coding Interview Guide in Java
- Mastering Android Game Development
- Android開發(fā)三劍客:UML、模式與測試
- Learning Hadoop 2
- Learning iOS Security
- 分布式架構(gòu)原理與實(shí)踐
- Python預(yù)測分析實(shí)戰(zhàn)
- Learning C# by Developing Games with Unity 3D Beginner's Guide