官术网_书友最值得收藏!

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é)果

主站蜘蛛池模板: 会昌县| 扎囊县| 苏尼特右旗| 赤水市| 分宜县| 东城区| 新泰市| 南丹县| 斗六市| 湖南省| 车险| 威远县| 开平市| 毕节市| 通化市| 六枝特区| 旌德县| 莱芜市| 同仁县| 台前县| 马关县| 望城县| 丽江市| 温州市| 旬邑县| 奇台县| 恩平市| 马鞍山市| 聂拉木县| 马公市| 麦盖提县| 东方市| 奎屯市| 集贤县| 兴山县| 乐都县| 白城市| 天台县| 措勤县| 澜沧| 昔阳县|