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

下載本文檔

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

文檔簡(jiǎn)介

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

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

左移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由

<<

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

右移動(dòng)運(yùn)算符:運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,由>>

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

id(x)==id(y)

,如果引用的是同一個(gè)對(duì)象則結(jié)果為True,否則結(jié)果為Falseisnotisnot是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象xisnoty

,類似

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論