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

下載本文檔

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

文檔簡介

第2章 Python基本數(shù)據(jù)類型、表達式和內(nèi)置函數(shù)1.1

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

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

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

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

<<

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

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

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

id(x)==id(y)

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

,類似

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

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

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論