Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 習(xí)題及答案匯總 羅陽倩子 項(xiàng)目1-13 Python簡介及示例- 正則表達(dá)式_第1頁
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 習(xí)題及答案匯總 羅陽倩子 項(xiàng)目1-13 Python簡介及示例- 正則表達(dá)式_第2頁
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 習(xí)題及答案匯總 羅陽倩子 項(xiàng)目1-13 Python簡介及示例- 正則表達(dá)式_第3頁
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 習(xí)題及答案匯總 羅陽倩子 項(xiàng)目1-13 Python簡介及示例- 正則表達(dá)式_第4頁
Python程序設(shè)計(jì)基礎(chǔ)項(xiàng)目化教程 習(xí)題及答案匯總 羅陽倩子 項(xiàng)目1-13 Python簡介及示例- 正則表達(dá)式_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Python語言程序設(shè)計(jì)Python簡介及示例測試習(xí)題答案測試習(xí)題答案一、填空題高級語言翻譯為機(jī)器語言的方式有兩種:一種是編譯,一種是解釋。Python屬于解釋型語言。Python程序支持兩種運(yùn)行方式:交互式和腳本式。Python的單行注釋以符號#作為開始符,該符號后面的文字都是注釋。input函數(shù)的功能是接收標(biāo)準(zhǔn)輸入數(shù)據(jù)(即從鍵盤輸入),返回為string類型(字符串)。print函數(shù)的功能是將各種類型的數(shù)據(jù)(字符串、整數(shù)、浮點(diǎn)數(shù)、列表、字典等)輸出到屏幕上。IDLE有兩種窗口模式:Shell和Editor(編輯器)。二、選擇題下面不屬于Python語言優(yōu)點(diǎn)的是(C)簡單易學(xué)免費(fèi)開源強(qiáng)制縮進(jìn)豐富的庫有關(guān)Python的注釋敘述正確的是(B)A. 單行注釋以分號“;“開始B. 多行注釋以三個(gè)單引號“'''”或三個(gè)雙引號“"""”作為開始符和結(jié)束符C. 多行注釋以三個(gè)“&”作為開始符和結(jié)束符D. 注釋也是程序代碼,參與程序的運(yùn)行已知語句:r=eval(input("請輸入一個(gè)有效的表達(dá)式:")),則運(yùn)行情況錯(cuò)誤的是(D)A. 如果輸入“4+7”,通過“print(r)”可得到結(jié)果11B. 如果輸入“4*2.5+10”,通過“print(r)”可得到結(jié)果20C. 如果輸入“5*/3”,則會因其不是一個(gè)有效的表達(dá)式而報(bào)SyntaxError錯(cuò)誤。D. 如果輸入“3+5”,通過“print(r)”可得到結(jié)果3+5三、簡答題簡述Python語言的優(yōu)點(diǎn)

答:Python具有簡單易學(xué):語法簡單、代碼量少;免費(fèi)開源:源代碼開放;跨平臺性:可移植到Linux、Windows、Macintosh、Android等平臺上;高層語言:忽略底層細(xì)節(jié);面向?qū)ο螅悍先祟愓J(rèn)識客觀世界的方式;豐富的庫:提供了內(nèi)在標(biāo)準(zhǔn)庫以及豐富的第三方庫;膠水語言:像使用膠水一樣把用其他編程語言編寫的模塊粘合過來等優(yōu)點(diǎn)簡述Python在科學(xué)計(jì)算、數(shù)據(jù)庫編程、Web編程和人工智能等4個(gè)領(lǐng)域的應(yīng)用

答:科學(xué)計(jì)算:Python是一門很適合做科學(xué)計(jì)算的編程語言,從1997年開始,NASA就大量使用Python進(jìn)行各種復(fù)雜的科學(xué)運(yùn)算;數(shù)據(jù)庫編程:程序員可通過遵循PythonDB-API(數(shù)據(jù)庫應(yīng)用程序編程接口)規(guī)范的模塊與MicrosoftSQLServer、Oracle、Sybase、DB2、MySQL、SQLite等數(shù)據(jù)庫通信;Web開發(fā):Python擁有很多免費(fèi)數(shù)據(jù)函數(shù)庫、免費(fèi)web網(wǎng)頁模板系統(tǒng)以及與web服務(wù)器進(jìn)行交互的庫,可以實(shí)現(xiàn)web開發(fā),搭建web框架;人工智能:各種AI算法都基于Python編寫。在神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)方面,Python都能夠找到比較成熟的包來加以調(diào)用。數(shù)據(jù)類型及其運(yùn)算測試習(xí)題答案

測試習(xí)題答案一、填空題變量是指在程序運(yùn)行過程中值可以發(fā)生改變的量。已知s=”Python語言程序設(shè)計(jì)“,則print(s[2:4])的輸出結(jié)果為th,print(s[-4:-2])的輸出結(jié)果為程序。已知t=(3.5,2,'abcd',4+5j,True,[3,3.5],5.3),print(t[3])的輸出結(jié)果為:4+5j,print(t[-3])的輸出結(jié)果為:True。10/4的結(jié)果為2.5,10//4的結(jié)果為2,10%4的結(jié)果為2,10**4的結(jié)果為10000。已知x=50,則10<=xandx<=30的結(jié)果為False。已知x,y=4,5,則x|y的結(jié)果為5,x^y的結(jié)果為1。二、選擇題下面選項(xiàng)中,正確變量名是(C)2sumfor圓面積2itis執(zhí)行Python語句name,age=’張三’,20之后,下面說法正確的是(C)A. name的值為“張三”,age的值為20,兩個(gè)變量的類型不一定B. 程序報(bào)錯(cuò),因?yàn)閮蓚€(gè)變量沒有定義,不能直接賦值C. 定義兩個(gè)變量,name是字符串類型,值為“張三”,age是整型,值為20D. 不能同時(shí)給兩個(gè)變量賦值,程序報(bào)錯(cuò)已知語句:a,b,c=12,0o12,0x12,則print(a,b,c)輸出結(jié)果是(A)A. 121018B. 121212C. 10816D. 121810已知:a={10,2.5,'test',3+4j,True,5.3,2.5},則print(a)輸出結(jié)果是(B)A. {10,2.5,'test',3+4j,True,5.3,2.5}B. {True,2.5,5.3,10,3+4j,'test'}C. 102.5'test'3+4jTrue5.32.5D. True2.55.3103+4j'test'print(“姓名:%5s,年齡:%5d,成績:%6.2f”%(“tom”,19,86.5))的輸出結(jié)果是(D)(□表示一個(gè)空格)A. 姓名:tom,年齡:19,成績:86.5B. 姓名:tom□□,年齡:19□□□,成績:86.50□C. 姓名:□□tom,年齡:□□□19,成績:86.5D. 姓名:□□tom,年齡:□□□19,成績:□86.50已知x,y=10,[10,20,30],則xisy和xiny的結(jié)果分別為(D)A. TrueTrueB. FalseFalseC. TrueFalseD. FalseTrue三、簡答題寫出下面程序的運(yùn)行結(jié)果。s1,s2="abc","def"z1,z2=[1,2,"zhang"],[2.2,3.3,"wang"]x1=[1,2.5,'test',3+4j,True,[3,1.63],5.3]print(s1+s2)print(z1+z2)print(s1*3)print(z1[:])print(x1[:3])print(x1[3:-1])答:運(yùn)行結(jié)果為:abcdef[1,2,'zhang',2.2,3.3,'wang']abcabcabc[1,2,'zhang'][1,2.5,'test']已知程序段的功能是:用戶輸入數(shù)字1至7,輸出對應(yīng)的星期幾的字符串,如輸入4,輸出星期四。請將程序填寫完整。week="星期一星期二星期三星期四星期五星期六星期日"n=eval(input("請輸入星期數(shù)字(1至7)"))pos=(n-1)*3print(week[pos:pos+3])條件與循環(huán)測試習(xí)題答案課后習(xí)題答案一、填空題通過設(shè)置條件,可以使得某些語句在條件滿足時(shí)才會執(zhí)行。通過循環(huán),可以使得某些語句重復(fù)執(zhí)行多次。下面程序段循環(huán)次數(shù):11,循環(huán)結(jié)束后i的值是-1。i=10whilei>=0:i-=1print(i)已知程序段:score=eval(input('請輸入成績(0~100之間的整數(shù)):'))ifscore<60:print('不及格')elifscore<70:print('及格')elifscore<80:print('中等')elifscore<90:print('良好')elifscore<=100:print('優(yōu)秀')若輸入77,則輸出結(jié)果為:中等。已知程序段的功能是:用戶輸入數(shù)字n,利用for循環(huán)求n!。請將程序填寫完整。n=eval(input('請輸入一個(gè)大于0的整數(shù):'))s=1foriinrange(1,n+1):s=s*iprint(s)下面程序的功能是求100以內(nèi)能被7整除的最大整數(shù),請將程序填寫完整。n=100whilen>=0:ifn%7==0:print(n)breakn-=1判斷素?cái)?shù)的程序,請將程序填寫完整。forninrange(2,101):m=int(n**0.5)i=2whilei<=mifn%i==0:breaki+=1ifi>m:print(n,end='')二、選擇題已知程序段:score=eval(input('請輸入成績(0~100之間的整數(shù)):'))ifscore<60:print('你的成績是%d'%score)print('不及格')若輸入55,則輸出結(jié)果是(A)你的成績是55不及格你的成績是55不及格無輸出已知程序段:score=eval(input('請輸入成績(0~100之間的整數(shù)):'))ifscore>=60:passelse:print('不及格')若輸入55,則輸出結(jié)果為(B)A. 無輸出B. 不及格C. passD. 程序報(bào)錯(cuò)已知程序段:n=eval(input('請輸入一個(gè)整數(shù):'))ifn%2==0:print("偶數(shù)")else:print("奇數(shù)")若輸入-5,則輸出結(jié)果是(B)A. 無輸出B. 奇數(shù)C. 偶數(shù)D. 偶數(shù)奇數(shù)已知語句段:d={'Python':1,'C++':2,'Java':3}forkind:print('%s:%d'%(k,d[k]))輸出結(jié)果是(C)A. PythonC++JavaB. 1:Python2:C++3:JavaC. Python:1C++:2Java:3D. 以上都不對下面程序段的輸出結(jié)果是(D)ls=['Python','C++','Java']fork,vinenumerate(ls,3):print(k,v)A. PythonC++JavaB. 1Python2C++3JavaC. Python1C++2Java3D. 3Python4C++5Java三、簡答題水仙花數(shù)是三位整數(shù)(100~999),它的各位數(shù)字立方和等于該數(shù)本身。下面程序求水仙花數(shù),請寫出程序運(yùn)行結(jié)果。forninrange(100,1000):bai=n//100shi=n//10%10ge=n%10ifbai**3+shi**3+ge**3==n:print(n)結(jié)果為:153370371407下面程序輸出九九乘法表,請將程序補(bǔ)充完整。foriinrange(1,10):forjinrange(1,i+1):print(j,"*",i,"=",i*j,end='')print('\n')函數(shù)與模塊測試習(xí)題答案

測試習(xí)題答案一、填空題Python語言中使用函數(shù)分為兩個(gè)步驟:定義函數(shù)和調(diào)用函數(shù)。Python語言中函數(shù)定義需要使用def關(guān)鍵字。形參是定義函數(shù)時(shí)函數(shù)名后面的一對小括號中給出的參數(shù)列表。實(shí)參是在調(diào)用函數(shù)時(shí)函數(shù)名后面的一對小括號中給出的參數(shù)列表。能夠?qū)⒁粋€(gè)函數(shù)的運(yùn)算結(jié)果返回到調(diào)用函數(shù)的位置,以使得可以繼續(xù)用該運(yùn)算結(jié)果再去參與其他運(yùn)算,此時(shí)則應(yīng)使用return語句。使用import將整個(gè)模塊導(dǎo)入,也可以使用fromimport將模塊中的標(biāo)識符直接導(dǎo)入當(dāng)前環(huán)境,可以使用from模塊名import*的方式導(dǎo)入一個(gè)模塊中的所有標(biāo)識符。定義一個(gè)包,就是創(chuàng)建一個(gè)文件夾并在該文件夾下創(chuàng)建一個(gè)__init__.py文件,文件夾的名字就是包名。猴子補(bǔ)丁是指在運(yùn)行時(shí)動態(tài)替換已有的代碼,而不需要修改原始代碼。二、選擇題下列說法中錯(cuò)誤的是(B)當(dāng)調(diào)用函數(shù)時(shí),如果沒有為某些形參傳遞對應(yīng)的實(shí)參,則這些形參會自動使用默認(rèn)參數(shù)值在使用關(guān)鍵字參數(shù)調(diào)用函數(shù)時(shí),實(shí)參的傳遞順序可以與形參列表中形參的順序必須一致當(dāng)普通實(shí)參傳遞給形參后,如果在函數(shù)體中對形參值做修改,則該修改并不會影響實(shí)參,即實(shí)參值不會改變。如果實(shí)參是列表等對象時(shí),可在函數(shù)體中通過形參修改實(shí)參列表中對應(yīng)元素的值。下列關(guān)于拆分參數(shù)列表的說法正確的是(A)A. 列表、元組拆分出來的結(jié)果作為位置參數(shù),字典拆分出來的結(jié)果作為關(guān)鍵字參數(shù)B. 列表、元組和字典拆分出來的結(jié)果都作為關(guān)鍵字參數(shù)C. 列表、元組和字典拆分出來的結(jié)果都作為位置參數(shù)D. 列表、元組拆分出來的結(jié)果作為關(guān)鍵字參數(shù),而字典拆分出來的結(jié)果作為位置參數(shù)三、簡答題寫出下面程序段的輸出結(jié)果。defModifyVal(x,y):z=xx=yy=zdefModifyListElement(ls,idx,val):ls[idx]=vala,b=3,5print(a,b)ModifyVal(a,b)print(a,b)c=[7,8,9]print(c)ModifyListElement(c,1,6)print(c)答:運(yùn)行結(jié)果為:3535[7,8,9][7,6,9]寫出下面程序段的輸出結(jié)果。defCircleInfo(radius,color='red'):print('半徑:%d,顏色:%s'%(radius,color))CircleInfo(10)CircleInfo(20,color='green')CircleInfo(color='blue',radius=30)答:運(yùn)行結(jié)果為:半徑:10,顏色:red半徑:20,顏色:green半徑:30,顏色:blue函數(shù)Sum的功能是求參數(shù)的和并返回,參數(shù)個(gè)數(shù)不限。請將程序填寫完整。defSum(*args):s=0foriinargs:s+=ireturnsprint(Sum(1,2,3,4,5))已知模塊文件arithmetic.py的內(nèi)容為:defplus(x,y):returnx+ydefmulti(x,y):returnx*y編寫程序,將模塊導(dǎo)入,調(diào)用其中的函數(shù),請將程序填寫完整。使用import導(dǎo)入:importarithmeticprint(arithmetic.plus(3,5))print(arithmetic.multi(5,6))使用fromimport依次導(dǎo)入標(biāo)識符:fromarithmeticimportplus,multiprint(plus(3,5))print(multi(5,6))使用fromimport所有標(biāo)識符:fromarithmeticimport*print(plus(3,5))print(multi(5,6))函數(shù)高級應(yīng)用測試習(xí)題答案

測試習(xí)題答案一、填空題按照作用域的不同,Python中的變量可以分為局部變量和全局變量。在一個(gè)函數(shù)中使用global關(guān)鍵字,可以聲明在該函數(shù)中使用的是全局變量、而非局部變量。通過nonlocal關(guān)鍵字,可以使內(nèi)層的函數(shù)直接使用外層函數(shù)中定義的變量。遞歸函數(shù)是指在一個(gè)函數(shù)內(nèi)部通過調(diào)用自己來完成一個(gè)問題的求解。lambda函數(shù)也稱為匿名函數(shù),是一種不使用def定義函數(shù)的形式,其作用是能快速定義一個(gè)簡短的函數(shù)。lambda函數(shù)的函數(shù)體只是一個(gè)表達(dá)式,所以lambda函數(shù)通常只能實(shí)現(xiàn)比較簡單的功能。如果內(nèi)層函數(shù)使用了外層函數(shù)中定義的局部變量,并且外層函數(shù)的返回值是內(nèi)層函數(shù)的引用,就構(gòu)成了閉包。二、選擇題下列說法中錯(cuò)誤的是(D)在一個(gè)函數(shù)中定義的變量就是局部變量局部變量的作用域是從定義位置到函數(shù)結(jié)束位置在所有函數(shù)外定義的變量就是全局變量全局變量的作用域是從定義位置到程序結(jié)束位置下列關(guān)于裝飾器的說法錯(cuò)誤的是(C)A. 利用裝飾器,可以在不修改已有函數(shù)的情況下向已有函數(shù)中注入代碼,使其具備新的功能B. 一個(gè)裝飾器可以為多個(gè)函數(shù)注入代碼,一個(gè)函數(shù)也可以注入多個(gè)裝飾器的代碼C. 一個(gè)裝飾器可以為多個(gè)函數(shù)注入代碼,而一個(gè)函數(shù)只能注入一個(gè)裝飾器的代碼D. 裝飾器實(shí)際上就是一種閉包三、簡答題寫出下面程序的輸出結(jié)果。defouter():x=100globalyy=200definner():nonlocalxx=1000y=2000print('inner函數(shù)中的x,y值為:',x,y)inner()print('outer函數(shù)中的x,y值為:',x,y)x=10y=20outer()print("執(zhí)行outer,inner函數(shù)之后x,y值為:",x,y)答:輸出結(jié)果為:inner函數(shù)中的x,y值為:10002000outer函數(shù)中的x,y值為:1000200執(zhí)行outer,inner函數(shù)之后x,y值為:10200寫出下面閉包程序的輸出結(jié)果。deff(x):y=100definner(z):returnx*y+zreturninnera10=f(10)a20=f(20)print(a10(29))print(a20(29))答:程序運(yùn)行結(jié)果為:10292029已知高階函數(shù)的程序如下:defFunAdd(f,x):returnf(x)defarea(r):return3.14*r*rdefperimeter(r):return2*3.14*rprint(FunAdd(area,5))print(FunAdd(perimeter,5))請將其中的area函數(shù)和perimeter函數(shù)改寫為lambda函數(shù)。請將改寫后的程序填寫完整。defFunAdd(f,x):returnf(x)print(FunAdd(lambdar:3.14*r*r,5))print(FunAdd(lambdar:2*3.14*r,5))斐波那契數(shù)列(Fibonaccisequence),又稱黃金分割數(shù)列,因數(shù)學(xué)家列昂納多·斐波那契(LeonardodaFibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”。斐波那契數(shù)列前兩項(xiàng)的值都為1,后面每一項(xiàng)的值等于其前兩項(xiàng)的和,即:F(1)=F(2)=1,F(xiàn)(n)=F(n-1)+F(n-2)(n>2)。請編寫遞歸函數(shù)fib(n),實(shí)現(xiàn)求斐波那契數(shù)列第n項(xiàng)的值。參考程序如下:deffib(n):ifn==1orn==2:return1returnfib(n-1)+fib(n-2)集合與字典測試習(xí)題答案

測試習(xí)題答案一、填空題集合中的issuperset方法可以用于判斷一個(gè)集合是否是另一個(gè)集合的父集。使用del可以刪除某個(gè)元素,也可以使用字典中的pop方法刪除指定鍵的元素。使用字典中的clear方法可以一次將一個(gè)字典中的所有元素都清除。判斷字典中是否存在某個(gè)鍵可以使用字典中的get方法,也可以使用成員運(yùn)算符in。已知ls=[x*2forxinrange(5)],則print(ls)的輸出結(jié)果為[0,2,4,6,8]。迭代器是指可以通過next函數(shù)不斷獲取下一個(gè)值的對象。Python中,通過列表中的index方法可以根據(jù)指定值查找第一個(gè)匹配的列表元素的位置。Python中,通過列表中的insert方法可以將一個(gè)元素插入到列表的指定位置。若在列表的最后添加新元素,則可以直接使用列表的append方法。使用del語句可以刪除某個(gè)變量或列表中的某個(gè)元素。二、選擇題下列敘述錯(cuò)誤的是(C)可以使用一對大括號{}或set函數(shù)創(chuàng)建集合可以使用一對大括號{}或dict函數(shù)創(chuàng)建字典可以使用{}或set()創(chuàng)建空集合可以使用{}或dict()創(chuàng)建空字典已知定義:d=dict(sno='1810100',name='李曉明',age=19,t=(3,4),s=[3,4,5])則len(d)的值為(A)5678已知字典d,獲取字典中鍵值集合的語句是(C)A. d.items()B. d.values()C. d.keys()D. d.get()4.下列敘述正確的是(B)列表和元組都是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔,元組是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔,元組是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表和元組都是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔5.關(guān)于復(fù)制列表元素說法錯(cuò)誤的是(C)A. Python中,通過賦值運(yùn)算實(shí)際上是將兩個(gè)變量指向同一個(gè)對象,而不是將一個(gè)變量的值賦給另一個(gè)變量。B. 采用元素截取的方法,可以根據(jù)一個(gè)已有列表對象復(fù)制出另一個(gè)新的列表對象,后面對兩個(gè)對象的操作完全獨(dú)立C. 如果一個(gè)列表中包含列表類型的元素,元素截取的方法完全可行,兩個(gè)列表中的相同列表類型的元素完全獨(dú)立D. 為了真正實(shí)現(xiàn)列表的復(fù)制操作,可以使用Python在copy模塊中提供的deepcopy函數(shù)6.已知學(xué)生類中有屬性name和sno,列表ls中含有若干學(xué)生對象,若要求列表ls按照學(xué)生的姓名的降序排序,相應(yīng)的語句是(A)A. ls.sort(key=lambdastu:,reverse=True)B. ls.sort(key=lambdastu:)C. ls.sort(key=name,reverse=True)D. ls.sort(name)三、簡答題寫出下面程序的運(yùn)行結(jié)果。d1={'name':"zhangsan",'sno':"001",'score':99}d2=dict().fromkeys(['radius','height'],0)print(d1)print(d2)d1.update({'age':19})d2.update(radius=10)print(d1)print(d2)deld1['age']height=d2.pop('height','notfound')print(d1)print(d2)print(height)print(len(d1))print(len(d2))答:運(yùn)行結(jié)果為:{'name':'zhangsan','sno':'001','score':99}{'radius':0,'height':0}{'name':'zhangsan','sno':'001','score':99,'age':19}{'radius':10,'height':0}{'name':'zhangsan','sno':'001','score':99}{'radius':10}031寫出下面程序的運(yùn)行結(jié)果。s1=[1,2,3,4,5,6,7,8,9,10]s2=list(range(10,20))s3=s1[2:8:2]s4=s2[-8::-2]print(s1)print(s2)print(s3)print(s4)答:運(yùn)行結(jié)果為:[1,2,3,4,5,6,7,8,9,10][10,11,12,13,14,15,16,17,18,19][3,5,7][12,10]該程序用到字典的淺拷貝和深拷貝,已知程序運(yùn)行結(jié)果,請將程序填寫完整。importcopyd1={'name':"zhangsan",'sno':"001",'score':{'math':99,'C++':88}}d2=d1.copy()d3=copy.deepcopy(d1)d1['name']="li"d1['score']['C++']=90print(d1)print(d2)print(d3)已知程序運(yùn)行結(jié)果為:{'name':'li','sno':'001','score':{'math':99,'C++':90}}{'name':'zhangsan','sno':'001','score':{'math':99,'C++':90}}{'name':'zhangsan','sno':'001','score':{'math':99,'C++':88}}5.寫出下面程序的運(yùn)行結(jié)果。t1=("zhangsan",18,95.5)t2=()t3=(33,)t4=([44,55,66])t5=t1+t3print(t1,t2,t3,t4,t5)print(t5)print(max(t4))print(min(t4))答:運(yùn)行結(jié)果為:('zhangsan',18,95.5)()(33,)[44,55,66]('zhangsan',18,95.5,33)('zhangsan',18,95.5,33)6644列表與元組測試習(xí)題答案

測試習(xí)題答案一、填空題Python中,通過列表中的index方法可以根據(jù)指定值查找第一個(gè)匹配的列表元素的位置。Python中,通過列表中的insert方法可以將一個(gè)元素插入到列表的指定位置。若在列表的最后添加新元素,則可以直接使用列表的append方法。使用del語句可以刪除某個(gè)變量或列表中的某個(gè)元素。使用max方法可以獲取一個(gè)列表中最大元素的值。使用min方法可以獲取一個(gè)列表中最小元素的值。使用列表中的count方法可以統(tǒng)計(jì)某個(gè)值在列表中出現(xiàn)的次數(shù)。二、選擇題下列屬于可變類型的是(A)列表元組字符串?dāng)?shù)字下列敘述正確的是(B)列表和元組都是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔,元組是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔,元組是用一對中括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔列表和元組都是用一對小括號括起來的多個(gè)元素的有序集合,各元素之間用逗號分隔關(guān)于復(fù)制列表元素說法錯(cuò)誤的是(C)A. Python中,通過賦值運(yùn)算實(shí)際上是將兩個(gè)變量指向同一個(gè)對象,而不是將一個(gè)變量的值賦給另一個(gè)變量。B. 采用元素截取的方法,可以根據(jù)一個(gè)已有列表對象復(fù)制出另一個(gè)新的列表對象,后面對兩個(gè)對象的操作完全獨(dú)立C. 如果一個(gè)列表中包含列表類型的元素,元素截取的方法完全可行,兩個(gè)列表中的相同列表類型的元素完全獨(dú)立D. 為了真正實(shí)現(xiàn)列表的復(fù)制操作,可以使用Python在copy模塊中提供的deepcopy函數(shù)已知學(xué)生類中有屬性name和sno,列表ls中含有若干學(xué)生對象,若要求列表ls按照學(xué)生的姓名的降序排序,相應(yīng)的語句是(A)A. ls.sort(key=lambdastu:,reverse=True)B. ls.sort(key=lambdastu:)C. ls.sort(key=name,reverse=True)D. ls.sort(name)三、簡答題寫出下面程序的運(yùn)行結(jié)果。t1=("zhangsan",18,95.5)t2=()t3=(33,)t4=([44,55,66])t5=t1+t3print(t1,t2,t3,t4,t5)print(t5)print(max(t4))print(min(t4))答:運(yùn)行結(jié)果為:('zhangsan',18,95.5)()(33,)[44,55,66]('zhangsan',18,95.5,33)('zhangsan',18,95.5,33)6644寫出下面程序的運(yùn)行結(jié)果。ls=[1,2,3,2,3,4]print(ls.index(4))print(ls.count(3))print(max(ls))print(min(ls))print(len(ls))dells[3]print(ls)ls.sort(reverse=True)print(ls)答:運(yùn)行結(jié)果為:52416[1,2,3,3,4][4,3,3,2,1]寫出下面程序的運(yùn)行結(jié)果。importcopys1=[4,5,6]s2=s1s2[1]="nk"print(s1,s2)s3=s1[1:3]s3[1]="cn"print(s1,s3)s4=copy.deepcopy(s1)s4[1]=333print(s1,s4)s5=[4,[5,6]]s6=s5[1:3]s5[1][0]="cn"print(s5,s6)s7=copy.deepcopy(s5)s7[1]="nk"print(s5,s7)答:運(yùn)行結(jié)果為:[4,'nk',6][4,'nk',6][4,'nk',6]['nk','cn'][4,'nk',6][4,333,6][4,['cn',6]][['cn',6]][4,['cn',6]][4,'nk']類與對象測試習(xí)題答案

測試習(xí)題答案一、填空題類和對象的關(guān)系即數(shù)據(jù)類型與變量的關(guān)系,類規(guī)定了可以用于存儲什么數(shù)據(jù),而對象用于實(shí)際存儲數(shù)據(jù),每個(gè)對象可存儲不同的數(shù)據(jù)。類中包含屬性和方法。屬性對應(yīng)一個(gè)類可以用來保存哪些數(shù)據(jù),而方法對應(yīng)一個(gè)類可以支持哪些操作(即數(shù)據(jù)處理)。私有屬性,是指在類內(nèi)可以直接訪問、而在類外無法直接訪問的屬性。構(gòu)造方法是Python類中的內(nèi)置方法之一,它的方法名為__init__,在創(chuàng)建一個(gè)類對象時(shí)會自動執(zhí)行,負(fù)責(zé)完成新創(chuàng)建對象的初始化工作。析構(gòu)方法是類的另一個(gè)內(nèi)置方法,它的方法名為__del__,在銷毀一個(gè)類對象時(shí)會自動執(zhí)行,負(fù)責(zé)完成待銷毀對象的資源清理工作,如關(guān)閉文件等。__str__方法的返回值必須是字符串。二、選擇題關(guān)于類和對象說法正確的是(A)根據(jù)一個(gè)類可以創(chuàng)建多個(gè)對象,而每個(gè)對象只能是某一個(gè)類的對象根據(jù)一個(gè)類只能創(chuàng)建一個(gè)對象,而每個(gè)對象只能是某一個(gè)類的對象根據(jù)一個(gè)類可以創(chuàng)建多個(gè)對象,而每個(gè)對象可以屬于多個(gè)類根據(jù)一個(gè)類只能創(chuàng)建一個(gè)對象,而每個(gè)對象可以屬于多個(gè)類下列關(guān)于構(gòu)造方法的說法錯(cuò)誤的是(C)A. 構(gòu)造方法是Python類中的普通方法之一,在創(chuàng)建一個(gè)類對象時(shí)會自動執(zhí)行,負(fù)責(zé)完成新創(chuàng)建對象的初始化工作B. 構(gòu)造方法中,除了self,也可以設(shè)置其他參數(shù)C. 構(gòu)造方法的參數(shù)只能是selfD. 構(gòu)造方法也可以設(shè)置默認(rèn)參數(shù)進(jìn)行self>=other運(yùn)算時(shí)自動執(zhí)行哪個(gè)內(nèi)置方法(C)A. __gt__(self,other)B. __lt__(self,other)C. __ge__(self,other)D. __le__(self,other)三、簡答題寫出下面程序的輸出結(jié)果。classStudent:name='Unknown'age=0if__name__=='__main__':print('姓名:',S)print('年齡:',Student.age)stu=Student()print('stu姓名:%s,年齡:%d'%(,stu.age))S='張三'Student.age=18print('stu姓名:%s,年齡:%d'%(,stu.age))='李四'stu.age=19print('stu姓名:%s,年齡:%d'%(,stu.age))S='張三'Student.age=18print('stu姓名:%s,年齡:%d'%(,stu.age))答:輸出結(jié)果為:姓名:Unknown年齡:0stu姓名:Unknown,年齡:0stu姓名:張三,年齡:18stu姓名:李四,年齡:19stu姓名:李四,年齡:19定義Circle類,要求:包括私有屬性__radius,構(gòu)造函數(shù)為半徑賦值,構(gòu)造函數(shù)的默認(rèn)參數(shù)值為0,析構(gòu)函數(shù)輸出適當(dāng)信息,普通方法SetRadius用于設(shè)置半徑,普通方法Area返回圓面積,內(nèi)置方法__str__用于輸出圓面積,內(nèi)置方法__gt__用于比較兩個(gè)圓面積大小。并創(chuàng)建兩個(gè)實(shí)例分別驗(yàn)證上述功能。參考程序如下:PI=3.14classCircle:__radius=0def__init__(self,r=0):self.__radius=rdefSetRadius(self,r):self.__radius=r;def__str__(self):return'面積:'+str(self.__radius*PI*PI)def__del__(self):print('半徑為',self.__radius,"的圓被銷毀")defArea(self):returnself.__radius*self.__radius*PIdef__gt__(self,other):returnself.Area()>other.Area()if__name__=='__main__':c1=Circle()c2=Circle(10)c1.SetRadius(5)print(c1)print(c2)if(c1>c2):print("1>2")else:print("1<=2")delc1delc2繼承與多態(tài)測試習(xí)題答案

測試習(xí)題答案一、填空題通過繼承,可以基于已有類創(chuàng)建新的類,新類除了繼承已有類的所有屬性和方法,還可以根據(jù)需要增加新的屬性和方法。通過多態(tài),可以使得在執(zhí)行同一條語句時(shí),能夠根據(jù)實(shí)際使用的對象類型決定調(diào)用哪個(gè)方法。如果一個(gè)類C1通過繼承已有類C而創(chuàng)建,則將C1稱作子類,將C稱做基類、父類或超類。如果一個(gè)子類只有一個(gè)父類,則將這種繼承關(guān)系稱為單繼承;如果一個(gè)子類有兩個(gè)或更多父類,則將這種繼承關(guān)系稱為多重繼承。方法重寫是指子類可以對從父類中繼承過來的方法進(jìn)行重新定義,從而使得子類對象可以表現(xiàn)出與父類對象不同的行為。內(nèi)置函數(shù)isinstance用于判斷一個(gè)對象所屬的類是否是指定類或指定類的子類。內(nèi)置函數(shù)issubclass用于判斷一個(gè)類是否是另一個(gè)類的子類。內(nèi)置函數(shù)type用于獲取一個(gè)對象所屬的類。二、選擇題關(guān)于super方法的說法錯(cuò)誤的是(D)super方法用于獲取父類的代理對象,以執(zhí)行已在子類中被重寫的父類方法super方法有兩個(gè)參數(shù):第一個(gè)參數(shù)是要獲取父類代理對象的類名。在一個(gè)類A的定義中調(diào)用super方法時(shí),可以將兩個(gè)參數(shù)都省略,此時(shí),super()等價(jià)于super(A,self)第二個(gè)參數(shù)必須傳入對象名,該對象所屬的類必須是第一個(gè)參數(shù)指定的類或該類的子類,找到的父類對象的self會綁定到這個(gè)對象上下圖類的繼承關(guān)系中,說法錯(cuò)誤的是(B)A. Student類和Teacher類都是Person類的子類B. Person類是其他3個(gè)類的父類C. Student類是Person類的子類,又是TA類的父類D. TA類有兩個(gè)父類,這種關(guān)系稱為多重繼承三、簡答題寫出下面程序的輸出結(jié)果。classPerson:def__init__(self,name):=namedefDisplay(self):print()classStudent(Person):def__init__(self,sno,name):super().__init__(name)self.sno=snodefDisplay(self):super(Student,self).Display()print(self.sno)if__name__=='__main__':per=Person("張三")per.Display()stu=Student(78,"李四")stu.Display()答:輸出結(jié)果為:張三李四78寫出下面程序的輸出結(jié)果。classPerson:passclassStudent(Person):passif__name__=='__main__':per=Person()stu=Student()print("stu所屬類是Person類的子類",isinstance(stu,Person))print("Student類是Person類的子類",issubclass(Student,Person))print("per所屬類是Studnet類的子類",isinstance(per,Student))print("Person類是Student類的子類",issubclass(Person,Student))print('stu對象所屬的類:',type(stu))print('per對象所屬的類:',type(per))答:輸出結(jié)果為:stu所屬類是Person類的子類TrueStudent類是Person類的子類Trueper所屬類是Studnet類的子類FalsePerson類是Student類的子類Falsestu對象所屬的類:<class'__main__.Student'>per對象所屬的類:<class'__main__.Person'>類與對象高級應(yīng)用測試習(xí)題答案

測試習(xí)題答案一、填空題Python提供了__slots__變量以限制可動態(tài)擴(kuò)展的屬性。Python提供了@property裝飾器,可以將類中屬性的訪問和賦值操作自動轉(zhuǎn)為方法調(diào)用,這樣可以在方法中對屬性值的取值范圍做一些條件限定。直接使用@property可以定義一個(gè)用于獲取屬性值的方法(即getter)。如果需要對屬性score定義一個(gè)設(shè)置屬性值的方法(setter),需要用到的裝飾器為@score.setter。元類可以看成是創(chuàng)建類時(shí)所使用的模板,也可以理解為是用于創(chuàng)建類的類。單例模式是指在程序運(yùn)行時(shí)確保某個(gè)類最多只有一個(gè)實(shí)例對象。在執(zhí)行__init__前,還會執(zhí)行類的一個(gè)內(nèi)置的類方法__new__,其作用是創(chuàng)建對象并返回。二、選擇題關(guān)于類方法的說法錯(cuò)誤的是(D)類方法是指使用@classmethod修飾的方法類方法的第一個(gè)參數(shù)是類本身(而不是類的實(shí)例對象)類方法既可以通過類名直接調(diào)用,也可以通過類的實(shí)例對象調(diào)用。類方法只能通過類名直接調(diào)用關(guān)于靜態(tài)方法的說法錯(cuò)誤的是(B)靜態(tài)方法是指使用@staticmethod修飾的方法靜態(tài)方法的第一個(gè)參數(shù)是類本身(而不是類的實(shí)例對象)靜態(tài)方法既可以通過類名直接調(diào)用,也可以通過類的實(shí)例對象調(diào)用。靜態(tài)方法中沒有類方法中的第一個(gè)類參數(shù)已知Complex類的類方法add(cls,c1,c2)實(shí)現(xiàn)兩個(gè)復(fù)數(shù)的相加運(yùn)算,程序可以使用不同的方式調(diào)用該方法,下面錯(cuò)誤的調(diào)用方式是(C)A. c3=Complex.add(c1,c2)B. c3=c1.add(c1,c2)C. c3.add(Complex,c1,c2)D. c3=Complex().add(c1,c2)關(guān)于動態(tài)擴(kuò)展類的說法正確的是(A)A. Python除了可以在定義類時(shí)定義屬性和方法外,還可以動態(tài)地為已經(jīng)創(chuàng)建的對象綁定新的屬性和方法B. Python只能在定義類時(shí)定義屬性和方法,不能動態(tài)擴(kuò)展C. Python只能動態(tài)擴(kuò)展屬性,不能動態(tài)擴(kuò)展方法D. Python只能動態(tài)擴(kuò)展方法,不能動態(tài)擴(kuò)展屬性三、簡答題下面程序?qū)A柱體類Cylinder實(shí)現(xiàn)動態(tài)綁定方法,請將程序填寫完整。fromtypesimportMethodType#從types模塊導(dǎo)入MethodType方法classCylinder:passdefSetRadius(self,r):self.Radius=rdefSetHeight(self,h):self.Height=hif__name__=='__main__':c1=Cylinder()c2=Cylinder()#為c1對象綁定SetRadius方法c1.SetRadius=MethodType(SetRadius,c1)#為Cylinder類綁定SetHeight方法Cylinder.SetHeight=SetHeightc1.SetRadius(10)c2.SetRadius(20)#c2對象未綁定SetRadius方法,此語句有誤c1.SetHeight(30)c2.SetHeight(40)寫出下面程序的運(yùn)行結(jié)果。classCylinder:Radius=5Height=10defDisplay(self):print("圓柱體半徑為",self.Radius)classCircle:Radius=50defDisplay(self):print("圓半徑為",self.Radius)if__name__=='__main__':c1=Cylinder()c2=Circle()c1.Display()c2.Display()答:運(yùn)行結(jié)果為:圓柱體半徑為5圓半徑為50Python爬蟲基礎(chǔ)測試習(xí)題答案

測試習(xí)題答案一、填空題Python中正則表達(dá)式中的普通字符需要做精確匹配,而特殊字符指定的匹配模式則對應(yīng)了用于模糊匹配的規(guī)則。Python中正則表達(dá)式的特殊序列是由\和一個(gè)字符構(gòu)成。使用Python提供的re模塊,可以實(shí)現(xiàn)基于正則表達(dá)式的模糊匹配。compile函數(shù)用于將一個(gè)字符串形式的正則表達(dá)式編譯成一個(gè)正則表達(dá)式對象,供match、search以及其他一些函數(shù)使用。re模塊中的match函數(shù)用于對字符串開頭的若干字符進(jìn)行正則表達(dá)式的匹配。匹配成功,返回一個(gè)Match對象;匹配失敗,返回None。re模塊中的finditer函數(shù)與re.findall函數(shù)功能都是用于在字符串中找到所有與正則表達(dá)式匹配的子串,區(qū)別在于re.findall函數(shù)返回列表形式的結(jié)果,而re.finditer返回迭代器形式的結(jié)果。re模塊中的split函數(shù)用于將字符串按與正則表達(dá)式匹配的子串分割。二、選擇題下列匹配模式敘述錯(cuò)誤的是(D)^用于匹配字符串開頭的若干字符*用于匹配前一個(gè)模式0次或多次?用于匹配前一個(gè)模式0次或1次A|B表示同時(shí)匹配模式A和模式B關(guān)于正則表達(dá)式特殊序列敘述錯(cuò)誤的是(C)A. \A匹配字符串開頭的若干字符,功能同^B. \d匹配任一數(shù)字字符,等價(jià)于[0-9]C. \S匹配任一空白字符D. \D與\d作用相反,匹配任一非數(shù)字字符,等價(jià)于[^0-9]三、簡答題Python中提供了哪幾種常見的網(wǎng)絡(luò)請求方式?答:Python中提供了以下3種常見的實(shí)現(xiàn)HTTP網(wǎng)絡(luò)請求的方式。使用Python自帶的urllib模塊實(shí)現(xiàn)。使用Python自帶的urllib3模塊實(shí)現(xiàn)。使用第三方模塊requests模塊實(shí)現(xiàn)。寫出下面程序的運(yùn)行結(jié)果。importrestr='''sno:#1810101#,name:#李曉明#,age:#19#,major:#計(jì)算機(jī)#sno:#1810102#,name:#馬紅#,age:#20#,major:#數(shù)學(xué)#'''rlt=re.search(r'sno:#([\s\S]*?)#[\s\S]*?major:#([\s\S]*?)#',str,re.I)ifrlt:#判斷是否有匹配結(jié)果print('匹配到的整個(gè)字符串:',rlt.group())print('sno:%s,startpos:%d,endpos:%d'%(rlt.group(1),rlt.start(1),rlt.end(1)))print('major:%s,startpos:%d,endpos:%d'%(rlt.group(2),rlt.start(2),rlt.end(2)))print('所有分組匹配結(jié)果:',rlt.groups())else:print('未找到匹配信息')答:運(yùn)行結(jié)果為:匹配到的整個(gè)字符串:sno:#1810101#,name:#李曉明#,age:#19#,major:#計(jì)算機(jī)#sno:1810101,startpos:5,endpos:12major:計(jì)算機(jī),startpos:41,endpos:44所有分組匹配結(jié)果:('1810101','計(jì)算機(jī)')寫出下面程序的運(yùn)行結(jié)果。importrehtml='''%abc%%def%python(ghi)'''content=re.sub(r'%[\s\S]*%','&',html)content=content.strip()print('替換之后的內(nèi)容為:',content)content2=re.subn(r'%[\s\S]*%','&',html)print('替換之后的內(nèi)容及替換次數(shù)為:',content2)答:運(yùn)行結(jié)果為:替換之后的內(nèi)容為:&python(ghi)替換之后的內(nèi)容及替換次數(shù)為:('&python(ghi)',1)字符串與格式化方法測試習(xí)題答案

測試習(xí)題答案一、填空題Python中,創(chuàng)建字符串時(shí),可以使用單引號、雙引號和三引號。Python中,使用字符串的split方法可以按照指定的分隔符對字符串進(jìn)行切割,返回由切割結(jié)果組成的列表??梢岳眠\(yùn)算符+連接兩個(gè)字符串,也可以使用join方法將序列中的元素以指定的字符連接成一個(gè)新的字符串。二、選擇題已知s1=”I“amastudent.”,s2=’I\’amastudent’,則print(s1,s2)的輸出結(jié)果為(D)I'amastudent.I'amastudentI“amastudent.I'amastudentI“amastudent.I\'amastudent程序報(bào)錯(cuò)下列說法錯(cuò)誤的是(D)A. find方法是在指定檢索范圍中按照從左至右的順序檢索,找到子串第一次出現(xiàn)的位置B. rfind方法在指定檢索范圍中按照從右至左的順序檢索,找到子串第一次出現(xiàn)的位置C. index與find作用相同,rindex與rfind作用相同,只是find和rfind在檢索不到字符串時(shí)返回-1,而index和rindex會引發(fā)ValueError異常D. index與find作用相同,rindex與rfind作用相同,只是find和rfind找到一個(gè)就返回,而index和rindex會檢索到所有的子串下列關(guān)于replace方法str.replace(old,new[,max])的說法錯(cuò)誤的是(C)A. 使用字符串中的replace方法可以將字符串中的指定子串替換成其他內(nèi)容B.str是要做替換操作的字符串,old和new分別是要替換的子串和替換成的字符串C. max是最多替換的子串?dāng)?shù)量,如果不指定max參數(shù)則只替換第一個(gè)滿足條件的子串D. replace方法返回替換后的字符串print(len("中國\"china"))的輸出結(jié)果是(B)A. 7B. 8C. 9D. 10三、簡答題寫出下面程序的運(yùn)行結(jié)果。print("ad">"abcd")print("AD">"abcd")print("AD">"ADC")print("tianjin">"beijing")print("天津">"北京")答:運(yùn)行結(jié)果為:TrueFalseFalseTrueTrue寫出下面程序的運(yùn)行結(jié)果。s1="Iamastudent."s2="C++90分Python88分Java85分"s3="Iamastudent.\nIlikeprogramming.\n"print(s1.split())print(s2.split("分"))print(s2.split("分",2))print(s3.splitlines())答:運(yùn)行結(jié)果為:['I','am','a','student.']['C++90','Python88','Java85','']['C++90','Python88','Java85分']['Iamastudent.','Ilikeprogramming.']寫出下面程序的運(yùn)行結(jié)果。str="abc"print("123"+str.strip()+"456")print("123"+str.lstrip()+"456")print("123"+str.rstrip()+"456")答:運(yùn)行結(jié)果為:123abc456123abc456123abc456下面程序從鍵盤輸入一個(gè)字符串,然后將其中的大寫字母轉(zhuǎn)換為小寫字母,小寫字母轉(zhuǎn)換為大寫字母,其他字符不變,請將程序填寫完整。str=input("請輸入一個(gè)字符串")ns=''forcinstr:ifc>='A'andc<='Z':ns+=c.lower()elifc>='a'andc<='z':或'a'<=c<='z':ns+=c.upper()else:

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論