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

下載本文檔

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

文檔簡介

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

符描

述示

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

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

符描

述示

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

符描

述示

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

符描

述示

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

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

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

61。所以60取反后為

61。4.按位運算符對

61進行取反過程如下。①取

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

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

符邏輯表達式描

述示

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

符描

述示

例in如果在某一序列中找到指定值,那么返回True,否則返回Falsexiny表示,若x在y序列中,則返回True,否則返回Falsenotin如果在某一序列中沒有找到指定值,那么返回True,否則返回Falsexnotiny表示,若x不在y序列中,則返回True,否則返回False在成員運算中,對成員的運算不僅包含對值的大小的判斷,還包含對數(shù)據(jù)類型的判斷。在List中,1是數(shù)值,所以判斷數(shù)值1是否屬于List時,返回True;但是判斷[1]是否屬于List時,返回False,因為其數(shù)據(jù)類型不匹配。另外,判斷[4,5]是否屬于List時,返回True,因為List中包含該值。代碼如下:6.成員運算符>>>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身份運算符用于比較兩個對象的內(nèi)存地址。身份運算符表如下。7.身份運算符運

符描

述示

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

2”就是一個表達式,其中“

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

符描

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

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

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

符描

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

”“

”可以更簡單地理解為數(shù)值前面用于標(biāo)識數(shù)值正負(fù)屬性的運算符。運算符優(yōu)先級運算符優(yōu)先級應(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論