第2章 Python語(yǔ)言基礎(chǔ)《Python語(yǔ)言程序設(shè)計(jì)》教學(xué)課件_第1頁(yè)
第2章 Python語(yǔ)言基礎(chǔ)《Python語(yǔ)言程序設(shè)計(jì)》教學(xué)課件_第2頁(yè)
第2章 Python語(yǔ)言基礎(chǔ)《Python語(yǔ)言程序設(shè)計(jì)》教學(xué)課件_第3頁(yè)
第2章 Python語(yǔ)言基礎(chǔ)《Python語(yǔ)言程序設(shè)計(jì)》教學(xué)課件_第4頁(yè)
第2章 Python語(yǔ)言基礎(chǔ)《Python語(yǔ)言程序設(shè)計(jì)》教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩73頁(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ǔ)言程序設(shè)計(jì)》?精品課件合集Python語(yǔ)言程序設(shè)計(jì)第2章Python語(yǔ)言基礎(chǔ)第2章Python語(yǔ)言基礎(chǔ)2.1常量與基本數(shù)據(jù)對(duì)象Python將程序中出現(xiàn)的任何內(nèi)容都統(tǒng)稱為對(duì)象(Object)。這是一種一般意義上的說法。在編寫程序的工作中,程序員更愿意把程序中的內(nèi)容稱為“某某對(duì)象(Object)”,而不是“某某東西(Something)”。對(duì)象3/71在學(xué)習(xí)常量的概念之前,先看一些常量(LiteralConstants,也被稱作字面量)的例子,例如5或1.23這樣的數(shù)字常量,又如“這是一串文本”或“Thisisastring”這樣的字符串常量。常量4/71在學(xué)習(xí)常量的概念之前,先看一些常量(LiteralConstants,也被稱作字面量)的例子,例如5或1.23這樣的數(shù)字常量,又如“這是一串文本”或“Thisisastring”這樣的字符串常量。之所以稱某些數(shù)據(jù)對(duì)象為常量或者字面量,是因?yàn)槲覀兪褂玫木褪沁@些對(duì)象字面意義上(Literal)的值或是內(nèi)容。不管在哪種應(yīng)用場(chǎng)景中,數(shù)字2總是表示它本身的意義而不可能有其他的含義,所以它就是一個(gè)常量,因?yàn)樗闹挡荒鼙桓淖?。常?/71在學(xué)習(xí)常量的概念之前,先看一些常量(LiteralConstants,也被稱作字面量)的例子,例如5或1.23這樣的數(shù)字常量,又如“這是一串文本”或“Thisisastring”這樣的字符串常量。之所以稱某些數(shù)據(jù)對(duì)象為常量或者字面量,是因?yàn)槲覀兪褂玫木褪沁@些對(duì)象字面意義上(Literal)的值或是內(nèi)容。不管在哪種應(yīng)用場(chǎng)景中,數(shù)字2總是表示它本身的意義而不可能有其他的含義,所以它就是一個(gè)常量,因?yàn)樗闹挡荒鼙桓淖?。接下來,通過介紹表示不同類型常量的方法,學(xué)習(xí)Python中基本數(shù)據(jù)對(duì)象的類型。常量6/71常見的數(shù)字對(duì)象主要有3種類型——整數(shù)(int)、浮點(diǎn)數(shù)(float)與復(fù)數(shù)(complex)。例如,2或者100都是整數(shù)對(duì)象,即沒有小數(shù)點(diǎn),也沒有分?jǐn)?shù)的表示形式。整數(shù)類型的對(duì)象有下列表示方法。(1)十進(jìn)制整數(shù),即由0到9十個(gè)數(shù)字組成的整數(shù),是我們生活中最常使用的數(shù)字,遵循“逢十進(jìn)一”的進(jìn)位規(guī)則,表示十進(jìn)制整數(shù)時(shí)不需要加任何前綴,如:1、100等。(2)二進(jìn)制整數(shù),即由0和1兩個(gè)數(shù)字組成的整數(shù),遵循“逢二進(jìn)一”的進(jìn)位規(guī)則,表示二進(jìn)制整數(shù)時(shí)以0B開頭,B可以是大寫或小寫,如:0B111、0b101、0b1111等。(3)八進(jìn)制整數(shù),即由0到7八個(gè)數(shù)字組成的整數(shù),遵循“逢八進(jìn)一”的進(jìn)位規(guī)則,表示八進(jìn)制整數(shù)時(shí)以0O開頭,O可以是大寫或小寫,如:0o12、0o55、0O77等。(4)十六進(jìn)制整數(shù),即由0到9和A到F十六個(gè)數(shù)字組成的整數(shù),遵循“逢十六進(jìn)一”的進(jìn)位規(guī)則,表示十六進(jìn)制整數(shù)時(shí)以0X開頭,X可以是大寫或小寫,如:0X10、0x5F等。整數(shù)類型的數(shù)據(jù)對(duì)象的表示范圍不會(huì)受到數(shù)據(jù)位數(shù)的限制,只受可用內(nèi)存大小的限制。數(shù)字對(duì)象7/71與整數(shù)對(duì)象區(qū)別,浮點(diǎn)數(shù)對(duì)象指的是數(shù)字中帶有小數(shù)點(diǎn)的數(shù),比如3.23或52.3E-4都是浮點(diǎn)數(shù)對(duì)象。其中,E表示10的冪,且必須是一個(gè)整數(shù)。在這里,52.3E-4表示的是52.3×10-4。其他合法的浮點(diǎn)數(shù)舉例還有:1.0、-10.、.387、5e-4、3.429E6等。除了整數(shù)對(duì)象和浮點(diǎn)數(shù)對(duì)象,Python還考慮到了復(fù)數(shù)對(duì)象的表示方式,復(fù)數(shù)是由實(shí)部和虛部組合在一起構(gòu)成的數(shù)。例如,3+4j、3.1-4.1j,其中左邊沒有后綴的部分為實(shí)數(shù)部分,簡(jiǎn)稱實(shí)部,右邊以j或者J作為后綴的部分為虛數(shù)部分,簡(jiǎn)稱虛部。數(shù)字對(duì)象8/71和現(xiàn)實(shí)生活一樣,計(jì)算機(jī)中也有表示對(duì)和錯(cuò)、真和假這樣的邏輯型(bool)的數(shù)據(jù)對(duì)象,它們就是True和False,正如字面上的意思,對(duì)象True表示真,用來表示某個(gè)命題是正確的,對(duì)象False表示假,用來表示某個(gè)命題是錯(cuò)誤的。請(qǐng)記住,計(jì)算機(jī)中是沒有半對(duì)半錯(cuò)的概念的,非假即真,一定是這樣的!邏輯值對(duì)象9/71字符串類型(str)的數(shù)據(jù)對(duì)象就是一組字符的序列(Sequence)。基本上,可以把字符串對(duì)象理解成一串詞語(yǔ)的組合,可以是任何你能想到的字符所進(jìn)行的隨意組合。字符串對(duì)象將會(huì)在幾乎所有的Python程序中被使用到,所以請(qǐng)務(wù)必關(guān)注以下細(xì)節(jié)。(1)單引號(hào)可以使用單引號(hào)來指定字符串對(duì)象,例如,'將字符串這樣框進(jìn)來'或'Quotemeonthis'。所有引號(hào)內(nèi)的字符,包括各種特殊字符,諸如空格與制表符,都將按原樣保留。(2)雙引號(hào)被雙引號(hào)包括的字符串對(duì)象和被單引號(hào)括起的字符串對(duì)象的工作機(jī)制完全相同。例如,"你的名字是?"或"What'syourname?"。字符串對(duì)象10/71(3)三引號(hào)還可以使用3個(gè)引號(hào)——"""(三個(gè)雙引號(hào))或'''(三個(gè)單引號(hào))來指定多行字符串對(duì)象。此時(shí),可以在三引號(hào)中隨意換行,以及在三引號(hào)之間自由地使用單引號(hào)與雙引號(hào)。例如:(4)轉(zhuǎn)義字符特別地,如果使用單引號(hào)包含一個(gè)本身也含有單引號(hào)(')的字符串,應(yīng)該如何表示呢?例如,想要表示的字符串對(duì)象是What'syourname?。一定不能寫成:'What'syourname?',因?yàn)檫@種錯(cuò)誤的形式會(huì)使Python對(duì)于何處是字符串的開始、何處又是結(jié)束感到困惑。此時(shí),可以通過使用轉(zhuǎn)義字符(EscapeSequence,也稱為轉(zhuǎn)義序列)來表示字符串中包含的單引號(hào)。在Python中通過\來表示一個(gè)轉(zhuǎn)義字符。通過使用轉(zhuǎn)義字符,可以將上述字符串對(duì)象表示成:'What\'syourname?'。字符串對(duì)象11/71在Python中指定一串多行字符串對(duì)象可以使用如下方式,一種方式是使用如前所述的三引號(hào)字符串,另一種方式是使用一個(gè)轉(zhuǎn)義字符\n來表示新一行的開始。例如:Python中常見的轉(zhuǎn)義字符如表所示。轉(zhuǎn)義字符\'單引號(hào)\t水平制表符\"雙引號(hào)\v垂直制表符\\字符“\”本身\r回車符\a響鈴\f換頁(yè)符\b退格符\ooo以最多3位的八進(jìn)制數(shù)作為編碼值對(duì)應(yīng)的字符\n換行符\xhh以必須為2位的十六進(jìn)制數(shù)作為編碼值對(duì)應(yīng)的字符12/71(5)原始字符串如果在字符串對(duì)象前增加r或R來指定一個(gè)原始字符串(RawString),那么該字符串中的轉(zhuǎn)義字符將失去作用。例如以下的語(yǔ)句將不會(huì)把Helloworld!分別輸出在兩行中。字符串對(duì)象13/71現(xiàn)實(shí)生活中,讀者可能遇到過這樣的場(chǎng)景,在一些搜集個(gè)人信息數(shù)據(jù)的表格中,某些項(xiàng)目的數(shù)據(jù)你并沒有,此時(shí)你會(huì)在這樣的表格單元中填寫“無”。為了能在計(jì)算機(jī)程序中表示內(nèi)容為“無”的數(shù)據(jù)對(duì)象,Python語(yǔ)言包含了與之對(duì)應(yīng)的空值對(duì)象None。None是一個(gè)非常特殊的數(shù)據(jù)對(duì)象,它既不是數(shù)字,也不是邏輯值,更不是字符串,它是一個(gè)NoneType類型的對(duì)象,而該類型的數(shù)據(jù)對(duì)象也只有一個(gè),即None??罩祵?duì)象None14/71下列代碼運(yùn)行時(shí)不會(huì)產(chǎn)生錯(cuò)誤的是____________。A.print('Hello,I'mfine') B.print("Hello,I'mfine")C.print('Hello,I'mfine") D.print("Hello,I'mfine') 隨堂練習(xí)15/71第2章Python語(yǔ)言基礎(chǔ)2.2數(shù)據(jù)對(duì)象的類型轉(zhuǎn)換為了更好地理解數(shù)據(jù)對(duì)象的類型,此處,在程序中引入內(nèi)置函數(shù)type(),該函數(shù)可以輸出參數(shù)的對(duì)象類型。type()函數(shù)的語(yǔ)法格式如下:type(object)例如,在交互方式中輸入以下命令可以得到各個(gè)常量的對(duì)象類型。內(nèi)置函數(shù)type()

17/71為了能讓各種不同類型的數(shù)據(jù)對(duì)象更好地在一起工作,計(jì)算機(jī)通常需要將它們轉(zhuǎn)換成相同的對(duì)象類型再進(jìn)行接下來的運(yùn)算工作。Python提供了以下內(nèi)置的類型轉(zhuǎn)換函數(shù)供程序員使用。(1)int函數(shù),其語(yǔ)法格式包括以下兩種。int([x])

int(x,base=10)在int()函數(shù)的第一種格式中,函數(shù)將依據(jù)參數(shù)x的內(nèi)容,生成一個(gè)整數(shù)對(duì)象,如果沒有給定參數(shù)x,函數(shù)返回0。例如:內(nèi)置的類型轉(zhuǎn)換函數(shù)18/71(2)float函數(shù),其語(yǔ)法格式如下所示。float([x])該函數(shù)將依據(jù)參數(shù)x的內(nèi)容,生成一個(gè)浮點(diǎn)數(shù)對(duì)象,如果沒有給定參數(shù)x,函數(shù)返回0.0。例如:內(nèi)置的類型轉(zhuǎn)換函數(shù)19/71(3)complex函數(shù),其語(yǔ)法格式如下所示。complex([real[,imag]])該函數(shù)將依據(jù)參數(shù)real和imag的內(nèi)容,生成一個(gè)復(fù)數(shù)對(duì)象,其中參數(shù)real的值表示實(shí)部,參數(shù)imag的值表示虛部。如果沒有給定參數(shù)imag,函數(shù)將返回一個(gè)虛部為0的復(fù)數(shù)對(duì)象,如果參數(shù)real和參數(shù)imag都沒有給定,函數(shù)將返回復(fù)數(shù)0j。例如:內(nèi)置的類型轉(zhuǎn)換函數(shù)20/71

內(nèi)置的類型轉(zhuǎn)換函數(shù)21/71(5)str函數(shù),其常見的一種語(yǔ)法格式如下所示。str(object='')該函數(shù)將依據(jù)參數(shù)object的內(nèi)容,生成一個(gè)字符串對(duì)象,其中,object參數(shù)的默認(rèn)值為一個(gè)空字符串。通過該函數(shù)可以將各種對(duì)象轉(zhuǎn)換成對(duì)應(yīng)的字符串對(duì)象,例如:內(nèi)置的類型轉(zhuǎn)換函數(shù)22/71在Python中還可以使用bin()、oct()、hex()三個(gè)內(nèi)置函數(shù)分別得到一個(gè)整數(shù)的二進(jìn)制、八進(jìn)制、十六進(jìn)制的表示形式。其中,bin()函數(shù)的語(yǔ)法格式如下所示,函數(shù)的返回值為參數(shù)x的對(duì)應(yīng)二進(jìn)制表示形式。bin(x)oct()函數(shù)的語(yǔ)法格式如下所示,函數(shù)的返回值為參數(shù)x的對(duì)應(yīng)八進(jìn)制表示形式。oct(x)hex()函數(shù)的語(yǔ)法格式如下所示,函數(shù)的返回值為參數(shù)x的對(duì)應(yīng)十六進(jìn)制表示形式。hex(x)特別需要強(qiáng)調(diào)的是,以上三個(gè)函數(shù)的返回值均為字符串類型的對(duì)象。例如:與進(jìn)制轉(zhuǎn)換有關(guān)的內(nèi)置函數(shù)23/71和數(shù)字一樣,字符在計(jì)算機(jī)內(nèi)也是以二進(jìn)制的形式存儲(chǔ)和使用的,一個(gè)字符對(duì)應(yīng)的二進(jìn)制整數(shù)被稱作該字符的編碼。Python語(yǔ)言中的字符編碼采用的是Unicode編碼方案,幾乎包含世界上所有可書寫語(yǔ)言字符。使用Python語(yǔ)言內(nèi)置的ord()函數(shù)和chr()函數(shù),可以在單個(gè)字符和其對(duì)應(yīng)的Unicode編碼(以十進(jìn)制表示)之間相互轉(zhuǎn)換,ord()函數(shù)的語(yǔ)法格式如下所示。ord(c)其中,參數(shù)c為一個(gè)長(zhǎng)度為1的字符串對(duì)象,即一個(gè)字符。ord函數(shù)的返回值就是該字符對(duì)應(yīng)的十進(jìn)制編碼值。chr()函數(shù)的功能正好與之相反,它的語(yǔ)法格式如下所示。chr(i)其中,參數(shù)i為一個(gè)有效的Unicode編碼值,范圍為0至1,114,111。chr()函數(shù)的返回值就是該編碼值對(duì)應(yīng)的Unicode字符。例如:與字符編碼有關(guān)的內(nèi)置函數(shù)24/71在Python中如果比較兩個(gè)字符的大小,其本質(zhì)就是在比較兩個(gè)字符的Unicode編碼值的大小。例如:比較字符大小的本質(zhì)是比較其編碼值25/71下列語(yǔ)句的輸出結(jié)果是____________。>>>int(10.88)隨堂練習(xí)26/71第2章Python語(yǔ)言基礎(chǔ)2.3變量與賦值語(yǔ)句如果程序中的數(shù)據(jù)對(duì)象只用常量來表示,程序的閱讀者很快就會(huì)對(duì)這樣的程序感到無比煩躁,因?yàn)槌绦虻拈喿x者只能看到數(shù)據(jù)的字面值,而不能直觀地了解數(shù)據(jù)代表的意思,從而也就無法理解程序的功能和作用。

變量28/71如果程序中的數(shù)據(jù)對(duì)象只用常量來表示,程序的閱讀者很快就會(huì)對(duì)這樣的程序感到無比煩躁,因?yàn)槌绦虻拈喿x者只能看到數(shù)據(jù)的字面值,而不能直觀地了解數(shù)據(jù)代表的意思,從而也就無法理解程序的功能和作用。由此可知,計(jì)算機(jī)程序中,一定要有一些能夠存儲(chǔ)各種數(shù)據(jù)對(duì)象并且也能操縱它們的機(jī)制,同時(shí)這種機(jī)制應(yīng)該能夠讓程序更加容易理解。這種對(duì)存儲(chǔ)在內(nèi)存中的數(shù)據(jù)對(duì)象進(jìn)行命名的機(jī)制便是變量(Variables)。變量29/71如果程序中的數(shù)據(jù)對(duì)象只用常量來表示,程序的閱讀者很快就會(huì)對(duì)這樣的程序感到無比煩躁,因?yàn)槌绦虻拈喿x者只能看到數(shù)據(jù)的字面值,而不能直觀地了解數(shù)據(jù)代表的意思,從而也就無法理解程序的功能和作用。由此可知,計(jì)算機(jī)程序中,一定要有一些能夠存儲(chǔ)各種數(shù)據(jù)對(duì)象并且也能操縱它們的機(jī)制,同時(shí)這種機(jī)制應(yīng)該能夠讓程序更加容易理解。這種對(duì)存儲(chǔ)在內(nèi)存中的數(shù)據(jù)對(duì)象進(jìn)行命名的機(jī)制便是變量(Variables)。正如其名字所述,變量所代表的內(nèi)存空間是可以變化的,也就是說,可以用變量與存儲(chǔ)在內(nèi)存中的任何類型的數(shù)據(jù)對(duì)象進(jìn)行關(guān)聯(lián)。變量30/71變量的名稱需要符合標(biāo)識(shí)符的合法規(guī)則。標(biāo)識(shí)符(Identifiers)就是為程序中的某些內(nèi)容(比如變量、函數(shù)等)提供的名稱。命名標(biāo)識(shí)符需要遵守以下規(guī)則。

標(biāo)識(shí)符中的字符可以是大寫英文字母、小寫英文字母、其他語(yǔ)言字符、數(shù)字(0到9)和下劃線(_)。

標(biāo)識(shí)符的第一個(gè)字符不能是數(shù)字(0~9)。

標(biāo)識(shí)符中不能包含空格和除下劃線以外的符號(hào)字符。

標(biāo)識(shí)符名稱中的英文字母區(qū)分大小寫。例如,name和Name不是同一個(gè)標(biāo)識(shí)符,其中前者包含小寫字母n,后者包含大寫字母N。

標(biāo)識(shí)符不可以和Python中的關(guān)鍵字相同。關(guān)鍵字是指在程序中有著特殊作用的字符組合,比如2.1.2節(jié)中介紹的代表邏輯值真的True和代表邏輯值假的False就是兩個(gè)關(guān)鍵字。標(biāo)識(shí)符命名31/71無需特別記憶,隨著課程展開,將會(huì)學(xué)習(xí)到大部分的關(guān)鍵字用法Python

3.8中的關(guān)鍵字FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryield32/71有效的標(biāo)識(shí)符名稱可以是i或name_2_3。無效的標(biāo)識(shí)符名稱可能是2things、thisisspacedout、my-name、>a1b2_c3和class等。標(biāo)識(shí)符舉例33/71為了在程序中創(chuàng)建變量,并將程序中的對(duì)象與之關(guān)聯(lián),需要使用賦值語(yǔ)句,賦值語(yǔ)句的作用便是將一系列對(duì)象與相應(yīng)的一系列變量進(jìn)行關(guān)聯(lián)。在賦值語(yǔ)句中,最重要的是賦值號(hào)=。例如,以下程序分別將不同類型的對(duì)象與不同的變量進(jìn)行關(guān)聯(lián)。Python中可以用賦值號(hào)將若干個(gè)變量連接起來,并將同一個(gè)對(duì)象與他們進(jìn)行關(guān)聯(lián)。例如:賦值語(yǔ)句34/71Python中的賦值語(yǔ)句還支持在同一條語(yǔ)句中將多個(gè)變量與不同的對(duì)象進(jìn)行關(guān)聯(lián),這有助于縮短程序,并提高程序的可讀性。例如:請(qǐng)注意,使用賦值號(hào)給多個(gè)變量賦值時(shí),務(wù)必要保證賦值號(hào)左邊變量的個(gè)數(shù)與賦值號(hào)右邊對(duì)象的個(gè)數(shù)保持一致,否則會(huì)導(dǎo)致程序出錯(cuò)。再例如以下程序?qū)?huì)交換變量x和y中所關(guān)聯(lián)的對(duì)象:賦值語(yǔ)句35/71在程序中,如果對(duì)同一個(gè)變量進(jìn)行多次賦值,該變量?jī)H會(huì)關(guān)聯(lián)最近一次被賦值的對(duì)象,例如:賦值語(yǔ)句36/71Python語(yǔ)言中,存儲(chǔ)在內(nèi)存中的每一個(gè)對(duì)象都有一個(gè)自己的身份標(biāo)識(shí)(Identity),這個(gè)身份標(biāo)識(shí)就好比現(xiàn)實(shí)生活中每個(gè)人的身份證號(hào)。通過識(shí)別對(duì)象的身份標(biāo)識(shí),程序便可以在內(nèi)存中找到與之對(duì)應(yīng)的存儲(chǔ)空間。Python中提供了內(nèi)置函數(shù)id()來獲得對(duì)象的身份標(biāo)識(shí),其語(yǔ)法格式如下所示。id(object)其中,參數(shù)object可以是Python程序中的任何對(duì)象。例如以下程序表示變量num1和num2關(guān)聯(lián)的是同一個(gè)對(duì)象:內(nèi)置函數(shù)id()

37/71如果某個(gè)變量在程序中不再會(huì)被用到,可以使用del語(yǔ)句將其刪除,例如:上述程序的運(yùn)行結(jié)果表明,刪除變量var1,并不會(huì)導(dǎo)致將其關(guān)聯(lián)的字符串對(duì)象也一并刪除,因?yàn)樽兞縱ar2也與字符串對(duì)象相關(guān)聯(lián),所以程序員依然可以使用變量var2對(duì)字符串對(duì)象進(jìn)行操作。使用del語(yǔ)句刪除變量38/71Python程序中的運(yùn)算符“=”被稱作____________。隨堂練習(xí)39/71第2章Python語(yǔ)言基礎(chǔ)2.4運(yùn)算符與表達(dá)式程序中編寫的大多數(shù)語(yǔ)句都包含了表達(dá)式(Expressions)。一個(gè)表達(dá)式的簡(jiǎn)單例子是2+3,你可以將一個(gè)表達(dá)式理解成一條算式。表達(dá)式中一般需要包含運(yùn)算符(Operators)與操作數(shù)(Operands)。運(yùn)算符是程序中表示特定運(yùn)算操作的符號(hào),在上面的例子中,+就是運(yùn)算符,此時(shí),它代表的是數(shù)字對(duì)象的加法運(yùn)算。運(yùn)算符需要一些數(shù)據(jù)對(duì)象來進(jìn)行操作,這些數(shù)據(jù)對(duì)象就被稱作操作數(shù)。在上面的例子中,整數(shù)對(duì)象2和3就是操作數(shù)。運(yùn)算符和表達(dá)式的定義41/71(1)+(加號(hào)):表示加法運(yùn)算,即將兩個(gè)數(shù)字對(duì)象相加,如果操作數(shù)為字符串對(duì)象,則表示將字符串進(jìn)行相連。(2)-(減號(hào)):表示減法運(yùn)算,即從一個(gè)對(duì)象中減去另一個(gè)對(duì)象,也可以用來表示負(fù)數(shù)。(3)*(乘號(hào)):表示乘法運(yùn)算,即返回兩個(gè)對(duì)象的乘積。如果一個(gè)操作數(shù)是字符串對(duì)象且另一個(gè)操作數(shù)是整數(shù)對(duì)象,則返回該字符串對(duì)象重復(fù)指定次數(shù)后的結(jié)果。(4)**(冪運(yùn)算,求乘方):算式x**y代表求xy。(5)/(除號(hào)):表示除法運(yùn)算,結(jié)果為浮點(diǎn)數(shù)對(duì)象。(6)//(整除):也表示除法運(yùn)算,但結(jié)果只保留整數(shù)部分(向下取整)。(7)%(模運(yùn)算,求余數(shù)):表示整除運(yùn)算后的余數(shù)。算術(shù)運(yùn)算符42/71算術(shù)運(yùn)算符舉例43/71所有關(guān)系運(yùn)算符的返回結(jié)果均為True或False。(1)<(小于):判斷第一個(gè)操作數(shù)是否小于第二個(gè)操作數(shù)。(2)>(大于):判斷第一個(gè)操作數(shù)是否大于第二個(gè)操作數(shù)。(3)<=(小于等于):判斷第一個(gè)操作數(shù)是否小于等于第二個(gè)操作數(shù)。(4)>=(大于等于):判斷第一個(gè)操作數(shù)是否大于等于第二個(gè)操作數(shù)。(5)==(等于):判斷兩個(gè)對(duì)象是否相等,特別注意這個(gè)運(yùn)算符由兩個(gè)連續(xù)的等號(hào)組成。特別注意,兩個(gè)字符串對(duì)象相等的充要條件是:兩者長(zhǎng)度相等,且各個(gè)對(duì)應(yīng)位置上的字符都相同。(6)!=(不等于):判斷兩個(gè)對(duì)象是否不相等。(7)is和isnot運(yùn)算符:判斷兩個(gè)操作數(shù)是不是同一個(gè)對(duì)象。(8)notin和in運(yùn)算符:判斷第一個(gè)操作對(duì)象是否被第二個(gè)操作對(duì)象包含。例如:關(guān)系運(yùn)算符44/71關(guān)系運(yùn)算符舉例45/71(1)not(邏輯非):對(duì)于算式notx,如果操作數(shù)x的邏輯值為False(即使用bool()函數(shù)將操作數(shù)轉(zhuǎn)換為邏輯值,結(jié)果為False),則算式的運(yùn)算結(jié)果為True;否則,算式的運(yùn)算結(jié)果為False。(2)and(邏輯與):對(duì)于算式xandy,如果操作數(shù)x的邏輯值為False,則算式的運(yùn)算結(jié)果就是操作數(shù)x的值;否則,算式的運(yùn)算結(jié)果就是操作數(shù)y的值。(3)or(邏輯或):對(duì)于算式xory,如果操作數(shù)x的邏輯值為True,則算式的運(yùn)算結(jié)果就是操作數(shù)x的值,否則算式的運(yùn)算結(jié)果就是操作數(shù)y的值。邏輯運(yùn)算符46/71邏輯運(yùn)算符舉例47/71Python程序中支持條件運(yùn)算符if--else,該運(yùn)算符的功能是通過判定某個(gè)條件是否成立,從而返回不同的運(yùn)算結(jié)果。例如表達(dá)式xifCelsey首先是對(duì)條件C而非操作數(shù)x求值。如果條件C被判定為True,操作數(shù)x將被求值并返回其值;否則將對(duì)操作數(shù)y求值并返回其值。例如:條件運(yùn)算符if--else

48/719.下列表達(dá)式的值為True的是________。A.3>2>1 B.5+4j>2-3j C.(3,2)<('a','b') D.'abc'>'xyz'隨堂練習(xí)49/71如果有一個(gè)諸如2+3*4的表達(dá)式,是優(yōu)先完成加法運(yùn)算還是優(yōu)先完成乘法運(yùn)算呢?基礎(chǔ)數(shù)學(xué)知識(shí)會(huì)告訴我們應(yīng)該先完成乘法運(yùn)算。這意味著乘法運(yùn)算符的優(yōu)先級(jí)要高于加法運(yùn)算符。本書從Python官方文檔中引用了常見運(yùn)算符的運(yùn)算優(yōu)先級(jí),其中按照從最低優(yōu)先級(jí)到最高優(yōu)先級(jí)的順序進(jìn)行羅列,運(yùn)算符的優(yōu)先級(jí)運(yùn)算符運(yùn)算符描述if--else條件運(yùn)算符or邏輯或運(yùn)算and邏輯與運(yùn)算notx邏輯非運(yùn)算in、notin、is、isnot、<、<=、>、>=、!=、==關(guān)系運(yùn)算+、-算術(shù)運(yùn)算符:加、減*、/、//、%算術(shù)運(yùn)算符:乘、除、整除、取模(求余數(shù))+x、-x單操作數(shù)運(yùn)算符:正、負(fù)**算術(shù)運(yùn)算符:乘方50/71在日常工作中,強(qiáng)烈建議使用圓括號(hào)來對(duì)運(yùn)算符與操作數(shù)進(jìn)行分組,以更加明確地指定優(yōu)先級(jí),這也能使程序更加可讀。例如,2+(3*4)要比2+3*4更加容易理解,因?yàn)楹笳咭蟪绦蜷喿x者首先了解運(yùn)算符的優(yōu)先級(jí)。當(dāng)然使用圓括號(hào)同樣也要適度(而不要過度),例如不要像(2+(3*4))這般冗余。使用圓括號(hào)還有一個(gè)額外的優(yōu)點(diǎn)——它能幫助我們改變運(yùn)算的順序。例如,如果希望在表達(dá)式2+3*4中先完成加法運(yùn)算,那么可以將表達(dá)式寫作(2+3)*4。使用圓括號(hào)改變運(yùn)算順序51/71我們知道,表達(dá)式(Expressions)簡(jiǎn)單來說就是一個(gè)算式,它將常量、運(yùn)算符、括號(hào)、變量等以能求得結(jié)果的有意義內(nèi)容組合一起。學(xué)習(xí)了變量和運(yùn)算符的相關(guān)知識(shí)之后,可以嘗試輸入以下程序來更好地理解使用變量為程序中的對(duì)象進(jìn)行命名的好處。案例:在表達(dá)式中使用變量52/71在Python語(yǔ)言中,可以將部分運(yùn)算符和賦值號(hào)進(jìn)行組合,表示復(fù)合賦值運(yùn)算,例如+=、-=、*=、/=、//=、%=、**=等,使用復(fù)合賦值運(yùn)算符可以使程序更加精煉,同時(shí)還可以提高程序的運(yùn)行效率。例如:復(fù)合賦值語(yǔ)句53/71如果將一個(gè)表達(dá)式放在了一串字符中,例如:"100/2*3",如何才能讓Python求出這個(gè)字符串中的表達(dá)式的值呢?這里推薦一個(gè)非常有用的內(nèi)置函數(shù)——eval()函數(shù),它的功能就是計(jì)算一串字符串中的合法Python表達(dá)式的值,eval()函數(shù)的一種常見語(yǔ)法格式如下所示。eval(expression)其中,參數(shù)expression表示一個(gè)包含合法Python表達(dá)式的字符串,例如:內(nèi)置函數(shù)eval()54/71設(shè)x=3,則表達(dá)式x*=3+5**2運(yùn)行后,x的值是____________。隨堂練習(xí)55/71第2章Python語(yǔ)言基礎(chǔ)2.5和算術(shù)運(yùn)算有關(guān)的內(nèi)置函數(shù)abs()函數(shù)的功能是返回一個(gè)數(shù)字對(duì)象的絕對(duì)值,它的語(yǔ)法格式如下所示。abs(x)其中,如果參數(shù)x可以是一個(gè)整數(shù)對(duì)象或者一個(gè)浮點(diǎn)數(shù)對(duì)象,則函數(shù)返回該對(duì)象的絕對(duì)值。如果參數(shù)x是一個(gè)復(fù)數(shù)對(duì)象,則函數(shù)將會(huì)返回該復(fù)數(shù)對(duì)象的模(該復(fù)數(shù)的實(shí)部與虛部的平方和的算數(shù)平方根),例如:內(nèi)置函數(shù)abs()57/71divmod()函數(shù)將兩個(gè)(非復(fù)數(shù))數(shù)字對(duì)象作為參數(shù),并在運(yùn)行整除時(shí)返回一對(duì)商和余數(shù),它的語(yǔ)法格式如下所示。divmod(a,b)例如:內(nèi)置函數(shù)divmod()58/71pow()函數(shù)用于表示乘方運(yùn)算,和**運(yùn)算符的功能相似,它的語(yǔ)法格式如下所示。pow(base,exp[,mod])其中,參數(shù)base代表底數(shù),參數(shù)exp代表指數(shù),在沒有指定參數(shù)mod的情況下,函數(shù)返回base的exp次冪,即與乘方運(yùn)算符base**exp等價(jià)。如果指定參數(shù)mod的值,則返回base的exp次冪對(duì)參數(shù)mod取余的結(jié)果,例如:內(nèi)置函數(shù)pow()59/71round()函數(shù)用來進(jìn)行Python中的四舍五入運(yùn)算,其語(yǔ)法格式如下所示。round(number[,ndigits])該函數(shù)返回參數(shù)number舍入到小數(shù)點(diǎn)后ndigits位精度的值。如果參數(shù)ndigits被省略或?yàn)镹one,則返回最接近參數(shù)number的整數(shù)對(duì)象。例如:與之前在數(shù)學(xué)中學(xué)過的四舍五入不同,Python采用了統(tǒng)計(jì)學(xué)的四舍五入原則,即當(dāng)小數(shù)部分為.5時(shí),會(huì)四舍五入到與之最接近的偶數(shù),這種舍入方法也被記作“四舍六入五成雙”。例如:內(nèi)置函數(shù)round()60/71表達(dá)式'odd'ifround(4.5)%2else'even'的執(zhí)行結(jié)果是:'____________'。隨堂練習(xí)61/71第2章Python語(yǔ)言基礎(chǔ)2.6輸入與輸出程序通常需要實(shí)現(xiàn)與用戶交互的功能。例如,獲取用戶從鍵盤上輸入的文字,以及將程序運(yùn)算的結(jié)果顯示在屏幕上。上述需求可以分別通過input()函數(shù)與print()函數(shù)來實(shí)現(xiàn)。在程序的運(yùn)行過程中向程序輸入數(shù)據(jù)的過程稱為輸入操作,在Python中使用input()函數(shù)來實(shí)現(xiàn)該功能。input()函數(shù)的語(yǔ)法格式如下所示。input([prompt])其中,可選參數(shù)prompt用于指定接收用戶輸入時(shí)在屏幕上顯示的提示性字符串。例如,編寫一個(gè)程序讓計(jì)算機(jī)存儲(chǔ)用戶的名字,就會(huì)用input()函數(shù)提示用戶輸入他的名字,并把用戶的輸入存放在變量中,程序如下。內(nèi)置函數(shù)input()63/71需要提醒的是,使用input()函數(shù)獲得的數(shù)據(jù)一律都是以字符串類型存放的,哪怕用戶輸入的是一個(gè)數(shù)字,這個(gè)數(shù)字也是以字符串對(duì)象的形式存放在計(jì)算機(jī)中。例如,輸入以下程序:內(nèi)置函數(shù)input()64/71與輸入的功能相似,將程序中的數(shù)據(jù)對(duì)象輸出到屏幕或者文件中的工作,稱為輸出,在Python中,可以使用print()函數(shù)來完成輸出的功能。如果想將之前獲取的關(guān)于姓名的信息打印在屏幕上,可以使用如下語(yǔ)句。與input()函數(shù)搭配使用print()函數(shù)65/71在輸出各類數(shù)據(jù)對(duì)象的時(shí)候,經(jīng)常需要將一系列數(shù)據(jù)對(duì)象按照指定的格式組合到一個(gè)字符串對(duì)象中,此時(shí),可以使用Python提供的格式化字符串功能。在一個(gè)字符串常量的前方添加字符f或者F,以指定當(dāng)前的字符串對(duì)象為格式化字符串對(duì)象。例如使用格式化字符串的表示方法將變量name代表的姓名信息打印在屏幕上,可以使用如下語(yǔ)句。若要在最終的字符串對(duì)象中包含花括號(hào)中的表達(dá)式,可以在花括號(hào){}中表達(dá)式的右邊加上一個(gè)等號(hào),例如:格式化字符串對(duì)象66/71在格式化字符串對(duì)象中,還可以使用某些特定格式(Specification)對(duì)花括號(hào)內(nèi)的數(shù)據(jù)對(duì)象進(jìn)行處理。若要指定特定格式,需要在格式化字符串的花括號(hào)中使用英文冒號(hào)將表達(dá)式和格式標(biāo)記分割開來,例如:格式化字符串對(duì)象67/71同樣,如果在格式字段中表達(dá)式的最后追加一個(gè)等號(hào),則會(huì)將表達(dá)式輸出到結(jié)果字符串中,例如:特別地,在格式化字符串對(duì)象中若要表示花括號(hào),需要使用{{和}}來標(biāo)記,例如:格式化字符串對(duì)象68/71如果只需要把單個(gè)表達(dá)式轉(zhuǎn)變成特定格式的字符串對(duì)象,也可以使用內(nèi)置函數(shù)format(),該函數(shù)的語(yǔ)法格式如下所示。format(value[,format_spec])其中,參數(shù)value是一個(gè)合法的Python表達(dá)式,可選

溫馨提示

  • 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)論