Python編程基礎(chǔ)(第3版)(微課版)課件 2.3 Python的運(yùn)算符_第1頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 2.3 Python的運(yùn)算符_第2頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 2.3 Python的運(yùn)算符_第3頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 2.3 Python的運(yùn)算符_第4頁(yè)
Python編程基礎(chǔ)(第3版)(微課版)課件 2.3 Python的運(yùn)算符_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python的運(yùn)算符1運(yùn)算符優(yōu)先級(jí)目錄常用操作運(yùn)算符2【任務(wù)2-2】計(jì)算圓形的各參數(shù)3【任務(wù)2-3】使用字符串索引計(jì)算n天后是星期幾4Python提供了一系列便利的基礎(chǔ)運(yùn)算符,可用于數(shù)據(jù)分析、研究??蓾M足基本運(yùn)算需求的運(yùn)算符主要有算術(shù)運(yùn)算符、比較運(yùn)算符、賦值運(yùn)算符、按位運(yùn)算符、邏輯運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。常用操作運(yùn)算符算術(shù)運(yùn)算符是用于對(duì)操作數(shù)進(jìn)行運(yùn)算的一系列特殊符號(hào),能夠滿足一般的運(yùn)算需求。在Python3中,常用算術(shù)運(yùn)算符表格如下。1.算術(shù)運(yùn)算符運(yùn)

符描

述示

例+加,即兩個(gè)操作數(shù)相加10+20的輸出結(jié)果為30

減,即得到負(fù)數(shù)或是用一個(gè)數(shù)減去另一個(gè)數(shù)20-10的輸出結(jié)果為10*乘,即兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串10*20的輸出結(jié)果為200/除,即x除以y20/10的輸出結(jié)果為2.0%取模,即返回除法運(yùn)算中的余數(shù)23%10的輸出結(jié)果為3**冪,即返回x的y次冪2**3的輸出結(jié)果為8//取整除,即返回商的整數(shù)部分23//10的輸出結(jié)果為2在進(jìn)行除法運(yùn)算時(shí),不管商為整數(shù)還是浮點(diǎn)數(shù),輸出結(jié)果始終為浮點(diǎn)數(shù)。如果希望得到整型的商,那么需要用到雙正斜線(//)。對(duì)于其他運(yùn)算,只要任一操作數(shù)為浮點(diǎn)數(shù),輸出結(jié)果就是浮點(diǎn)數(shù)。算術(shù)運(yùn)算符的應(yīng)用示例如下。1.算術(shù)運(yùn)算符>>>print(2/1);print(type(2/1))#正斜線除法2.0<class'float'>>>>print(2//1);print(type(2//1))#雙正斜線除法2<class'int'>1.算術(shù)運(yùn)算符>>>print(1+2,'and',1.0+2);print(1*2,'and',1.0*2)#加法和乘法3and3.02and2.0>>>print('23除以10,商為',23//10,',余數(shù)為',23%10)#商和余數(shù)23除以10,商為2,余數(shù)為3>>>print(3*'Python')#字符串的若干次次重復(fù)'PythonPythonPython'比較運(yùn)算符一般用于數(shù)值的比較,也可用于字符的比較。當(dāng)兩個(gè)對(duì)象的比較結(jié)果為真時(shí)返回True,否則返回False。常用比較運(yùn)算符如下。2.比較運(yùn)算符運(yùn)

符描

述示

例==等于,即比較對(duì)象是否相等(1==2)返回False!=不等于,即比較兩個(gè)對(duì)象是否不相等(1!=2)返回True>

大于,x>y即返回x是否大于y(1>2)返回False<

小于,x<y即返回x是否小于y(1<2)返回True>=大于或等于,x>=y即返回x是否大于或等于y(1>=2)返回False<=小于或等于,x<=y即返回x是否小于或等于y(1<=2)返回True在Python中,字符是符合ASCII(AmericanStandardCodeforInformationInterchange,美國(guó)信息交換標(biāo)準(zhǔn)代碼)的,每個(gè)字符都有屬于自己的編碼,字符比較的本質(zhì)是字符的ASCII值的比較。Python提供了以下兩個(gè)可以進(jìn)行字符與ASCII值轉(zhuǎn)換的函數(shù)。(1)ord函數(shù):將字符轉(zhuǎn)換為對(duì)應(yīng)的ASCII值。(2)chr函數(shù):將ASCII值轉(zhuǎn)換為對(duì)應(yīng)的字符。2.比較運(yùn)算符比較運(yùn)算符的應(yīng)用示例如下。2.比較運(yùn)算符>>>print(1==2);print(1!=2)#數(shù)值的比較FalseTrue>>>print('a'=='b','a'!='b');print('a'<'b','a'>'b')#字符的比較FalseTrueTrueFalse>>>print(ord('a'),ord('b'))#查看字符對(duì)應(yīng)的ASCII值9798>>>print(chr(97),chr(98))#查看ASCII值對(duì)應(yīng)的字符ab>>>print('#'<'%')#符號(hào)的比較True賦值運(yùn)算符用于變量的賦值和更新。除了簡(jiǎn)單賦值運(yùn)算符外,其他賦值運(yùn)算符都屬于特殊賦值運(yùn)算符。Python中除了簡(jiǎn)單賦值運(yùn)算符外,還有一類特殊的賦值運(yùn)算符,如加法賦值運(yùn)算符、減法賦值運(yùn)算符等,具體如下表。3.賦值運(yùn)算符運(yùn)

符描

述示

例=簡(jiǎn)單賦值運(yùn)算符c=a+b表示將a+b的運(yùn)算結(jié)果賦值給c+=加法賦值運(yùn)算符a+=b相當(dāng)于a=a+b-=減法賦值運(yùn)算符a-=b相當(dāng)于a=a-b*=乘法賦值運(yùn)算符a*=b相當(dāng)于a=a*b/=除法賦值運(yùn)算符a/=b相當(dāng)于a=a/b%=取模賦值運(yùn)算符a%=b相當(dāng)于a=a%b**=冪賦值運(yùn)算符a**=b相當(dāng)于a=a**b//=取整除賦值運(yùn)算符a//=b相當(dāng)于a=a//b表中的特殊賦值運(yùn)算符也可以看作變量的快速更新。更新意味著變量已經(jīng)存在,對(duì)于一個(gè)之前不存在的變量,則不能使用特殊賦值運(yùn)算符。賦值運(yùn)算符的應(yīng)用示例如下。3.賦值運(yùn)算符>>>a=1+2;print(a)#簡(jiǎn)單賦值運(yùn)算3>>>print('a:',a);a+=4;print('a+=4特殊賦值運(yùn)算后,a:',a)#特殊賦值運(yùn)算a:3a+=4特殊賦值運(yùn)算后,a:7>>>f+=4#未定義變量不能進(jìn)行特殊賦值運(yùn)算NameError:name'f'isnotdefined通常情況下,我們使用的都是十進(jìn)制數(shù),按位運(yùn)算符會(huì)自動(dòng)將輸入的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),再進(jìn)行相應(yīng)的運(yùn)算。在示例中,a為60,b為13,它們對(duì)應(yīng)的二進(jìn)制數(shù)如下。4.按位運(yùn)算符a=00111100b=000011014.按位運(yùn)算符常用按位運(yùn)算符如下表。運(yùn)

符描

述示

例&按位與運(yùn)算符:參與運(yùn)算的兩個(gè)運(yùn)算數(shù)的二進(jìn)制數(shù)如果對(duì)應(yīng)位都為1,那么結(jié)果的對(duì)應(yīng)位為1,否則為0a&b輸出結(jié)果12,二進(jìn)制值:00001100|按位或運(yùn)算符:只要參與運(yùn)算的兩個(gè)運(yùn)算數(shù)的二進(jìn)制數(shù)的對(duì)應(yīng)位有一個(gè)為1,結(jié)果的對(duì)應(yīng)位就為1a|b輸出結(jié)果61,二進(jìn)制值:00111101^按位異或運(yùn)算符:當(dāng)兩個(gè)參與運(yùn)算的運(yùn)算數(shù)的二進(jìn)制數(shù)的對(duì)應(yīng)位相異時(shí),結(jié)果的對(duì)應(yīng)位為1a^b輸出結(jié)果49,二進(jìn)制值:00110001~按位取反運(yùn)算符:對(duì)運(yùn)算數(shù)的每個(gè)二進(jìn)制位取反,即把1變?yōu)?,把0變?yōu)?~a輸出結(jié)果-61,二進(jìn)制值:11000011<<

左移運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)制位全部左移若干位,由“<<”右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)0a<<2輸出結(jié)果240,二進(jìn)制值:11110000>>

右移運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)制位全部右移若干位,由“>>”右邊的數(shù)指定移動(dòng)的位數(shù),低位丟棄,高位補(bǔ)0a>>2輸出結(jié)果15,二進(jìn)制值:00001111按位運(yùn)算符的應(yīng)用示例如代碼如下:4.按位運(yùn)算符>>>a=60;b=13;print('a=60,b=13')#初始賦值a=60,b=13#按位與、按位或、按位異或運(yùn)算>>>print('a&b=',a&b)a&b=12>>>print('a|b=',a|b)a|b=61>>>print('a^b=',a^b)a^b=494.按位運(yùn)算符#按位取反和位移運(yùn)算>>>print('~a=',~a)~a=-61>>>print('a<<2=',a<<2)a<<2=240>>>print('a>>2=',a>>2)a>>2=154.按位運(yùn)算符這里以按位與和按位取反運(yùn)算為例,講解具體的計(jì)算過程。(1)按位與運(yùn)算按位與運(yùn)算:參與運(yùn)算的兩個(gè)運(yùn)算數(shù)的二進(jìn)制數(shù)如果對(duì)應(yīng)位都為1,則結(jié)果的對(duì)應(yīng)位為1,否則為0。如下代碼,a和b從右往左的第3、4位都為1,其余位都沒有同時(shí)為1,故對(duì)a和b做按位與運(yùn)算的結(jié)果在從右往左第3、4位為1,其余位都為0。a=00111100b=00001101a&b=000011004.按位運(yùn)算符(2)按位取反運(yùn)算按位取反涉及補(bǔ)碼的計(jì)算,相對(duì)復(fù)雜。十進(jìn)制數(shù)的二進(jìn)制原碼包括符號(hào)位和二進(jìn)制值。以60為例,其二進(jìn)制原碼為“00111100”,從左往右第1位為符號(hào)位,其中,0代表正數(shù),1代表負(fù)數(shù)。對(duì)于正數(shù)來說,其補(bǔ)碼與二進(jìn)制原碼相同;對(duì)于負(fù)數(shù)來說,其補(bǔ)碼為二進(jìn)制原碼符號(hào)位保持不變,其余各位取反后再在最后一位加1。4.按位運(yùn)算符對(duì)60進(jìn)行取反過程如下。①取60的二進(jìn)制原碼:00111100。②取補(bǔ)碼:00111100。③每一位取反:11000011,得到最終結(jié)果的補(bǔ)碼(負(fù)數(shù))。④取補(bǔ)碼:10111101,得到最終結(jié)果的原碼。⑤轉(zhuǎn)換為十進(jìn)制數(shù):

61。所以60取反后為

61。4.按位運(yùn)算符對(duì)

61進(jìn)行取反過程如下。①取

61的二進(jìn)制原碼:10111101。②取補(bǔ)碼:11000011。③每一位取反:00111100,得到最終結(jié)果的補(bǔ)碼(正數(shù))。④取補(bǔ)碼:00111100,得到最終結(jié)果的原碼。⑤轉(zhuǎn)換為十進(jìn)制數(shù):60。所以

61取反后為60。4.按位運(yùn)算符兩個(gè)過程很好地展示了正數(shù)和負(fù)數(shù)的按位取反操作,可以總結(jié)為以下5個(gè)步驟。①取十進(jìn)制數(shù)的二進(jìn)制原碼。②對(duì)原碼取補(bǔ)碼。③補(bǔ)碼取反(得到最終結(jié)果的補(bǔ)碼)。④對(duì)取反結(jié)果再取補(bǔ)碼(得到最終結(jié)果的原碼)。⑤將二進(jìn)制原碼轉(zhuǎn)換為十進(jìn)制數(shù)。邏輯運(yùn)算符包括and、or、not,具體用法如下表,示例中a為11,b為22。5.邏輯運(yùn)算符運(yùn)

符邏輯表達(dá)式描

述示

例andxandy布爾“與”,若x為False,則返回x;否則返回yaandb,返回22orxory布爾“或”,若x為True,則返回x;否則返回yaorb,返回11notnot(x)布爾“非”,若x為True,則返回False;若x為False,則返回Truenot(aandb),返回False邏輯運(yùn)算符的應(yīng)用示例如下。5.邏輯運(yùn)算符>>>a=11;b=22;print('a=11,b=22')#初始賦值a=11,b=22#and、or、not運(yùn)算>>>print('aandb=',aandb)aandb=22>>>print('aorb=',aorb)aorb=115.邏輯運(yùn)算符>>>print('not(aandb)=',not(aandb))not(aandb)=False>>>a=0;b=22;print('a=0,b=22')#重新賦值a=0,b=22#and、or、not運(yùn)算>>>print('aandb=',aandb)aandb=0>>>print('aorb=',aorb)aorb=22>>>print('not(aandb)=',not(aandb))not(aandb)=True5.邏輯運(yùn)算符當(dāng)按位運(yùn)算符和邏輯運(yùn)算符用于布爾值運(yùn)算時(shí),按位&和邏輯and的運(yùn)算效果一樣,當(dāng)運(yùn)算符左右兩個(gè)值都為True時(shí),返回True,否則返回False;按位|和邏輯or的運(yùn)算效果一樣,當(dāng)運(yùn)算符左右兩個(gè)值中有一個(gè)值為True時(shí),返回True,否則返回False,代碼如下。>>>print(True&True);print(TrueandTrue)#按位&、邏輯andTrueTrue>>>print(True|False);print(TrueorFalse)#按位|、邏輯orTrueTrue>>>print(True&False);print(TrueandFalse)FalseFalse>>>print(False|False);print(FalseorFalse)FalseFalse成員運(yùn)算符的作用是判斷指定值是否存在于某一序列中,指定值包括字符串、列表或元組。成員運(yùn)算符表如下。6.成員運(yùn)算符運(yùn)

符描

述示

例in如果在某一序列中找到指定值,那么返回True,否則返回Falsexiny表示,若x在y序列中,則返回True,否則返回Falsenotin如果在某一序列中沒有找到指定值,那么返回True,否則返回Falsexnotiny表示,若x不在y序列中,則返回True,否則返回False在成員運(yùn)算中,對(duì)成員的運(yùn)算不僅包含對(duì)值的大小的判斷,還包含對(duì)數(shù)據(jù)類型的判斷。在List中,1是數(shù)值,所以判斷數(shù)值1是否屬于List時(shí),返回True;但是判斷[1]是否屬于List時(shí),返回False,因?yàn)槠鋽?shù)據(jù)類型不匹配。另外,判斷[4,5]是否屬于List時(shí),返回True,因?yàn)長(zhǎng)ist中包含該值。代碼如下:6.成員運(yùn)算符>>>List=[1,2,3.0,[4,5],'Python3']#初始化列表List>>>print(1inList)#判斷1是否屬于ListTrue>>>print([1]inList)#判斷[1]是否屬于ListFalse>>>print(3inList)#判斷3是否屬于ListTrue>>>print([4,5]inList)#判斷[4,5]是否屬于ListTrue>>>print('Python'inList)#判斷字符串'Python'是否屬于ListFalse>>>print('Python3'inList)#判斷字符串'Python3'是否屬于ListTrue身份運(yùn)算符用于比較兩個(gè)對(duì)象的內(nèi)存地址。身份運(yùn)算符表如下。7.身份運(yùn)算符運(yùn)

符描

述示

例is用于判斷兩個(gè)標(biāo)識(shí)符是否引用自一個(gè)對(duì)象xisy表示,如果id(x)等于id(y),則返回True,否則返回Falseisnot用于判斷兩個(gè)標(biāo)識(shí)符是否引用自不同對(duì)象xisnoty表示,如果id(x)不等于id(y),則返回True,否則返回False在身份運(yùn)算中,當(dāng)內(nèi)存地址相同的兩個(gè)對(duì)象進(jìn)行is運(yùn)算時(shí),返回True;當(dāng)內(nèi)存地址不同的兩個(gè)對(duì)象進(jìn)行isnot運(yùn)算時(shí),返回True。當(dāng)給a、b賦同樣的值時(shí),實(shí)質(zhì)上是分配了同樣的內(nèi)存地址。應(yīng)用示例如下:7.身份運(yùn)算符>>>a=11;b=11;print('a=11,b=11')#初始化a、ba=11,b=11>>>print(aisb);print(aisnotb)#身份運(yùn)算TrueFalse>>>print(id(a));print(id(b))#查看id地址879136540067287913654006727.身份運(yùn)算符>>>a=11;b=22;print('a=11,b=22')#重新給b賦值a=11,b=22>>>print(aisb);print(aisnotb)#身份運(yùn)算FalseTrue>>>print(id(a));print(id(b))#查看id地址879136540067287913654010241運(yùn)算符優(yōu)先級(jí)目錄常用操作運(yùn)算符2【任務(wù)2-2】計(jì)算圓形的各參數(shù)3【任務(wù)2-3】使用字符串索引計(jì)算n天后是星期幾4在Python的應(yīng)用中,通常使用表達(dá)式的形式進(jìn)行運(yùn)算。表達(dá)式由運(yùn)算符和操作數(shù)組成。例如,“1

2”就是一個(gè)表達(dá)式,其中“

”是運(yùn)算符,“1”和“2”是操作數(shù)。一個(gè)表達(dá)式往往不只包含一個(gè)運(yùn)算符。當(dāng)一個(gè)表達(dá)式包含多個(gè)運(yùn)算符時(shí),各運(yùn)算符的優(yōu)先級(jí)如表(從上到下優(yōu)先級(jí)依次降低),處于同一優(yōu)先級(jí)的運(yùn)算符則從左到右依次進(jìn)行運(yùn)算。運(yùn)算符優(yōu)先級(jí)運(yùn)

符描

述**冪運(yùn)算符(最高優(yōu)先級(jí))~、+、

按位取反、正、負(fù)運(yùn)算符*、/、%、//乘、除、取余、整除運(yùn)算符+、

加、減運(yùn)算符>>、<<右移、左移運(yùn)算符&按位與運(yùn)算符^、|按位異或、按位或運(yùn)算符運(yùn)算符優(yōu)先級(jí)運(yùn)

符描

述<=、<、>、>=比較運(yùn)算符<>、==、!=比較運(yùn)算符=、%=、/=、//=、-=、+=、*=、**=賦值運(yùn)算符is、isnot身份運(yùn)算符in、notin成員運(yùn)算符not、or、and邏輯運(yùn)算符(接上表)第二行中的“

”“

”可以更簡(jiǎn)單地理解為數(shù)值前面用于標(biāo)識(shí)數(shù)值正負(fù)屬性的運(yùn)算符。運(yùn)算符優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí)應(yīng)用示例代碼如下。>>>print(24+12/6**2*18)#24+12/36*18→24+(1/3)*18→24+630.0>>>print(24+12/(6**2)*18)#24+12/36*18→24+(1/3)*18→24+630.0>>>print(24+(12/(6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論