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

2.5 表達(dá)式和運(yùn)算符

2.5.1 表達(dá)式的組成

表達(dá)式是可以計(jì)算的代碼片段,由操作數(shù)和運(yùn)算符構(gòu)成。操作數(shù)、運(yùn)算符和圓括號(hào)按一定的規(guī)則組成表達(dá)式。表達(dá)式通過(guò)運(yùn)算后產(chǎn)生運(yùn)算結(jié)果,返回結(jié)果對(duì)象。運(yùn)算結(jié)果對(duì)象的類(lèi)型由操作數(shù)和運(yùn)算符共同決定。

運(yùn)算符表明對(duì)操作數(shù)進(jìn)行什么樣的運(yùn)算。運(yùn)算符包括+、-、*、/等。操作數(shù)包括文本常量(沒(méi)有名稱(chēng)的常數(shù)值,例如1、"abc")、變量(例如i=123)、類(lèi)的成員變量/函數(shù)(例如math.pi、math.sin(x))等,也可以包含子表達(dá)式(例如(2**10))。

表達(dá)式既可以非常簡(jiǎn)單,也可以非常復(fù)雜。當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),運(yùn)算符的優(yōu)先級(jí)控制各個(gè)運(yùn)算符的計(jì)算順序。例如,表達(dá)式x+y*z按x+(y*z)計(jì)算,因?yàn)?運(yùn)算符的優(yōu)先級(jí)高于+運(yùn)算符。

例2.22】 表達(dá)式示例。

2.5.2 表達(dá)式的書(shū)寫(xiě)規(guī)則

Python表達(dá)式遵循下列書(shū)寫(xiě)規(guī)則。

(1)表達(dá)式從左到右在同一個(gè)基準(zhǔn)上書(shū)寫(xiě)。例如,數(shù)學(xué)公式a2+b2應(yīng)該寫(xiě)為a**2+b**2。

(2)乘號(hào)不能省略。例如,數(shù)學(xué)公式ab(表示a乘以b)應(yīng)寫(xiě)為a*b。

(3)括號(hào)必須成對(duì)出現(xiàn),而且只能使用圓括號(hào);圓括號(hào)可以嵌套使用。

例2.23】 復(fù)雜表達(dá)式示例。

數(shù)學(xué)表達(dá)式寫(xiě)成Python表達(dá)式為

2.5.3 運(yùn)算符概述

Python運(yùn)算符用于在表達(dá)式中對(duì)一個(gè)或多個(gè)操作數(shù)進(jìn)行計(jì)算并返回結(jié)果值,接受一個(gè)操作數(shù)的運(yùn)算符被稱(chēng)作一元運(yùn)算符,例如正負(fù)號(hào)運(yùn)算符+或-;接受兩個(gè)操作數(shù)的運(yùn)算符被稱(chēng)作二元運(yùn)算符,例如算術(shù)運(yùn)算符+、-、*、/等。

如果一個(gè)表達(dá)式中包含多個(gè)運(yùn)算符,則計(jì)算順序取決于運(yùn)算符的結(jié)合順序和優(yōu)先級(jí)。

優(yōu)先級(jí)高的運(yùn)算符優(yōu)先計(jì)算,例如,在1+2*3中*的優(yōu)先級(jí)比+高,故先計(jì)算2*3。同一優(yōu)先級(jí)的運(yùn)算符按結(jié)合順序依次計(jì)算,例如+、-(以及*、/)為同一優(yōu)先級(jí)左結(jié)合的運(yùn)算符,故1+2-3等同于(1+2)-3;2*4/2等同于(2*4)/2。注意,賦值運(yùn)算符=為右結(jié)合運(yùn)算符,故a=b=c等同于a=(b=c)。用戶(hù)可以使用圓括號(hào)“()”強(qiáng)制改變運(yùn)算順序。

例2.24】 表達(dá)式中運(yùn)算符的優(yōu)先級(jí)示例。

2.5.4 Python運(yùn)算符

Python語(yǔ)言定義了許多運(yùn)算符,按優(yōu)先順序排列如表2-4所示。本書(shū)后續(xù)章節(jié)將陸續(xù)闡述。通過(guò)運(yùn)算符重載(overload)可以為用戶(hù)自定義的類(lèi)型定義新的運(yùn)算符。

表2-4 Python運(yùn)算符

主站蜘蛛池模板: 屏边| 鄂尔多斯市| 牙克石市| 嘉禾县| 山东省| 兴城市| 萍乡市| 新干县| 三门峡市| 正定县| 镇原县| 尚义县| 大厂| 漾濞| 常熟市| 保靖县| 新绛县| 郁南县| 沈丘县| 黎平县| 株洲市| 高州市| 正宁县| 茂名市| 中山市| 巴林左旗| 翁牛特旗| 朔州市| 南丹县| 昭觉县| 招远市| 阿坝| 扶绥县| 伊通| 伊川县| 岫岩| 阳江市| 双柏县| 高雄市| 梁河县| 龙陵县|