PYthon語言程序設計課件第2章 數據類型、運算符和表達式_第1頁
PYthon語言程序設計課件第2章 數據類型、運算符和表達式_第2頁
PYthon語言程序設計課件第2章 數據類型、運算符和表達式_第3頁
PYthon語言程序設計課件第2章 數據類型、運算符和表達式_第4頁
PYthon語言程序設計課件第2章 數據類型、運算符和表達式_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章 Python基本數據類型、表達式和內置函數1.1

程序編寫程序的主要目的是利用計算機對數據進行自動管理和處理。作為初學編程語言的人員,首先要考慮以下3個問題:在計算機中如何存儲數據;對數據進行哪些計算;采用哪種邏輯結構來編寫程序。本章將對前兩個問題給出回答。2.1 Python數據類型在Python語言中,數據類型分為數值類型(又稱基本數據類型)和組合數據類型,具體如下所示:2.1.1 Python數值數據類型在Python語言中,數值類型包括int(整型)、float(浮點型)、bool(布爾類型)、complex(復數類型)。2.1.1 Python數值數據類型1. 整型十進制整數,不加任何前綴。例如:32、0、-23等。二進制整數,加前綴0B或0b。例如:0B10、0b110、0b101等,對應十進制的為2、6、5。八進制整數,加前綴0O或0o。例如:0O17、0o101、0o35等,對應十進制的為15、65、29。十六進制整數,加前綴0X或0x。例如:0XA1、0X1b、0x2cf等,對應十進制的為161、27、719。2.1.1 Python數值數據類型2. 浮點型在Python語言中,浮點數的表示方法有兩種:①十進制小數形式:如-3.14、125.69、0.0等。②科學計數法形式:由尾數、字母e或E和指數組成,如1.23e5,其中1.23表示尾數,5表示指數,1.23e5表示的就是1.23*105。2.1.1 Python數值數據類型3. 復數型復數型數據用來表示數學中的復數,由實部、虛部和j組成,實部和虛部都是一個浮點數,j是虛部單位,也可寫成大寫形式。例如1+2.3j、3.5+2.4J等。可以使用real和imag來表示復數的實部和虛部,例如:>>>y=3.2+4.5j>>>y.real3.2>>>y.imag4.52.1.1 Python數值數據類型4. 布爾型布爾型數據用來表示一個命題的兩種狀態(tài),用True(邏輯真)和False(邏輯假)表示。在Python語言中,布爾型是整型的子類型,所以布爾型數據也可以進行算術運算,此時True自動轉化為1,False轉化為0。例如:>>>True+23>>>False+222.1.2 Python的組合數據類型在Python語言中,組合數據類型包括list(列表)、tuple(元組)、string(字符串)、set(集合)、dict(字典)等2.1.2 Python的組合數據類型在Python語言中,組合數據類型包括list(列表)、tuple(元組)、string(字符串)、set(集合)、dict(字典)等2.1.2 Python的組合數據類型1. 列表(list)列表是用中括號[]括起來的零個或多個元素組成,元素之間用逗號分隔。例如[1,2,3,4,5]就是一個具有5個元素的列表。2.1.2 Python的組合數據類型2. 元組(tuple)元組與列表類似,可以包含零個或多個元素,元素之間也是用逗號分隔,且元素的類型也可以不同。與列表不同的是元組是用小括號()括起來的。例如(1,2,3)、(1,2.5,True,[1,2,4])??赵M是指沒有元素的元組,用()表示。2.1.2 Python的組合數據類型3. 字符串(str)在Python語言中只有字符串類型,沒有字符類型。字符串是指用單引號(‘)、雙引號(“)、三引號(三單引號或三雙引號)引起來的零個或多個字符。例如:‘Hello,World!’(用單引號引起來的字符串,左右兩邊必須為同一種引號)2.1.2 Python的組合數據類型4. 集合(set)集合中包含零個或多個元素,元素之間也是用逗號分隔,且元素的類型也可以不同。與列表和元組不同的是集合是用大括號{}括起來的,集合中的元素是無序的,不能重復且不能是列表、集合和字典等可變數據類型??占鲜侵笡]有元素的集合,用set()表示,因為{}表示的是空字典。2.1.2 Python的組合數據類型5. 字典(dict)字典是另一種無序的對象的集合。但與集合不同的是字典是一種映射類型,每一元素由鍵(key)值(value)對組成。在一個字典對象中,鍵必須是唯一的,且鍵不能是列表、集合和字典等可變數據類型,但值可以重復且可以是任意類型??兆值涫侵覆话魏卧氐淖值?,用{}表示。2.1.3 Python中常量與變量1. 常量常量在數學中稱為常數,是指在程序運行過程中,其值保持不變的數據。例如5、5.2、True、3+4.5J、'China'、[1,2,3]、(2.5,3,5)、{2,3,5}、{2:'abc',3:False}等均為常量。2.1.3 Python中常量與變量2. 變量變量是指在程序運行過程中,其值可以發(fā)生改變的量。與數學中的變量一樣,需要給每一個變量指定一個名稱以示區(qū)別不同的變量。給變量命名必須符合標識符的命名規(guī)則,同時建議命名時遵循“見名知義”,可以增強程序的可讀性。2.1.3 Python中常量與變量在Python語言中沒有專門的變量定義語句,而是使用賦值語句來定義變量,賦值語句的格式如下:變量=表達式變量的類型由表達式的值的類型決定,且在同一個程序中,可以先后給變量賦不同類型的值,變量的類型也不同。2.1.3 Python中常量與變量>>>x=2#整數2賦給變量x,此時變量x的類型是整型>>>type(x)<class'int'>>>>x=2.0#浮點數2賦給變量x,此時變量x的類型是浮點類型>>>type(x)<class'float'>2.2 Python運算符與表達式在計算機中,數據處理實際上是對數據按照一定的規(guī)則來進行運算的。例如5+2,其中整數5和2是操作數,+是運算符,即用運算符把操作數連起來的式子就是表達式。在Python語言中常用的運算符有算術運算符、賦值運算符、關系運算符、邏輯運算符、成員運算符,身份運算符等。2.2.1 算術運算符在Python語言中,算術運算符有+、-、*、/、%、//和**等幾個。運算符功能描述+加法運算符,兩個對象相加-負號或減法運算符,得到負數或是一個數減去另一個數的值*乘法運算符,兩個數相乘/除法運算符,如x/y表示x除以y%模運算符(又稱求余運算符),如x%y表示x除以y所得的余數**冪運算符,x**y表示x的y次冪//整除運算符,如x//y表示向下取接近x/y的商的整數2.2.1 算術運算符【例2-1】請寫出下面程序的運行結果。#liti2-1.pyx=12y=5print("x/y=",x/y)print("x%y=",x%y)print("x//y=",x//y)print("y的3次方=",y**3)x=5.9y=3.2print("x%y=",x%y)#浮點數也可進行求余運算print("x//y=",x//y)#浮點數也可進行整除運算程序運行結果如下:x/y=2.4x%y=2x//y=2y的3次方=125x%y=2.7x//y=1.02.2.1 算術運算符【例2-2】編寫程序從鍵盤上輸入一個三位數的整數x,輸出該數的反序數y。假如輸入的352,則輸出253。程序的運行結果如下:請輸入一個三位整數:654654的反序數是:456程序代碼如下:#liti2-2.pyx=eval(input("請輸入一個三位整數:"))b=x//100#求百位數s=x//10%10#求十位數g=x%10#求個位數y=g*100+s*10+b#求反序數print(x,"的反序數是:",y)2.2.2 賦值運算符1. 簡單的賦值運算賦值表達式的格式如下:變量=表達式在賦值表達式中,賦值號左邊必須為變量。賦值表達式的功能是先計算賦值號右邊的表達式的結果,然后將該結果賦給變量。2.2.2 賦值運算符2. 增量賦值運算在Python語言中,賦值運算符可以和其他二元運算符(需要有兩個操作數的運算符)組合成增量賦值運算符。2.2.2 賦值運算符運算符描述實例+=加法賦值運算符c+=a等效于c=c+(a)-=減法賦值運算符c-=a等效于c=c–(a)*=乘法賦值運算符c*=a等效于c=c*(a)/=除法賦值運算符c/=a等效于c=c/(a)%=取模賦值運算符c%=a等效于c=c%(a)**=冪賦值運算符c**=a等效于c=c**(a)//=取整除賦值運算符c//=a等效于c=c//(a)2.2.2 賦值運算符如果增量賦值運算符的右邊是一個表達式,要先計算表達式的結果再進行增量賦值運算。程序運行結果如下:m=37n=105【例2-3】寫出下列程序的運行結果。#liti2-3.pyx=20y=15m=2n=3m+=x+y#等效于m=m+(x+y)n*=x+y#等效于n=n*(x+y)print("m=",m)print("n=",n)2.2.2 賦值運算符3. 鏈式賦值運算在Python語言中,可以將一個表達式的結果同時賦給多個變量。其格式如下:變量1=變量2=…=變量n=表達式例如:>>>x=y=z=4+6#先計算4+6的結果為10,再把10賦給x,y,z>>>print(x,y,z)1010102.2.2 賦值運算符4. 多重賦值運算在Python語言中,可以使用一個賦值號把多個表達式的結果分別賦給多個變量,其語法格式如下:變量1,變量2,…,變量n=表達式1,表達式2,…,表達式n>>>a,b=10,20>>>print(a,b)1020>>>a,b=b,a>>>print(a,b)2010多重賦值運算又叫序列解包,它實際上是先將賦值號右邊的多個表達式的結果組成一個元組,然后將元組序列解包后的每一個元素分別依次賦給每一個變量。2.2.3 關系運算符關系運算符又叫比較運算符,是用來比較兩個運算對象的大小關系的。在Python語言中,關系運算符有6個運算符功能描述實例(若a=5,b=10)==等于,比較對象是否相等a==b的結果為False!=不等于,比較兩個對象是否不相等a!=b的結果為True>

大于,比較x是否大于ya>b的結果為False<

小于,比較x是否小于ya<b的結果為True>=大于等于,比較x是否大于等于ya>=b的結果為False<=小于等于,比較x是否小于等于ya<=b的結果為True2.2.3 關系運算符用關系運算符把運算對象連接起來的式子叫關系表達式,若關系表達式成立,其結果為True,否則為False。例如:>>>x=15>>>10<=x<=20#表示數學公式x∈[10,20]True>>>x>10<20True>>>x>14<5False2.2.4 邏輯運算符運算符邏輯表達式功能描述andxandy邏輯“與”,如果x為False,xandy的結果為x的值,否則它的結果為y的值orxory邏輯“或”,如果x是True,它的結果為x的值,否則它的結果為y的值notnotx邏輯“非”,如果x為True,notx的結果為False;如果x為False,它的結果為True2.2.4 邏輯運算符在Python語言中,如果一個表達式在參與邏輯運算時,表達式的結果是0或者為空時,都認為是Fasle,表達式的結果非0或者非空時都認為是True。在Python語言中,對邏輯運算符and和or支持短路運算,當連接多個表達式時只計算必須要計算的值,且它們組成的邏輯表達式的結果不一定是Fasle或True,但邏輯非not運算的結果一定是Fasle或True。2.2.4 邏輯運算符【例2-4】閱讀下列程序,寫出運行結果。#liti2-4.pyx=-1y=20a=x+1andy+10#x+1為0,即為Fasle,不需計算y+10的結果,表達式的結果為0,把其賦給ab=y+10andx+1#y+10為30,即為True,需計算x+1的結果,表達式的結果為0,把其賦給bc=x+1ory+10#x+1為0,即為Fasle,需計算y+10的結果,表達式的結果為30,把其賦給cd=y+10orx+1#y+10為30,即為True,不需計算x+1,表達式的結果為30,把其賦給de=not(x+1)#x+1為0,即為False,取反則為Truef=notyprint(a,b,c,d,e,f)程序的運行結果如下:003030TrueFalse2.2.5 成員測試運算符運算符描述in如果在指定的序列中找到值則返回True,否則返回Falsenotin如果在指定的序列中沒有找到值則返回True,否則返回False2.2.5 成員測試運算符【例2-5】閱讀下列程序,寫出運行結果。#liti2-5.pystr1="Python3.7.0"a='P'instr1#測試元素'P'是否在字符串str1中b='p'instr1#測試元素'p'是否在字符串str1中c='p'notinstr1#測試元素'p'是否不在字符串str1中print(a,b,c)list1=[5,3,2,4,5,6]x=5inlist1#測試元素5是否在列表list1中y=7notinlist1#測試元素7是否不在列表list1中print(x,y)程序運行結果如下:TrueFalseTrueTrueTrue2.2.6 位運算符運算符功能描述&按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0|按位或運算符:只要對應的兩個二進位有一個為1時,結果該位就為1^按位異或運算符:當兩個對應的二進位相異時,結果為1~按位取反運算符:對數據的每個二進制位取反,即把1變?yōu)?,把0變?yōu)?<<

左移動運算符:運算數的各二進位全部左移若干位,由

<<

右邊的數字指定了移動的位數,高位丟棄,低位補0>>

右移動運算符:運算數的各二進位全部右移若干位,由>>

右邊的數字指定了移動的位數2.2.6 位運算符【例2-6】閱讀下面的程序,寫出程序運行的結果。#liti2-6.pya=41b=39print(bin(a))#函數bin()的功能是把a轉換成二進制數的字符串形式print(bin(b))print(bin(a&b))print(bin(a|b))print(bin(a^b))print(bin(~a))print(bin(a<<1))print(bin(a>>1))程序運行結果如下:0b1010010b1001110b1000010b1011110b1110-0b1010100b10100100b10100#為什么有負號,查看相關文獻資料,數據在計算機中的表示2.2.7 同一性測試運算符運算符功能描述實例isis是判斷兩個標識符是不是引用自一個對象xisy,類似

id(x)==id(y)

,如果引用的是同一個對象則結果為True,否則結果為Falseisnotisnot是判斷兩個標識符是不是引用自不同對象xisnoty

,類似

id(a)!=id(b)。如果引用的不是同一個對象則結果為結果True,否則結果為False2.2.7 同一性測試運算符【例2-7】閱讀下面的程序,寫出程序運行的結果。#liti2-7.pyx=y=2print(xisy)m,n=2.5,2print(misnotn)程序運行結果如下:TrueTrue2.2.8 運算符的優(yōu)先級和結合性對于兩個具有不同優(yōu)先級的相鄰運算符,優(yōu)先級高的運算符先算,再算優(yōu)先級低的運算符。對于兩個具有相同優(yōu)先級的相鄰運算符,其運算順序由結合性決定,結合性包括左結合性和右結合性。左結合性是指從左算到右的運算順序,右結合性是指從右算到左的運算順序。在表達式中可以使用小括號來改變運算符的運算順序,適當的加上括號且能提高表達式的清晰性和可理解性。2.2.8 運算符的優(yōu)先級和結合性運算符說明Python運算符優(yōu)先級結合性小括號()1無乘方(冪運算)**2右按位取反~3右符號運算符+(正號)、-(負號)4右乘除*、/、//、%5左加減+、-6左位移>>、<<7左按位與&8右2.2.8 運算符的優(yōu)先級和結合性運算符說明Python運算符優(yōu)先級結合性按位異或^9左按位或|10左比較運算符==、!=、>、>=、<、<=

11左is運算符is、isnot12左in運算符in、notin13左邏輯非not14右邏輯與and15左邏輯或or16左2.3 Python常用內置函數在Python語言中,函數分為內置函數、標準庫函數和第三方庫函數。內置函數是指可以隨著Python的解釋器的運行自動裝入的函數,可以隨時直接調用。標準庫函數則是要先使用import語句導入后才可以調用。第三方庫函數則要先使用pip等命令下載安裝第三方庫,在使用時也要使用import語句導入后才可以調用。2.3.1 數學運算函數abs()函數函數的調用格式如下: abs(x)該函數的功能是求傳入參數x的絕對值,如果參數x是復數,則該函數的功能是求復數x的模。例如:>>>abs(4+5j)#復數的模是指實部的平方加虛部的平方的平方根6.40312423743284852.3.1 數學運算函數divmod()函數函數的調用格式如下: divmod(x,y)該函數的功能是求傳入的兩個參數的整除的商(x//y)和余數(x%y),返回值是由商和余數組成的元組,例如:>>>divmod(13,5)(2,3)>>>divmod(9.5,3.4)(2.0,2.7)2.3.1 數學運算函數pow()函數函數的調用格式如下: pow(x,y[,z])該函數如果只有參數x和y,其功能為返回x的y次冪;若有參數z,其功能為返回x的y次冪與z的模(x**y%z)。例如:>>>pow(2,5)32>>>pow(2,5,5)22.3.1 數學運算函數round()函數函數的調用格式如下: round(x[,n])該函數的功能是對參數x的小數點后的n+1位進行四舍五入,保留n位小數。n的默認值為0。若n為負數,則表示對參數x的小數點前|n|位進行四舍五入。例如:>>>round(3.15264)#保留0位小數3>>>round(315.64,-2)#對小數點前2位進行四舍五入300.02.3.2 類型轉換函數1.bool()函數函數的調用格式如下: bool([x])該函數的功能是根據參數x的邏輯值創(chuàng)建一個新的布爾值。在Python語言中,非零和非空都看成是邏輯真,只有零和空值看成是邏輯假。例如:>>>bool()#空參數,看成邏輯假False>>>bool(0)#0,看成邏輯假False>>>bool(3)#非0值,看成邏輯真True2.3.2 類型轉換函數2.int()函數函數的調用格式如下: int(x[,base])該函數的功能是根據參數x創(chuàng)建一個新的整數,參數x可以是數字或字符串,如果是數字,則不要帶參數base,如果是字符串,要帶參數base指定字符串是幾進制形式的字符串,缺省表示10。例如:>>>int(7.19)#把浮點數轉換成整數7>>>int("719")#把純數字構成的字符串轉換成整數719>>>int("0b100",2)#把二進制形式構成的字符串,轉換成整數,參數2不能缺少4>>>int("0x10a",16)#把十六進制形式構成的字符串,轉換成整數,參數16不能缺少266>>>int("0o100",8)#把八進制形式構成的字符串,轉換成整數,參數8不能缺少642.3.2 類型轉換函數3. float()函數函數的調用格式如下: float(x)該函數的功能是根據參數x轉換成浮點數。x可以是整數或由數字組成的字符串。>>>float(8)#把整數轉換成浮點數8.0>>>float("7.19")#把浮點數形式的字符串轉換成浮點數7.19>>>float("719")#把整數形式的字符串轉換成浮點數719.02.3.2 類型轉換函數4. complex()函數函數的調用格式如下: complex([real[,imag]])該函數的功能是根據傳入的參數創(chuàng)建一個新的復數。參數real可以是整數或浮點數或字符串,參數imag可以是整數或浮點數。例如:>>>complex(3)#若只有一個參數,則把該參數看成是復數的實部,虛部默認為0(3+0j)>>>complex(5,7)#創(chuàng)建一個實部為5,虛部為7的復數(5+7j)>>>complex("3.5+4.2j")#把復數形式的字符串轉換成復數(3.5+4.2j)2.3.2 類型轉換函數5. str()函數函數的調用格式如下: str(x)該函數的功能是根據傳入的參數x創(chuàng)建一個新的字符串。例如:>>>str(7.19)#把浮點數轉換成字符串'7.19'>>>str(True)#把布爾值轉換成字符串'True'2.3.2 類型轉換函數6. eval()函數函數的調用格式如下: eval(str1)該函數的功能是執(zhí)行參數str1提供的字符串表達式,并返回該表達式的結果。例如:>>>eval("85")85>>>eval("8+5")132.3.3 基本輸入/輸出函數input()和print()函數是Python語言中兩個基本的輸入輸出函數,下面詳細介紹這兩個函數。1.基本的輸入函數input()input()函數用來接收用戶的鍵盤輸入數據,其語法格式如下: input([prompt])該函數的功能是以字符串的形式返回用戶從鍵盤上輸入的數據。參數prompt指的是輸入的提示信息,可以省略。>>>x=input("請輸入一個數字")請輸入一個數字85>>>x'85'2.基本的輸出函數print()print()函數用來把輸出數據按指定格式輸出到輸出設備上或指定的文件中,其語法格式如下: print(*objects,sep='',end='\n',file=sys.stdout,flush=False)其中各參數的含義如下:objects:復數形式,表示可以一次輸出多個對象。輸出多個對象時,需要用“,”分隔。sep:用來設置間隔多個對象的字符,默認值是一個空格。end:用來設定以什么結尾。默認值是換行符\n,可以換成其他字符串。file:要寫入的文件對象,默認為標準輸出顯示器。flush:若該參數的值為True,表示立即輸出到file指定的位置,否則輸出到緩存后再輸出到file指定的位置。該參數默認值為False。2.基本的輸出函數print()【例2-8】寫出下列程序的運行結果。#liti2-8.pyprint(1,2,3)#輸出1,2,3,因sep參數采用默認值,所以用空格分隔,end參數也是默認值,要換行print(1,2,3,sep='@')#輸出1,2,3,因指定參數sep為‘@’,所以用@分隔print(1,2,3,sep='#',end='OK')#輸出1,2,3,用#分隔,且以“OK”結尾,不換行。print("XYZ")程序運行結果為:1231@2@31#2#3OKXYZ2.基本的輸出函數print()與C語言的printf()函數一樣,print()函數也支持格式化輸出,print()函數的字符串格式化字符如表2-9所示,輔助符號如表2-10所示。其詳見教材表2-9和表2-10.2.基本的輸出函數print()【例2-9】寫出下列程序的結果。#liti2-9.pya=125b=3.1415926c="Hello,world!"print("a=%d,a=%x,b=%f,b=%e,c=%s\n"%(a,a,b,b,c))程序運行的結果是:a=125,a=7d,b=3.141593,b=3.141593e+00,c=Hello,world!2.基本的輸出函數print()【例2-10】寫出下列程序的結果。#liti2-10.pya=125b=3.1415926c="Hello,world!"print("01234567890123456789\na=%5d,a=%-5d,\nb=%.3f,b=%e,\nc=%s\n"%(a,a,b,b,c))上述程序運行結果如下:01234567890123456789a=125,a=125,b=3.142,b=3.141593e+00,c=Hello,world!%5d表示以十進制整數輸出,占5個寬度,右對齊,不足5位左補空。%-5d表示以十進制整數輸出,占5位,左對齊,不足5位右補空。%.3f表示以浮點數輸出,保留3位小數。’\n’是轉義字符,表示換行2.基本的輸出函數print()【例2-11】閱讀下面的程序,寫出輸出結果,注意輔助格式控制符的用法。#liti2-11.pypi=3.141592653print("1234567890123")print('%10.3f'%pi)#字段寬10,精度3print("pi=%.*f"%(3,pi))#用*從后面的元組中讀取字段寬度或精度print('%010.3f'%pi)#用0填充空白print('%-10.3f'%pi)#左對齊print('%+f'%pi)#顯示正負號程序運行結果如下:12345678901233.142pi=3.142000003.1423.142+3.141593【例2-12】閱讀下面的程序,寫出輸出結果。#liti2-12.pya=125b=314.15926c="Hello,World!"print("a={0},b={1},c={2}".format(a,b,c))print("a={0:X},b={1:.3f},c={2}".format(a,b,c))程序運行結果如下:a=125,b=314.15926,c=Hello,World!a=7D,b=314.159,c=Hello,World!上述程序中,第一個print()函數中由{}括起來的是輸出項的序號,輸出項是format()中的參數,第一參數的序號是0,{0}表示在此處要輸出第一個參數,第二個參數的序號是1,{1}表示在此處要輸出第二個參數,以此類推。2.3.4 最值、求和與排序函數1.max()函數函數的調用格式如下: max(iterable[,key=func])該函數的功能是求傳入參數iterable的最大值,該函數支持參數key,key參數用來指定比較大小的依據或規(guī)則,一般用函數來指定。例如:>>>max(['15.6','4.5','23.5'],key=eval)#求列表中的各元素的按函數eval轉換后的最大值'23.5'2.3.4 最值、求和與排序函數2.min()函數函數的調用格式如下: min(iterable[,key=func])該函數的功能是求傳入參數iterable的最小值,該函數支持參數key,key參數用來指定比較大小的依據或規(guī)則,一般用函數來指定。例如:>>>min(['15.6','4.5','23.5'])#求列表中的各元素的最小值'15.6'2.3.4 最值、求和與排序函數3.sum()函數函數的調用格式如下: sum(iterable[,start])該函數的功能是求傳入參數iterable的各元素的和。例如:>>>sum([3,5,2])#求列表中各元素的和102.3.4 最值、求和與排序函數4.sorted()函數函數的調用格式如下: sorted(iterable[,key][,reverse])該函數的功能是對列表、元組、字典、集合或其他可迭代對象進行排序并返回新列表。參數iterable是可迭代對象,key是指排序關鍵字,默認值為None,reverse是指排序規(guī)則,默認值為False,表示升序,若要降序則指定reverse=True。例如:>>>sum([3,5,2])#求列表中各元素的和102.3.5 迭代器函數在Python語言中,把返回迭代器對象的函數稱為迭代器函數。如:reversed、map、filter、zip、enumerate等?!暗鳌迸c列表、元組、字符串等序列對象的區(qū)別是:2.3.5 迭代器函數①列表、字符串這樣的序列對象,其內部的元素是真實存在的,但迭代器對象內部其實是沒有元素的,是一種虛擬的存在,只有通過next函數訪問迭代器時,它才會臨時生成所需要的元素,并且每次只生成一個,這種存儲結構節(jié)省內存。②迭代器還有個特殊的性質,每個元素只能訪問一次,一旦訪問過就不能再訪問;因此,如果某個迭代器的元素都按順序訪問了一遍,那這個迭代器就沒有用了,除非重新創(chuàng)建一個。③這些迭代器對象,除了用next()函數訪問外,還可以進行遍歷訪問,也可以用類型轉換函數轉換成其他對象。2.3.5 迭代器函數1.reversed()函數函數的調用格式如下: reversed(seq)該函數的功能是返回一個對序列seq倒置的迭代器對象。參數序列seq可以是列表、元組、字符串或range對象等。例如:>>>x=[1,3,5,7]>>>y=reversed(x)#返回一個reversed迭代器對象賦給y>>>y#y是一個list_reverseiteratorobject對象<list_reverseiteratorobjectat0x00000000030E81D0>>>>next(y)#迭代器對象可以使用next()函數訪問72.3.5 迭

溫馨提示

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

評論

0/150

提交評論