版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 語(yǔ)言基礎(chǔ) 本章內(nèi)容包含Python語(yǔ)言的一些基本知識(shí)和基本概念,包括:Python語(yǔ)言的基本數(shù)據(jù)類型、Python語(yǔ)言的數(shù)據(jù)運(yùn)算符及表達(dá)式、Python語(yǔ)言基本輸入輸出功能等。它們是學(xué)習(xí)、理解與編寫(xiě)Python語(yǔ)言程序的基礎(chǔ)。第2章 語(yǔ)言基礎(chǔ) 學(xué)習(xí)重點(diǎn)和難點(diǎn):Python語(yǔ)言的數(shù)據(jù)類型常量和變量運(yùn)算符和表達(dá)式 學(xué)習(xí)本章后將對(duì)Python語(yǔ)言的基本數(shù)據(jù)及其基本運(yùn)算有個(gè)全面了解與把握。第2章 語(yǔ)言基礎(chǔ)2.1 數(shù)據(jù)類型2.2 運(yùn)算符與表達(dá)式2.3 基本輸入與輸出2.4 應(yīng)用實(shí)例2.1 數(shù)據(jù)類型Python3.6中主要的內(nèi)置類型有: (1) 數(shù)值numeric int(整型) 、float(浮
2、點(diǎn)數(shù))、 bool(布爾型)、complex(復(fù)數(shù)型)等; (2) 序列sequence list(列表)、tuple(元組)、range(范圍)、str(字符串)、bytes(字節(jié)串)、set(集合)等; (3) 映射mappings dict(字典); (4) 類classe; (5) 實(shí)例instance; (6) 例外exception; 2.1 數(shù)據(jù)類型這里主要其中對(duì)幾種數(shù)據(jù)類型作介紹。 2.1.1 類型常量 2.1.2 類型變量 2.1.3 數(shù)值(numerics) 2.1.4 字符串(str) 2.1.5 列表(list) 2.1.6 元組(tuple) 2.1.7 集合(set
3、) 2.1.8 字典(dict) 2.1.9 數(shù)據(jù)類型轉(zhuǎn)換2.1.1 類型常量 在程序執(zhí)行過(guò)程中,其值不發(fā)生改變的量稱為常量。下面介紹幾種常用類型的不同常量(詳見(jiàn)書(shū)本)。 1.整型常量 2.浮點(diǎn)型常量 3.復(fù)數(shù)型常量 4.布爾常量 5.其他類型可能的常量形式2.1.2 類型變量 常量是一塊只讀的內(nèi)存區(qū)域,常量一旦被初始化就不能被改變。變量是計(jì)算機(jī)內(nèi)存中的一塊區(qū)域,變量可以存儲(chǔ)規(guī)定范圍內(nèi)的值,而且值可以改變?;谧兞康臄?shù)據(jù)類型,解釋器會(huì)分配指定大小內(nèi)存,并決定什么數(shù)據(jù)可以被存儲(chǔ)在內(nèi)存中。變量命名應(yīng)符合標(biāo)識(shí)符命名的規(guī)定。 對(duì)于Python而言,Python的一切變量都是對(duì)象,變量的存儲(chǔ),采用了引用
4、語(yǔ)義的方式,存儲(chǔ)的只是一個(gè)變量的值所在的內(nèi)存地址,而不是這個(gè)變量的值本身。2.1.2 類型變量 Python中的變量不需要聲明,每個(gè)變量在使用前都必須賦值。變量的賦值操作即是變量的聲明和定義的過(guò)程。每個(gè)變量在內(nèi)存中創(chuàng)建都包括變量的唯一標(biāo)識(shí)id、名稱和數(shù)據(jù)值這些信息。為此,變量?jī)?nèi)部結(jié)構(gòu)示意圖,如圖2-1所示。在Python中,變量就是變量,本質(zhì)上變量是沒(méi)有類型的,所說(shuō)的“類型”是變量所指的內(nèi)存中對(duì)象的類型。因此,變量可以指定不同的數(shù)據(jù)類型,這些變量在不同時(shí)候可以存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)或字符串等。2.1.2 類型變量1、變量賦值 每個(gè)變量在內(nèi)存中創(chuàng)建,都包括變量的標(biāo)識(shí)、名稱和數(shù)據(jù)值這些信息。每個(gè)變量在使
5、用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。一個(gè)變量可以通過(guò)賦值指向不同類型的對(duì)象。 等號(hào)(=)用來(lái)給變量賦值。等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。例如: counter = 100 # 賦值整型值 miles = 1000.0 # 賦值浮點(diǎn)型值 name = John # 賦值字符串值2.1.2 類型變量2、多個(gè)變量同時(shí)賦值 Python可以同時(shí)為多個(gè)變量賦值,如:a, b, c = 1, 2, john 兩個(gè)整型對(duì)象1和2分配給變量a和b,字符串對(duì)象john分配給變量c。 又如:a = b = c = 1 以上語(yǔ)句,創(chuàng)建一個(gè)整型對(duì)象其值為1,三個(gè)變量
6、被分配引用到相同的內(nèi)存空間上。 又如:a = (1,2,3) # 定義一個(gè)元組 x,y,z = a # 把元組序列的值分別賦給變量x、y、z print(a :%d, b:%d, z:%d%(x,y,z) #打印結(jié)果,x,y,z 按順序分別對(duì)應(yīng)%d2.1.2 類型變量3、下劃線(_)開(kāi)始的特殊變量 Python 用下劃線作為變量前綴和后綴指定特殊變量。 (1)_xxx 變量名_xxx被看作是“私有的”,在模塊或類外不可以使用。當(dāng)變量是私有的時(shí)候,用_xxx 來(lái)表示變量是很好的習(xí)慣。_xxx變量是不能用from module import *導(dǎo)入的。在類中“單下劃線”開(kāi)始(_foo)的成員變量或
7、類屬性叫做保護(hù)變量,意思是只有類對(duì)象和子類對(duì)象自己能訪問(wèn)到這些變量。 (2)_xxx 類中的私有變量名。“雙下劃線”開(kāi)始(_foo)的是私有成員變量,意思是只有類對(duì)象自己能訪問(wèn),連子類對(duì)象也不能訪問(wèn)到這個(gè)數(shù)據(jù)。2.1.2 類型變量(3)_xxx_ xxx為系統(tǒng)定義名字。以雙下劃線開(kāi)頭和結(jié)尾的(_foo_)代表Python里特殊方法專用的標(biāo)識(shí),如_init_(self,.)代表類的構(gòu)造函數(shù)。這樣的系統(tǒng)特殊方法還有許多,如: _new_(cls, .)、_del_(self)、_str_(self)、_lt_(self,other)、_getitem_(self,key)、_len_(self)、
8、_repr_(s)、_cmp_(s, o)、_call_(self, *args)等等。 注意:避免用下劃線作為一般變量名的開(kāi)始。2.1.3 數(shù)值 Python 3支持int、float、bool、complex等數(shù)值類型。數(shù)值類型是不可改變的數(shù)據(jù)類型,這意味著改變數(shù)值會(huì)分配創(chuàng)建一個(gè)新的對(duì)象。 數(shù)值類型的賦值和計(jì)算都是很直觀的,就像大多數(shù)語(yǔ)言一樣。內(nèi)置的type()函數(shù)可以用來(lái)查詢變量所指的對(duì)象類型。 a, b, c, d = 20, 5.5, True, 4+3j print(type(a), type(b), type(c), type(d) 2.1.3 數(shù)值 變量賦值可以理解為給變量數(shù)值
9、對(duì)象的引用,為此也可以使用del語(yǔ)句刪除對(duì)象的引用,這樣變量就沒(méi)定義、不存在而不能用了。 del語(yǔ)句的語(yǔ)法是: del var1, var2, var3., varN 例如:del a, b # 這樣a, b就不能使用了2.1.3 數(shù)值下面是基本的數(shù)值運(yùn)算情況: 5 + 4 # 9 加法 4.3 - 2 # 2.3 減法 3 * 7 # 21 乘法 2 / 4 # 0.5 除法,得到一個(gè)浮點(diǎn)數(shù) 2 / 4 # 0 整除法,得到一個(gè)整數(shù) 17 % 3 # 2 取余 2 * 5 # 32 乘方注意:1)數(shù)值的除法(/)總是返回一個(gè)浮點(diǎn)數(shù),要獲取整數(shù)使用/操作符。2)在混合計(jì)算時(shí),Python會(huì)把整
10、型轉(zhuǎn)換成為浮點(diǎn)數(shù)。2.1.4 字符串 字符串是一系列的字符序列,Python中用單引號(hào)( )、雙引號(hào)( )或者三個(gè)單引號(hào)( )或三個(gè)雙引號(hào)( )來(lái)表示字符串常量。同時(shí)可使用反斜杠()轉(zhuǎn)義特殊字符(見(jiàn)轉(zhuǎn)義符表1-1)。 s = Yes,he doesnt print(s, type(s), len(s) # Yes,he doesnt 14 doesnt # doesnt Yes, he said. # Yes, he said. Yes, he said. # Yes, he said. Isnt, she said. # Isnt, she said.2.1.4 字符串 如果字符串包含有單引
11、號(hào)但不含雙引號(hào),則字符串會(huì)用雙引號(hào)括起來(lái),否則用單引號(hào)括起來(lái)。對(duì)于這樣的輸入字符串,print() 函數(shù)會(huì)產(chǎn)生更易讀的輸出。 如果你不想讓反斜杠發(fā)生轉(zhuǎn)義,可以在字符串前面添加一個(gè)r,表示原始字符串: print(C:somename) C:some ame print(rC:somename) # C:somename2.1.4 字符串以下使用反斜線() 來(lái)續(xù)行: hello = This is a rather long string containingn .several lines of text just as you would do in C.n .Note that white
12、space at the beginning of the line is . significant. hello #其中的換行符仍然要使用n表示,反斜杠后的換行符被丟棄了 This is a rather long string containingnseveral lines of text just as you would do in C.n Note that whitespace at the beginning of the line is significant2.1.4 字符串 使用3個(gè)引號(hào)時(shí),換行符不需要轉(zhuǎn)義,它們會(huì)包含在字符串中。以下的例子只使用了一個(gè)轉(zhuǎn)義符(),避免在
13、最開(kāi)始產(chǎn)生一個(gè)不需要的空行。 print( Usage: thingy OPTIONS -h Display this usage message -H hostname Hostname to connect to )其輸出如下: Usage: thingy OPTIONS -h Display this usage message -H hostname Hostname to connect to2.1.4 字符串 字符串可以使用 + 運(yùn)算符串連接在一起,或者用 * 運(yùn)算符重復(fù)。 print(str+ing, my*3) # string mymymy str ing # string
14、這樣操作正確 str.strip() + ing # string 這樣操作正確 str.strip() ing # 這樣操作錯(cuò)誤 Python中的字符串有兩種索引方式,第一種是從左往右,從0開(kāi)始依次增加;第二種是從右往左,從-1開(kāi)始依次減少。 +-+-+-+-+-+ | H | e | l | l | o | +-+-+-+-+-+ 0 1 2 3 4 5 -5 -4 -3 -2 -12.1.4 字符串 第一行的數(shù)字 0.5 給出了字符串中索引的位置;第二行給出了相應(yīng)的負(fù)數(shù)索引。分切部分從 i 到 j 分別由在邊緣被標(biāo)記為 i 和 j 的全部字符組成。 注意:Python沒(méi)有單獨(dú)的字符類型(
15、char類型),一個(gè)字符就是長(zhǎng)度為1的字符串。 word = Python print(word0, word5) # P n print(word-1, word-6) # n P2.1.4 字符串 還可以對(duì)字符串進(jìn)行切片,獲取一段子串。用冒號(hào)分隔兩個(gè)索引,形式為: 變量頭下標(biāo):尾下標(biāo) 截取的范圍是前閉后開(kāi)的,并且兩個(gè)索引都可以省略。默認(rèn)的第一個(gè)索引為零,第二個(gè)索引默認(rèn)為字符串可以被分切的長(zhǎng)度。 word = ilovePython word1:5 # love word: # ilovePython word:2 # il # 前兩個(gè)字符 word5: # Python word-10:-
16、6 # love2.1.4 字符串 與C字符串不同的是,Python字符串不能被改變。向一個(gè)索引位置賦值,比如word0 = m會(huì)導(dǎo)致錯(cuò)誤。然而,用組合內(nèi)容的方法來(lái)創(chuàng)建新的字符串是簡(jiǎn)單高效的: I + word1: # IlovePython 在分切操作字符串時(shí),有一個(gè)很有用的規(guī)律:s:i + si: 等于 s。對(duì)于有偏差的分切索引的處理方式規(guī)定:一個(gè)過(guò)大的索引值將由字符串的實(shí)際大小取代,上限值小于下限值時(shí)將返回一個(gè)空字符串。 word1:100 # lovePython word20: # # 返回空字符串 word2:1 # # 返回空字符串 2.1.4 字符串 超出范圍的負(fù)數(shù)索引會(huì)被截去
17、多余負(fù)數(shù)表示的部分,但不要嘗試在一個(gè)單元素索引(非分切索引)里使用: word-100: # ilovePython word-10:5 # love # 分別由-10負(fù)數(shù)索引與5正數(shù)索引所分切的部分 word-10 # 錯(cuò)誤 對(duì)于非負(fù)數(shù)分切部分,如果索引都在有效范圍內(nèi),分切部分的長(zhǎng)度就是索引的差值。例如, word1:3 的長(zhǎng)度是2。內(nèi)置的函數(shù) len() 用于返回一個(gè)字符串的長(zhǎng)度: len(word) # 11 注意: 1)反斜杠可以用來(lái)轉(zhuǎn)義,使用r可以讓反斜杠不發(fā)生轉(zhuǎn)義。 2)字符串可以用+運(yùn)算符連接在一起,用*n運(yùn)算符重復(fù)n次。 3)Python中的字符串有兩種索引方式,從左往右以0開(kāi)
18、始,從右往左以-1開(kāi)始。 4)Python中的字符串不能改變。2.1.5 列表 list(列表)是 Python 中使用最頻繁的數(shù)據(jù)類型。列表是寫(xiě)在方括號(hào)( )之間、用逗號(hào)分隔開(kāi)的元素列表。列表中元素的類型可以不相同。列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。它支持字符、數(shù)字、字符串甚至可以包含列表(所謂嵌套),是Python最通用的復(fù)合數(shù)據(jù)類型。 列表中的值的分割(或分片、切片)可以用到“列表變量頭下標(biāo):尾下標(biāo):步長(zhǎng)”,就可以截取相應(yīng)的列表,從左到右索引默認(rèn)0開(kāi)始的,從右到左索引默認(rèn)-1開(kāi)始,下標(biāo)可以為空表示取到頭或尾。2.1.5 列表 a = him, 25, 100, her print(
19、a) # him, 25, 100, her 1)和字符串一樣,列表同樣可以被索引和切片,列表被切片后返回一個(gè)包含所含元素的新列表。 首先設(shè)列表內(nèi)容為:Array=2,3,9,1,4,7,6,8 這個(gè)是一個(gè)數(shù)字列表 2, 3, 9, 1, 4, 7, 6, 8 從前面開(kāi)始的索引號(hào)為 0, 1, 2, 3, 4, 5, 6, 7前面序號(hào) 從后面開(kāi)始的索引號(hào)為 -8,-7,-6,-5,-4,-3,-2,-1后面序號(hào)2.1.5 列表 Array0: # 切片從前面序號(hào)“0”開(kāi)始到結(jié)尾,包括“0”位:2, 3, 9, 1, 4, 7, 6, 8 Array:-1 # 切片從后面序號(hào)“-1”到最前,不包
20、括“-1”位:2, 3, 9, 1, 4, 7, 6 Array3:-2#切從前面序號(hào)“3”開(kāi)始(包括)到從后面序號(hào)“-2”結(jié)束(不包括):1, 4, 7 Array:2 # 2, 9, 4, 6 # 從整列表中切出,分隔“2”2.1.5 列表 Array3:2 # 從前面序號(hào)“3”(包括)到最后,其中分隔為“2”:1, 7, 8 Array3: # 1,4,7,6,8 # 從前面序號(hào)“3”開(kāi)始到最后,沒(méi)有分隔 Array3:-2 # 從前面序號(hào)“3”開(kāi)始,往回?cái)?shù)第2個(gè),因?yàn)榉指魹椤?2”:1, 3 Array-1 # 8 # 此為切出最后一個(gè) Array:-1 # 8, 6, 7, 4, 1
21、, 9, 3, 2 此為倒序2.1.5 列表 2)加號(hào)(+)是列表連接運(yùn)算符,星號(hào)(*)是重復(fù)操作。 a = 1, 2, 3, 4, 5 a + 6, 7, 8 # 1,2,3,4,5,6,7,8 a * 2 # 1, 2, 3, 4, 5, 1, 2, 3, 4, 52.1.5 列表 3)與Python字符串不一樣的是,列表中的元素是可以改變的。 a = 1, 2, 3, 4, 5, 6 # 賦值 a0 = 9 # 元素賦值改變 a2:5 = 13, 14, 15 # 區(qū)段賦值改變 a # 9, 2, 13, 14, 15, 6 a2:5 = # 刪除 a # 9, 2, 6 list內(nèi)置了
22、有很多方法,例如append()、pop()等等,這在后面會(huì)講到。 注意: 1)list寫(xiě)在方括號(hào)之間,元素用逗號(hào)隔開(kāi)。 2)和字符串一樣,list可以被索引和切片。 3)list中的元素是可以改變的。2.1.6 元組 元組(tuple)與列表類似,不同之處在于元組的元素不能修改。元組寫(xiě)在小括號(hào)“( )”里,元素之間用逗號(hào)隔開(kāi)。元組中的元素類型也可以不相同: a = (1991, 2014, physics, math) print(a, type(a), len(a) (1991, 2014, physics, math) 4 元組與字符串類似,可以被索引且下標(biāo)索引從0開(kāi)始,也可以進(jìn)行截取/
23、切片(看上面,這里不再贅述)。其實(shí),可以把字符串看作一種特殊的元組。2.1.6 元組 tup = (1, 2, 3, 4, 5, 6) print(tup0, tup1:5) # 1 (2, 3, 4, 5) tup0 = 11 # 修改元組元素的操作是非法的 雖然tuple的元素不可改變,但它可以包含可變的對(duì)象,比如list列表。構(gòu)造包含0個(gè)或1個(gè)元素的tuple是個(gè)特殊的問(wèn)題,所以有一些額外的語(yǔ)法規(guī)則: tup1 = () # 空元組 tup2 = (20,) # 一個(gè)元素,需要在元素后添加逗號(hào) 另外,元組也支持用 + 操作符: tup1, tup2 = (1, 2, 3), (4, 5,
24、 6) # 同時(shí)賦值 print(tup1+tup2) # (1, 2, 3, 4, 5, 6) # +操作合并一起注意: 1)與字符串一樣,元組的元素不能修改。 2)元組也可以被索引和切片,方法一樣。 3)注意構(gòu)造包含0或1個(gè)元素的元組的特殊語(yǔ)法規(guī)則。 4)元組也可以使用+操作符進(jìn)行拼接。2.1.7 集合 set是一個(gè)無(wú)序不重復(fù)元素的集合?;竟δ苁沁M(jìn)行成員關(guān)系測(cè)試和消除重復(fù)元素。 可以使用大括號(hào) 或者 set()函數(shù)創(chuàng)建set集合, 注意:創(chuàng)建一個(gè)空集合必須用set()而不是 ,因?yàn)?是用來(lái)創(chuàng)建一個(gè)空字典。 student = Tom, Jim, Mary, Tom, Jack, prin
25、t(student) # 重復(fù)的元素被自動(dòng)去掉 Mary,Jim,Tom,Rose,Jack Rose in student # True 成員測(cè)試 a = set(abracadabra) # set集合運(yùn)算,先賦值2.1.7 集合 b = set(alacazam) # c, z, l, m, a a # a, b, c, d, r a - b # b, d, r # a和b的差集 a | b # l,m,a,b,c,d,z,r # a和b的并集 a & b # a, c # a和b的交集 a b # l,m,b,d,z,r # a和b中不同時(shí)存在的元素2.1.8 字典 字典(dictio
26、nary)是Python中另一個(gè)非常有用的內(nèi)置數(shù)據(jù)類型。 字典是一種映射類型(mapping type),它是一個(gè)無(wú)序的“鍵:值”對(duì)集合。 鍵(即關(guān)鍵字)必須使用不可變類型,也就是說(shuō)list和包含可變類型的tuple不能做關(guān)鍵字。在同一個(gè)字典中,關(guān)鍵字還必須互不相同。列表是有序的對(duì)象集合,字典是無(wú)序的對(duì)象集合。字典用“ ”來(lái)標(biāo)識(shí)。字典中元素是通過(guò)鍵來(lái)存取的,而不是通過(guò)偏移存取。2.1.8 字典 dic = # 創(chuàng)建空字典 tel = Jack:1557, Tom:1320, Rose:1886 tel # Tom: 1320, Jack: 1557, Rose: 1886 telJack #
27、1557 # 主要的操作:通過(guò)key查詢 del telRose # 刪除一個(gè)鍵值對(duì) telMary = 4127 # 添加一個(gè)鍵值對(duì) tel # Tom: 1320, Jack: 1557, Mary: 4127 list(tel.keys() # Tom,Jack,Mary #返回所有key組成的list sorted(tel.keys() # Jack, Mary, Tom # 按key排序2.1.8 字典 Tom in tel # True 成員測(cè)試 Mary not in tel # False 成員測(cè)試 構(gòu)造函數(shù) dict() 直接從鍵值對(duì)sequence中構(gòu)建字典,當(dāng)然也可以進(jìn)行
28、推導(dǎo),如下: dict(sape, 4139), (guido, 4127), (jack, 4098) jack: 4098, sape: 4139, guido: 4127 x: x*2 for x in (2, 4, 6) # 2: 4, 4: 16, 6: 36 dict(sape=4139, guido=4127, jack=4098) jack: 4098, sape: 4139, guido: 4127 另外,字典類型也有一些內(nèi)置的函數(shù),例如clear()、keys()、values()等。 注意: 1)字典是一種映射類型,它的元素是鍵值對(duì)。 2)字典的關(guān)鍵字必須為不可變類型,且
29、不能重復(fù)。 3)創(chuàng)建空字典使用 。2.1.9 數(shù)據(jù)類型轉(zhuǎn)換 有時(shí)候,需要對(duì)數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,只需要將數(shù)據(jù)類型作為函數(shù)名即可。表2-1的內(nèi)置函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉(zhuǎn)換。這些函數(shù)返回一個(gè)新的對(duì)象,表示轉(zhuǎn)換的值。2.2 運(yùn)算符與表達(dá)式 Python語(yǔ)言同樣有高級(jí)語(yǔ)言常規(guī)有的運(yùn)算符。Python語(yǔ)言支持以下類型的運(yùn)算符:算術(shù)運(yùn)算符、比較(關(guān)系)運(yùn)算符、賦值運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、成員運(yùn)算符、身份運(yùn)算符。表達(dá)式是將不同類型的數(shù)據(jù)(常量、變量、函數(shù))用運(yùn)算符按照一定的規(guī)則連接起來(lái)的式子。下面分別介紹運(yùn)算符、表達(dá)式及其相關(guān)知識(shí)。2.2 運(yùn)算符與表達(dá)式 2.2.1 運(yùn)算符2.2.2
30、優(yōu)先級(jí)2.2.3 表達(dá)式與結(jié)合性2.2.4 常用內(nèi)置函數(shù)2.2.1 運(yùn)算符 下面來(lái)分類學(xué)習(xí)這7類運(yùn)算符。 (1)算術(shù)運(yùn)算符 表2-2算術(shù)運(yùn)算符中,假設(shè)變量a為10,變量b為20:2.2.1 運(yùn)算符 +, -, * 和/等算術(shù)運(yùn)算符和在許多其它語(yǔ)言(如Pascal或C)里一樣;括號(hào)可以用來(lái)為運(yùn)算分組。有了這些運(yùn)算符,Python 解釋器可以作為一個(gè)簡(jiǎn)單的計(jì)算器,可以在解釋器里輸入一個(gè)表達(dá)式,它將輸出表達(dá)式的值。例如: 2 + 2 # 4 50 - 5*6 # 20 (50 - 5*6) / 4 # 5.0 8 / 5 # 1.6 # 總是返回一個(gè)浮點(diǎn)數(shù) 注意:在不同的機(jī)器上浮點(diǎn)運(yùn)算的結(jié)果可能會(huì)不
31、一樣。2.2.1 運(yùn)算符 在整數(shù)除法中,除法(/)總是返回一個(gè)浮點(diǎn)數(shù),如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用運(yùn)算符 / : 17 / 3 # 5.666666666666667 # 整數(shù)除法返回浮點(diǎn)型,15-16位有效數(shù)位 17 / 3 # 5 #整數(shù)除法返回向下取整后的結(jié)果 17 % 3 # 2 # 操作符返回除法的余數(shù) 5 * 3 + 2 # 17 等號(hào)(=)用于給變量賦值。賦值后給出下一個(gè)提示符,解釋器不會(huì)顯示任何結(jié)果。2.2.1 運(yùn)算符 width = 20 height = 5*9 width * height # 900 Python 可以使用*操作來(lái)進(jìn)行冪運(yùn)算: 5
32、 * 2 # 25 # 5 的平方 2 * 7 # 128 # 2的7次方 變量在使用前必須先“賦值來(lái)獲得定義”(即賦予變量一個(gè)值),否則會(huì)出現(xiàn)錯(cuò)誤:2.2.1 運(yùn)算符 n # 嘗試訪問(wèn)一個(gè)未定義的變量 Traceback (most recent call last): File , line 1, in NameError: name n is not defined 浮點(diǎn)數(shù)得到完全的支持,不同類型的數(shù)混合運(yùn)算時(shí)會(huì)將整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù): 3 * 3.75 / 1.5 # 7.5 7.0 / 2 # 運(yùn)算符 在交互模式中,最后被輸出的表達(dá)式結(jié)果被賦值給變量“_”。這能使你在把
33、Python作為一個(gè)桌面計(jì)算器使用時(shí),使后續(xù)計(jì)算更方便,例如: tax = 12.5 / 100 price = 100.50 price * tax # 12.5625 price + _ # 113.0625 # 100.50 + 12.5625 的結(jié)果 round(_, 2) # 113.06 此處, _ 變量應(yīng)被用戶視為只讀變量。不要顯式地給它賦值,若顯式對(duì) _ 變量賦值,將會(huì)創(chuàng)建一個(gè)具有相同名稱的獨(dú)立的本地 _ 變量,并且屏蔽了這個(gè)內(nèi)置變量的功能。2.2.1 運(yùn)算符(2)關(guān)系運(yùn)算符表2-3關(guān)系(比較)運(yùn)算符中,假設(shè)變量a為10,變量b為20:2.2.1 運(yùn)算符(3)賦值運(yùn)算符表2-4
34、賦值運(yùn)算符中,假設(shè)變量a為10,變量b為20: 2.2.1 運(yùn)算符(4)位運(yùn)算符按位運(yùn)算符是把整數(shù)轉(zhuǎn)成二進(jìn)制數(shù)來(lái)進(jìn)行計(jì)算。按位運(yùn)算法則如表2-5所示: 2.2.1 運(yùn)算符(5)邏輯運(yùn)算符如表2-6邏輯運(yùn)算符中,假設(shè)變量a為10,變量b為20: 2.2.1 運(yùn)算符(6)成員運(yùn)算符 除了以上的一些運(yùn)算符之外,Python還支持如表2-7的成員運(yùn)算符,表示成員是否在某序列中。(7)身份運(yùn)算符身份運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元是否相同,見(jiàn)表2-8。2.2.1 運(yùn)算符 下表2-9給出Python的運(yùn)算符優(yōu)先級(jí),從最低的優(yōu)先級(jí)(最松散地結(jié)合)到最高的優(yōu)先級(jí)(最緊密地結(jié)合)。這意味著在一個(gè)表達(dá)式中,Pyt
35、hon會(huì)首先計(jì)算表中較下面的運(yùn)算符,然后再計(jì)算列在表上部的運(yùn)算符。 另外,小括號(hào)可以改變優(yōu)先級(jí),有()的情況優(yōu)先計(jì)算()中的表達(dá)式。2.2.2 優(yōu)先級(jí)2.2.2 優(yōu)先級(jí)2.2.2 優(yōu)先級(jí)2.2.3 表達(dá)式與結(jié)合性 表達(dá)式是將不同類型的數(shù)據(jù)(常量、變量、函數(shù))用運(yùn)算符按照一定的規(guī)則連接起來(lái)的式子。為此,表達(dá)式由值、變量和運(yùn)算符等組成。 Python運(yùn)算符通常由左向右結(jié)合,即具有相同優(yōu)先級(jí)的運(yùn)算符按照從左向右的順序計(jì)算。例如,2 + 3 + 4被計(jì)算成(2 + 3) + 4。 一些如賦值運(yùn)算符那樣的運(yùn)算符是由右向左結(jié)合的,即a = b = c被處理為a = (b = c)。另外,小括號(hào)可以改變優(yōu)先
36、級(jí),有()的情況優(yōu)先計(jì)算()中的表達(dá)式。Python運(yùn)算符優(yōu)先級(jí)(由低到高)見(jiàn)表2-9。2.2.4 常用內(nèi)置函數(shù) Python解釋器有表2-10中的有效可用的內(nèi)置函數(shù)。函數(shù)的具體含義與使用參數(shù)等參加Python官網(wǎng)幫助文檔:(注意:Python2.x與Python3.x內(nèi)置函數(shù)稍有不同)Python2.x見(jiàn)https:/docs.P/2/library/functions.html#,Python3.x見(jiàn)https:/docs.P/3/library/functions.html#2.2.4 常用內(nèi)置函數(shù) 系統(tǒng)內(nèi)置函數(shù)的基本使用示例如下: 1)abs(-3); abs(-3.14); abs(
37、complex(1,-2); # 3 3.14 2.23606797749979 2)bin(3); bin(-10); # 0b11 -0b1010 轉(zhuǎn)換為二進(jìn)制 3)chr(32);chr(97);chr(22909); # a 好 Unicode碼轉(zhuǎn)成Unicode字符(串)。另外,ord()是與chr()對(duì)應(yīng)相反的函數(shù)。 4)x = 100; y = 200;eval(x+y*2) # 40100 # eval()字符串內(nèi)表達(dá)式計(jì)算 5)float(+1.23);float( -12345n);float(1e-003); # 結(jié)果分別為:1.23 -12345.0 0.001 # 類
38、似的類型轉(zhuǎn)換函數(shù)有:int(),str(),complex()等2.2.4 常用內(nèi)置函數(shù)6)s = input(- )- Monty Pythons Flying Circuss讀到 Monty Pythons Flying Circus7)len(12345);len(1,2,3,4,5);len(1,2,3,4,5);len(range(1,6);len(1,2,3,4,5); len(1:a,2:b,3:c,4:d,5:e); # 結(jié)果都是 58)oct(8);oct(-56); #0o10 -0o70 #oct()轉(zhuǎn)為八進(jìn)制數(shù),hex()轉(zhuǎn)為十六進(jìn)制數(shù)9)a = 5, 2, 3, 1,
39、 4a.sort() # 排序后 a 為 1, 2, 3, 4, 52.3 基本輸入與輸出 完整的程序一般都需要使用到輸入或輸出功能。 1、輸出到屏幕 用print加上字符串,就可以向屏幕上輸出指定的文字。比如輸出hello, world的代碼為: print(hello, world) print語(yǔ)句也可以跟上多個(gè)字符串或表達(dá)式,用逗號(hào)“,”隔開(kāi),就可以連成一串一起輸出: print(The quick brown fox, jumps over, the lazy dog) The quick brown fox jumps over the lazy dog print會(huì)依次打印每個(gè)字符
40、串,遇到逗號(hào)“,”會(huì)輸出一個(gè)空格。 2.3 基本輸入與輸出 如果你希望輸出的形式更加多樣,可以使用 str.format() 函數(shù)來(lái)格式化輸出值。 如果你希望將輸出的值轉(zhuǎn)成字符串,可以使用 repr() 或 str() 函數(shù)來(lái)實(shí)現(xiàn)。 可以使用rjust()右對(duì)齊、ljust()左對(duì)齊和 center()居中,來(lái)控制輸出對(duì)齊。方法 zfill()會(huì)在數(shù)字的左邊填充 0,如: 12.zfill(5) # 00012str.format() 的基本使用如下: print(We are the who say !.format(knights, Ni) % 操作符也可以實(shí)現(xiàn)字符串格式化。它將左邊的參數(shù)作為類似sprintf()式的格式化字符串,而將右邊的代入,然后返回格式化后的字符串。例如: import math print(The value of PI is approximately %5.3f. % math.pi) The value of PI is approximately 基本輸入與輸出 2、鍵盤輸入 現(xiàn)在,已經(jīng)可以用print輸出程序運(yùn)行結(jié)果了。但是,如果要讓用戶從電腦輸入一些字符或數(shù)字怎么辦?Python提供了raw_input(僅用于Python 2.x)、input兩個(gè)內(nèi)置函數(shù),可以從標(biāo)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 新型病原體檢測(cè)技術(shù)研究-洞察分析
- 藥物遞送系統(tǒng)生物相容性-洞察分析
- 五金工具電商市場(chǎng)現(xiàn)狀分析-洞察分析
- 水下能源開(kāi)發(fā)裝備-洞察分析
- 虛擬現(xiàn)實(shí)設(shè)備防護(hù)技術(shù)-洞察分析
- 營(yíng)養(yǎng)基因組學(xué)方法優(yōu)化-洞察分析
- 軍訓(xùn)時(shí)間學(xué)生感想與體會(huì)范文
- 兒童情緒管理在家庭育兒中的重要性
- 《生態(tài)學(xué)取樣方法》課件
- 辦公室農(nóng)產(chǎn)品的營(yíng)銷機(jī)會(huì)挖掘
- 艱苦邊遠(yuǎn)地區(qū)范圍和類別表
- NPUAP壓瘡指南更新的解讀
- 漢語(yǔ)拼音過(guò)關(guān)分類檢測(cè)(直接打印)
- 傳統(tǒng)針刺手法及鄭氏針?lè)ㄅR床應(yīng)用解讀67張課件
- 五年級(jí)上冊(cè)數(shù)學(xué)課件-9.3 多邊形的面積總復(fù)習(xí)丨蘇教版 (共23張PPT)
- 天津市河西區(qū) 2020-2021學(xué)年度第一學(xué)期九年級(jí)期末質(zhì)量調(diào)查物理試卷(PDF打印版+含答案)
- 電子公章模板
- ERAS在胃腸外科圍手術(shù)期中的應(yīng)用和進(jìn)展陳開(kāi)波
- 海思芯片HTOL老化測(cè)試技術(shù)規(guī)范
- 有限元大作業(yè)
- 醫(yī)療預(yù)防保健機(jī)構(gòu)聘用證明
評(píng)論
0/150
提交評(píng)論