Python語言程序設計(劉衛國第2版)(含視頻教學)-課后習題及答案匯 習題1-13_第1頁
Python語言程序設計(劉衛國第2版)(含視頻教學)-課后習題及答案匯 習題1-13_第2頁
Python語言程序設計(劉衛國第2版)(含視頻教學)-課后習題及答案匯 習題1-13_第3頁
Python語言程序設計(劉衛國第2版)(含視頻教學)-課后習題及答案匯 習題1-13_第4頁
Python語言程序設計(劉衛國第2版)(含視頻教學)-課后習題及答案匯 習題1-13_第5頁
已閱讀5頁,還剩64頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

PAGE3PAGE2習題1一、選擇題1.Python語言屬于()。CA.機器語言B.匯編語言C.高級語言D.科學計算語言2.下列選項中,不屬于Python特點的是()。BA.面向對象B.運行效率高C.可讀性好D.開源3.Python程序文件的擴展名是()。DA..pythonB..pytC..ptD..py4.以下敘述中正確的是()。CA.Python3.x與Python2.x兼容B.Python語句只能以程序方式執行C.Python是解釋型語言D.Python語言出現得晚,具有其他高級語言的一切優點5.下列選項中合法的標識符是()。AA._7a_bB.breakC._a$bD.7ab6.下列標識符中合法的是()。BA.i'mB._C.3QD.for7.Python不支持的數據類型有()。AA.char B.int C.float D.list8.關于Python中的復數,下列說法錯誤的是()。BCA.表示復數的語法形式是a+bjB.實部和虛部都必須是浮點數C.虛部必須加后綴j,且必須是小寫D.函數abs()可以求復數的模9.函數type(1+0xf*3.14)的返回結果是()。DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>10.字符串s='a\nb\tc',則len(s)的值是()。CA.7B.6C.5D.411.Python語句print(0xA+0xB)的輸出結果是()。DA.0xA+0xBB.A+BC.0xA0xBD.2112.下列屬于math庫中的數學函數的是()。CA.time() B.round()C.sqrt()D.random()13.Python表達式中,可以使用()控制運算的優先順序。AA.圓括號()B.方括號[]C.大括號{}D.尖括號<>14.下列表達式中,值不是1的是()。DA.4//3B.15%2C.1^0D.~115.Python語句print(r"\nGood")的運行結果是()。CA.新行和字符串GoodB.r"\nGood"C.\nGoodD.字符r、新行和字符串Good16.語句eval('2+4/5')執行后的輸出結果是()。AA.2.8 B.2C.2+4/5 D.'2+4/5'17.整型變量x中存放了一個兩位數,要將這個兩位數的個位數字和十位數字交換位置,例如,13變成31,正確的Python表達式是()。AA.(x%10)*10+x//10B.(x%10)//10+x//10C.(x/10)%10+x//10D.(x%10)*10+x%1018.與數學表達式對應的Python表達式中,不正確的是()。CA.c*d/(2*a*b)B.c/2*d/a/bC.c*d/2*a*bD.c*d/2/a/b二、填空題1.Python語句既可以采用交互式的執行方式,又可以采用執行方式。命令,程序2.在Python集成開發環境中,可使用快捷鍵運行程序。F53.使用math模塊庫中的函數時,必須要使用語句導入該模塊。importmath4.Python表達式1/2的值為,1//3+1//3+1//3的值為,5%3的值為。0.5,0,25.Python表達式0x66&0o66的值為。386.設m,n為整型,則與m%n等價的表達式為。m-m//n*n7.計算231-1的Python表達式是。2**31-1或(1<<31)-18.數學表達式的Python表達式為。math.exp(abs(x-y))/(pow(3,x)+math.sqrt(6)*math.sin(y))三、問答題1.Python語言有何特點?語法結構簡潔;程序可讀性好;具有豐富的數據類型;開源的語言;解釋性執行方式;面向對象語言。2.簡述Python的主要應用領域及常用的函數模塊。(1)系統維護與管理。通過使用pywin32模塊提供的WindowsAPI函數接口可以編寫與Windows系統底層功能相關的Python程序;利用py2exe模塊可以將Python程序轉換為.exe可執行程序,使得Python程序可以脫離Python系統環境來運行。(2)科學計算與數據可視化。Python中用于科學計算與數據可視化的模塊有很多。例如,支持多維數組運算與矩陣運算的NumPy、支持高級科學計算功能的SciPy、支持二維、三維繪圖功能的Matplotlib等。(3)數據庫應用。Python數據庫模塊有很多,例如,可以通過內置的sqlite3模塊訪問SQLite數據庫,使用pywin32模塊訪問Access數據庫,使用pymysql模塊訪問MySQL數據庫,使用pywin32和pymssql模塊來訪問SQLSever數據庫。(4)多媒體應用。PyMedia模塊可以對WAV、MP3、AVI等多媒體格式文件進行編碼、解碼和播放;PyOpenGL模塊封裝了OpenGL應用程序編程接口,通過該模塊可在Python程序中集成二維或三維圖形;PIL(PythonImagingLibrary,Python圖形庫)為Python提供了強大的圖像處理功能,并提供廣泛的圖像文件格式支持。(5)網絡應用。Python語言提供了socket模塊,對Socket接口進行了二次封裝,支持Socket接口的訪問;Python語言還提供了urllib、requests、BeautifulSoap4、Scrapy等大量模塊和框架,用于對網頁內容進行讀取和處理,并結合多線程編程以及其他有關模塊可以快速開發網頁爬蟲之類的應用程序;Python語言還支持Web網站開發,比較流行的開發框架有web2py、Django、Flask等。(6)電子游戲應用。Pygame就是用來開發電子游戲軟件的Python模塊,它在SDL多媒體開發庫的基礎上開發,能在Python程序中創建功能豐富的游戲和多媒體程序。(7)數據科學和人工智能應用。Python是數據科學和人工智能領域的主流編程語言,在數據處理、文本分析、機器學習、深度學習等領域得到廣泛應用。Pandas是基于NumPy的數據處理和分析工具,NLTK用于自然語言處理,jieba用于中文分詞,Wordcloud可以生成詞云圖;Scikit-learn是常用的機器學習模塊,提供了各種分類、回歸、聚類等算法;TensorFlow、PyTorch則是常見的深度學習框架,提供了構建神經網絡的功能。Keras是一個用Python編寫的開源人工神經網絡庫。3.Python語言有哪些數據類型?Python數據類型包括數值型、字符串型、布爾型等基本數據類型,這是一般程序設計語言都有的數據類型。此外,Python還有列表、元組、字典和集合等復合數據類型,這是Python中具有特色的數據類型。4.寫出下列數學式對應的Python表達式。(1) (2)(1)(math.sin(a)+math.sin(b))/(a+b)(2)(a**3+b**3+c**3)**(1/3)/35.按要求寫出Python表達式。(1)將整數k轉換成實數。(2)求實數x的小數部分。(3)求正整數m的百位數字。(4)隨機產生一個8位數,每位數字可以是1到6中的任意一個整數。(1)float(k)(2)x-int(x)(3)m//100%10(4)int(random.randint(1,6)*1e7+random.randint(1,6)*1e6+random.randint(1,6)*1e5+random.randint(1,6)*1e4+random.randint(1,6)*1e3+random.randint(1,6)*100+random.randint(1,6)*10+random.randint(1,6))或:int(str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6)))6.下列語句的執行結果是False,分析其原因。>>>frommathimportsqrt>>>print(sqrt(3)*sqrt(3)==3)False主要是由于數值計算算法的計算誤差造成的。習題2一、選擇題1.流程圖中表示判斷框的是()。BA.矩形框B.菱形框C.平行四邊形框D.橢圓形框2.下面不屬于程序的基本控制結構的是()。DA.順序結構B.選擇結構C.循環結構D.輸入輸出結構3.以下關于Python語句的敘述中,正確的是()。AA.同一層次的Python語句必須對齊B.Python語句可以從一行的任意一列開始C.在執行Python語句時,可發現注釋中的拼寫錯誤D.Python程序的每行只能寫一條語句4.下列語句中,在Python中非法的是()。CA.x=y=z=1 B.x,y=y,xC.x=(y=z+1) D.x+=y5.已知x=2,語句x*=x+1執行后,x的值是()。DA.2 B.3C.5 D.66.在Python中,正確的賦值語句為()。CA.x+y=10B.x=2yC.x=y=30D.3y=x+17.為了給整型變量x,y,z賦初值10,下面正確的Python賦值語句是()。CA.xyz=10B.x=10y=10z=10C.x=y=z=10D.x=10,y=10,z=108.語句x=input()執行時,如果從鍵盤輸入12并按回車鍵,則x的值是()。DA.12 B.12.0C.1e2 D.'12'9.語句x,y=eval(input())執行時,輸入數據格式錯誤的是()。AA.34B.(3,4)C.3,4D.[3,4]10.語句print('x=${:7.2f}'.format(123.5678))執行后的輸出結果是()。選項中的□代表空格。CA.x=□123.56 B.$□123.57C.x=$□123.57 D.x=$□123.5611.print(f'{101/7:7.2f}{101%8:2d}')的運行結果是()的運行結果是()。BA.{:7.2f}{:2d}B.□□14.43□5(□代表空格)C.□14.43□□5(□代表空格)D.□□101/7□101%8(□代表空格)12.下列程序的運行結果是()。Dx=y=10x,y,z=6,x+1,x+2print(x,y,z)A.10106B.61010C.678D.61112二、填空題1.流程圖是描述的常用工具。算法2.在Python語句行中使用多條語句,語句之間使用分隔;如果語句太長,可以使用作為續行符。分號,反斜杠3.Python語言通過來區分不同的語句塊。縮進對齊4.在Python中,賦值的含義是使變量一個數據對象,該變量是該數據對象的。指向,別名5.和x/=x*y+z等價的語句是。x=x/(x*y+z)6.語句print('AAA',"BBB",sep='-',end='!')執行的結果是。AAA-BBB!7.下列Python語句的輸出結果是。print("數量{0},單價{1}".format(100,285.6))print(f"數量{100},單價{285.6:3.2f}")print("數量{100:<4d},單價{285.6:3.3f}")數量100,單價285.6數量100,單價285.60數量{100:<4d},單價{285.6:3.3f}8.下列Python語句的輸出結果是。print("121",f">{20:>5d}",sep='*')print("12321\ta={a:},b={b:}".format(b=20,a=30))121*>2012321 a=30,b=20三、問答題1.簡述程序設計的基本步驟。程序設計(programming)要經過以下四個基本步驟:分析問題,確定數學模型或方法;設計算法,畫出流程圖;選擇編程工具,按算法編寫程序;調試程序,分析輸出結果。2.簡述Python程序中語句的縮進規則。Python通過語句縮進對齊反映語句之間的邏輯關系,從而區分不同的語句塊。縮進可以由任意的空格或制表符組成,縮進的寬度不受限制,一般為四個空格或一個制表符,但在同一程序中不建議混合使用空格和制表符。就一個語句塊來講,需要保持一致的縮進量。這是Python語言區別于其他語言的重要特點。3.為什么要在程序中加注釋?怎樣在程序中加注釋?加入注釋對程序的執行有沒有影響?注釋對程序的執行沒有任何影響,目的是對程序作補充解釋,以增強程序的可讀性。此外,在程序調試階段,有時需要某些語句暫時不執行,這時可以給這些語句加注釋符號,相當于對這些語句作邏輯刪除,需要執行時,再去掉注釋符號即可。程序中的單行注釋采用#開頭,注釋可以從任意位置開始,可以在語句行末尾,也可以獨立成行。Python沒有塊注釋,所以現在推薦的多行注釋也是采用#。4.用Python語句完成下列操作:(1)將變量i的值增加1。(2)i的立方加上j,并將其結果保存到i中。(3)將232-1的值存放到g中。(4)將兩位自然數的個位與十位互換,得到一個新的數(不考慮個位為0的情況)。(1)i=i+1或i+=1(2)i=i**3+j(3)g=2**32-1或g=(1<<32)-1(4)m%10*10+m//105.設a=10,分別獨立執行下列語句后a的值是多少?208503.021(1)a+=a(2)a*=2(3)a<<2(4)a,a=5,2*a(5)a*=1<<1(6)x=a;a+=x6.Python基本輸入輸出通過哪些語句來實現?基本輸入輸出是指通過鍵盤和屏幕的輸入輸出。Python用內置函數input()實現標準輸入,Python兩種標準輸出值的方式是使用表達式語句和使用print()函數。7.格式化輸出中有哪些常用的格式說明符?其含義是什么?常用格式控制符格式說明符格式化結果%%百分號%c字符%s字符串%d帶符號整數(十進制)%o帶符號整數(八進制)%x或%X帶符號整數(十六進制,用小寫字母或大寫字母)%e或%E浮點數字(科學計數法,用小寫e或大寫E)%f或%F浮點數字(用小數點符號)%g或%G浮點數字(根據值的大小,采用%e、%f或%E、%F)8.從功能上講,一個程序通常包括那些組成部分?程序功能一般包括3個部分:輸入原始數據;對原始數據進行處理;輸出處理結果。習題3一、選擇題1.以下不合法的表達式是()。DA.xin[1,2,3,4,5]B.x-6>5C.e>5and4==fD.3=a2.將數學式2<x≤10表示成正確的Python表達式為()。BA.2<x≤10B.2<xandx<=10C.2<x&&x<=10D.x>2orx<=103.與關系表達式x==0等價的表達式是()。BA.x=0 B.notxC.xD.x!=14.下列表達式的值為True的是()。AA.2!=5or0 B.3>2>2C.5+4j>2-3jD.1and5==05.下面if語句統計“成績(mark)優秀的男生以及不及格的男生”的人數,正確的語句為()。CA.ifgender=="男"andmark<60ormark>=90:n+=1B.ifgender=="男"andmark<60andmark>=90:n+=1C.ifgender=="男"and(mark<60ormark>=90):n+=1D.ifgender=="男"ormark<60ormark>=90:n+=16.以下if語句語法錯誤的是()。DA.ifa>0:x=20else:x=200B.ifa>0:x=20else:x=200C.ifa>0:x=20else:x=200D.ifa>0x=20elsex=2007.在Python中,實現多分支選擇結構的較好方法是()。CA.if B.if-elseC.if-elif-elseD.if嵌套8.下列語句執行后的輸出是()。Cif2:print(5)else:print(6)A.0 B.2C.5D.69.下面程序段求x和y中的較大數,不正確的是()。DA.maxNum=xifx>yelseyB.ifx>y:maxNum=xelse:maxNum=yC.maxNum=yifx>y:maxNum=xD.ify>=x:maxNum=ymaxNum=x10.下列Python程序的運行結果是()。Bx=0y=Trueprint(x>yand'A'<'B')A.TrueB.FalseC.trueD.false二、填空題1.表達式2<=1and0ornot0的值是。True2.已知ans='n',則表達式ans=='y'or'Y'的值為。'Y'3.Python提供了兩個對象身份比較運算符和來測試兩個變量是否指向同一個對象。is,isnot4.在直角坐標中,x、y是坐標系中任意點的位置,用x和y表示第一象限或第二象限的Python表達式為。x>0andy>0orx<0andy>05.已知a=3,b=5,c=6,d=True,則表達式notdora>=0anda+c>b+3的值是。True6.Python表達式16-2*5>7*8/2or"XYZ"!="xyz"andnot(10-6>18/2)的值為。True7.下列Python語句的運行結果是。Truex=Truey=Falsez=Falseprint(xoryandz)8.執行下列Python語句將產生的結果是。TrueFalsem=Truen=Falsep=Trueb1=m|n^p;b2=n|m^pprint(b1,b2)9.對于if語句中的語句塊,應將它們。縮進對齊10.當x=0,y=50時,語句z=xifxelsey執行后,z的值是。50三、問答題1.寫出條件“20<x<30或x<-100”的Python表達式。20<x<30orx<-100或x>20andx<30orx<-1002.Python實現選擇結構的語句有哪些?各種語句的格式是十么?Python用if語句實現選擇結構,可分為單分支、雙分支和多分支選擇結構。單分支if選擇結構的一般格式為:if條件表達式:語句塊雙分支if選擇結構的一般格式為:if條件表達式:語句塊1else:語句塊2多分支if選擇結構的一般格式為:if條件表達式1:語句塊1elif條件表達式2:語句塊2elif條件表達式3:語句塊3…elif條件表達式m:語句塊m[else:語句塊n]3.下列兩個語句各自執行后,x和y的值是多少?它們的作用是什么?x=y=5x=y==54.下列Python語句的運行結果為。nox=Falsey=Truez=Falseifxoryandz:print("yes")else:print("no")5.下列Python語句的運行結果為。2x=Truey=Falsez=Trueifnotxory:print(1)elifnotxornotyandz:print(2)elifnotxoryornotyandx:print(3)else:print(4)6.說明以下三個if語句的區別。語句一:ifi>0:ifj>0:n=1else:n=2語句二:ifi>0:ifj>0:n=1else:n=2語句三:ifi>0:n=1else:ifj>0:n=2語句一相當于:語句二相當于:語句三相當于:習題4一、選擇題1.關于while循環和for循環的區別,下列敘述中正確的是()。CA.while語句的循環體至少無條件執行一次,for語句的循環體有可能一次都不執行B.while語句只能用于循環次數未知的循環,for語句只能用于循環次數已知的循環C.在很多情況下,while語句和for語句可以等價使用D.while語句只能用于可迭代變量,for語句可以用任意表達式表示條件2.設有程序段:k=10whilek:k=k-1print(k)則下面描述中正確的是()。AA.while循環執行10次 B.循環是無限循環C.循環體語句一次也不執行 D.循環體語句執行一次3.以下while語句中的表達式“notE”等價于()。AwhilenotE:passA.E==0B.E!=1C.E!=0 D.E==14.有以下程序段:n=0p=0whilep!=100andn<3:p=int(input())n+=1while循環結束的條件是()。DA.p的值不等于100并且n的值小于3B.p的值等于100并且n的值大于等于3C.p的值不等于100或者n的值小于3D.p的值等于100或者n的值大于等于35.以下for語句中,不能完成1~10的累加功能的是()。AA.Sum=0B.Sum=0foriinrange(10,0):foriinrange(1,11):Sum+=i Sum+=iC.Sum=0D.Sum=0foriinrange(10,0,-1):foriin(10,9,8,7,6,5,4,3,2,1):Sum+=i Sum+=i6.對下列語句不符合語法要求的表達式是()。Dforvarin:print(var)A.range(0,10)B."Hello"C.(1,2,3)D.{1,2,3,4,5}7.下面Python循環體執行的次數與其他不同的是()。AA.i=0B.i=10whilei<=10:whilei>0:print(i)print(i)i+=1i-=1C.foriinrange(10):D.foriinrange(10,0,-1):print(i)print(i)8.下列for循環執行后,輸出結果的最后一行是()。Cforiinrange(1,3):forjinrange(2,5):print(i*j)A.2 B.6C.8 D.159.關于下列for循環,敘述正確的是()。Dfortinrange(1,11):x=int(input())ifx<0:continueprint(x)A.當x<0時整個循環結束 B.x>=0時什么也不輸出C.print()函數永遠也不執行 D.最多允許輸出10個非負整數10.下列說法中正確的是()。DA.break用在for語句中,而continue用在while語句中B.break用在while語句中,而continue用在for語句中C.continue能結束循環,而break只能結束本次循環D.break能結束循環,而continue只能結束本次循環二、填空題1.當循環結構的循環體由多個語句構成時,必須用的方式組成一個語句塊。縮進對齊2.執行下列程序后的輸出結果是,其中while循環執行了次。1,1i=-1whilei<0:i*=iprint(i)3.以下while循環的循環次數是()。無限次i=0whilei<10:ifi<1:continueifi==5:breaki+=14.執行下列程序后,k的值是()。36k=1n=263whilen:k*=n%10n//=105.執行循環語句foriinrange(1,5,2):print(i),循環體執行的次數是。26.循環語句foriinrange(-3,21,4)的循環次數為。67.要使語句foriinrang(,-4,-2)循環執行15次,則循環變量i的初值應當為。25或268.執行循環語句foriinrange(1,5):pass后,變量i的值是。49.下列程序的輸出結果是()。8s=10foriinrange(1,6):whileTrue:ifi%2==1:breakelse:s-=1breakprint(s)10.下列程序的輸出結果是()。55importnumpyasnpa=np.arange(11)s=sum(a[-10:])print(s)三、問答題1.什么叫循環結構?舉例說明其應用。循環是指重復執行某些語句。例如,求多個數據之和可以分解為求兩個數據之和的重復,即重復做當前的累加和與新的累加數之和。2.下列程序的輸出結果是什么?如果將語句“print(s)”與語句“pass”縮進對齊,則輸出結果是什么?通過比較兩次輸出結果,可以得到什么結論?s=10foriinrange(1,6):passprint(s)程序的輸出結果是:10如果將語句“print(s)”與語句“pass”縮進對齊,則輸出結果是:1010101010通過比較兩次輸出結果,可以看出同時縮進對齊的語句構成一個語句塊。3.break語句和continue語句的區別是什么?break語句用在循環體內,迫使所在循環立即終止,即跳出所在循環體,繼續執行循環結構后面的語句。與break語句不同,當在循環結構中執行continue語句時,并不會退出循環結構,而是立即結束本次循環,重新開始下一輪循環,也就是說,跳過循環體中在continue語句之后的所有語句,繼續下一輪循環。對于while語句,執行continue語句后將使控制直接轉向條件判斷部分,從而決定是否繼續執行循環。對于for語句,執行continue語句后并沒有立即測試循環條件,而是先將序列的下一個元素賦給目標變量,根據賦值情況來決定是否繼續執行for循環。4.對于累加求和問題一定要設置累加變量的初值,而且初值都為0,這種說法對嗎?用具體程序說明自己的判斷。不對,累加求和時累加變量的初值一般為0,但也可以不為0,視情況而定。看下面的程序:功能一樣,但初值不同。程序1:s=0foriinrange(101):s+=iprint(s)程序2:s=1foriinrange(2,101):s+=iprint(s)5.用while語句改寫下列程序。s=0foriinrange(2,101,2):s+=iprint(s)改寫后的程序如下:s,i=0,2whilei<101:s+=ii+=2print(s)習題5一、選擇題1.下列關于字符串的描述錯誤的是()。BA.字符串s的首字符是s[0]B.在字符串中,同一個字母的大小是等價的。C.字符串中的字符都是以某種二進制編碼的方式進行存儲和處理的D.字符串也能進行關系比較操作2.執行下列語句后的顯示結果是()。Aworld="world"print("hello"+world)A.helloworldB."hello"worldC.helloworldD."hello"+world3.下列表達式中,有3個表達式的值相同,另一個不相同,與其他3個表達式不同的是()。CA."ABC"+"DEF"B.''.join(("ABC","DEF"))C."ABC"-"DEF"D.'ABCDEF'*14.設s="PythonProgramming",那么print(s[-5:])的結果是()。AA.mmingB.PythonC.mminD.Pytho5.設s="HappyNewYear",則s[3:8]的值為()。BA.'ppyNe'B.'pyNe'C.'ppyN'D.'pyNew'6.將字符串中全部字母轉換為大寫字母的字符串方法是()。DA.swapcaseB.capitalizeC.uppercaseD.upper7.下列表達式中,能用于判斷字符串s1是否屬于字符串s(即s1是否s的子串)的是()。D①s1ins;②s.find(s1)>0;③s.index(s1)>0;④s.rfind(s1);⑤s.rindex(s1)>0A.①B.①②C.①②③D.①②③④⑤8.re.findall('to','Tomlikestoplayfootballtoo.',re.I)的值是()。AA.['To','to','to']B.['to','to','to']C.['To','to']D.['to','to']9.下列程序執行后,得到的輸出結果是()。Cimportrep=pile(r'\bb\w*\b')str="Boysmaybeabletogetabetteridea."print(p.sub('**',str,1))A.**maybeabletogetabetteridea.B.Boysmaybeabletogeta**idea.C.Boysmay**abletogetabetteridea.D.Boysmay**abletogeta**idea.10.以下能獲取網頁的庫是()。CA.response B.reC.requests D.jieba二、填空題1."4"+"5"的值是。'45'2.字符串s中最后一個字符的位置是。len(s)-13.設s='abcdefg',則s[3]的值是,s[3:5]的值是,s[:5]的值是,s[3:]的值是,s[::2]的值是,s[::-1]的值是,s[-2:-5]的值是。'd','de','abcde','defg','aceg','gfedcba',''4.'PythonProgram'.count('P')的值是。25.下面語句的執行結果是。['A','A','A']s='A'print(3*s.split())6.已知s1='redhat',print(s1.upper())的結果是,s1.swapcase()的結果是,s1.title()的結果是,s1.replace('hat','cat')的結果是。REDHAT,'REDHAT','RedHat','redcat'7.設s='a,b,c',s2=('x','y','z'),s3=':',則s.split(',')的值為,s.rsplit(',',1)的值為,s.partition(',')的值為,s.rpartition(',')的值為,s3.join('abc')的值為,s3.join(s2)的值為。['a','b','c'],['a,b','c'],('a',',','b,c'),('a,b',',','c'),'a:b:c','x:y:z'8.re.sub('hard','easy','Pythonishardtolearn.')的值是。'Pythoniseasytolearn.'9.下列程序執行后,得到的輸出結果是。['An','elite','university']importrestr="Aneliteuniversitydevotedtocomputersoftware"print(re.findall(r'\b[aeiouAEIOU]\w+?\b',str))三、問答題1.什么叫字符串?有哪些常用的字符編碼方案?字符串是一個字符序列。在Python中,字符串常量是用單引號、雙引號或三引號括起來的若干個字符,字符串變量是用來存放字符串常量的變量。有許多不同的字符編碼方案,有一些是為特定的語言(如英語、中文、俄語等)設計的,有一些則可以用于多種語言。例如,Unicode編碼標準為表達全世界所有語言的任意字符而設計,它使用4字節的數字編碼來表達每個字母、符號或文字。2.數字字符和數字值(如'5'和5)有何不同?如何轉換?一個是字符,一個是數值,數據類型不同,值也不同。數值d所對應的字符是chr(ord('0')+d)設d=5,則chr(ord('0')+d)的值是'5'。3.為什么print('IlikePython'*5)可以正常執行,而print('IlikePython'+5)卻運行時出錯?Python提供乘法運算符(*)來構建一個由其自身字符串重復連接而成的字符串。“+”是數值加法運算,要求運算對象為數值。4.寫出表達式。(1)利用各種方法判斷字符變量c是否為字母(不區分大小寫字母)。c.isalpha()或c.lower()<='z'andc.lower()>='a'或c.upper()<='Z'andc.upper()>='A'或c<='Z'andc>='A'orc<='z'andc>='a'(2)利用各種方法判斷字符變量c是否為大寫字母。c.isupper()或者c<='Z'andc>='A'(3)利用各種方法判斷字符變量c是否為小寫字母。c.islower()或者c<='z'andc>='a'(4)利用各種方法判斷字符變量c是否為數字字符。c.isdigit()或c<='9'andc>='O'5.re.match("back","text.back")與re.search("back","text.back")的執行結果有何不同?match()函數從字符串的開始位置嘗試匹配正則表達式,若匹配成功,則返回match對象,否則返回None。match()函數只在字符串的開始位置嘗試匹配正則表達式,也就是只報告從位置0開始的匹配情況。如果想要搜索整個字符串來尋找匹配,應當用search()函數。re.match("back","text.back")返回None,re.search("back","text.back")返回一個match對象。6.對一個字符串進行分詞處理并制作詞云圖,請寫出相關命令。參見下面的程序:importreimportjiebaimportnumpyasnpfromPILimportImagefromwordcloudimportWordCloudtxt="中南大學坐落在中國歷史文化名城湖南省長沙市"words=jieba.lcut(txt)#分詞,返回一個列表text="".join(words)#將列表組合成字符串,""中有一個空格imObj=Image.open('background.png')#通過導入背景圖片創建Image對象background=np.array(imObj)#將背景圖片轉換為ndarray多維數組wcObj=WordCloud(mask=background,background_color="white",\collocations=False,font_path="msyh.ttc")#創建WordCloud對象wcObj.generate(text)#生成詞云圖wcObj.to_file('Wordcloud.png')#存儲詞云圖片imObj=Image.open("Wordcloud.png")#導入詞云圖imObj.show()#顯示詞云圖習題6一、選擇題1.下列Python數據中,其元素可以改變的是()。AA.列表B.元組C.字符串D.數組2.表達式“[2]in[1,2,3,4]”的值是()。DA.YesB.NoC.TrueD.False3.max((1,2,3)*2)的值是()。AA.3B.4C.5D.64.下列選項中與s[0:-1]表示的含義相同的是()。CA.s[-1]B.s[:]C.s[:len(s)-1]D.s[0:len(s)]5.對于列表L=[1,2,'Python',[1,2,3,4,5]],L[-3]的是()。BA.1B.2C.'Python'D.[1,2,3,4,5]6.L.reverse()和L[-1:-1-len(L):-1]的主要區別是()。DA.L.reverse()和L[-1:-1-len(L):-1]都將列表的所有元素反轉排列,沒有區別B.L.reverse()和L[-1:-1-len(L):-1]都不會改變列表L原來內容C.L.reverse()不會改變列表L的內容,而L[-1:-1-len(L):-1]會改變列表L原來內容D.L.reverse()會改變列表L的內容,而L[-1:-1-len(L):-1]產生一個新列表,不會改變列表L原來內容7.tuple(range(2,10,2))的返回結果是()。CA.[2,4,6,8]B.[2,4,6,8,10]C.(2,4,6,8)D.(2,4,6,8,10)8.下列程序執行后,p的值是()。Aa=[[1,2,3],[4,5,6],[7,8,9]]p=1foriinrange(len(a)):p*=a[i][i]A.45B.15C.6D.289.下列Python程序的運行結果是()。Cs=[1,2,3,4]s.append([5,6])print(len(s))A.2B.4C.5D.610.下列Python程序的運行結果是()。Bs1=[4,5,6]s2=s1s1[1]=0print(s2)A.[4,5,6]B.[4,0,6]C.[0,5,6]D.[4,5,0]二、填空題1.序列元素的編號稱為,它從開始,訪問序列元素時將它用括起來。索引,0,中括號2.對于列表x,x.append(a)等價于(用insert方法)。x.insert(len(x),a)3.設有列表L=[1,2,3,4,5,6,7,8,9],則L[2:4]的值是,L[::2]的值是,L[-1]的值是,L[-1:-1-len(L):-1]的值是。[3,4];[1,3,5,7,9];9;[9,8,7,6,5,4,3,2,1]4.Python語句print(tuple(range(2)),list(range(2)))的運行結果是。(0,1)[0,1]5.Python表達式[iforiinrange(5)ifi%2!=0]的值為,[i**2foriinrange(3)]的值為。[1,3],[0,1,4]6.Python語句first,*middles,last=range(6)執行后,middles的值為,sum(middles)/len(middles)的值為。[1,2,3,4],2.57.已知fruits=['apple','banana','pear'],print(fruits[-1][-1])的結果是,print(fruits.index('apple'))的結果是,print('Apple'infruits)的結果是。r,0,False8.下列程序的運行結果是。7s1=[1,2,3,4]s2=[5,6,7]print(len(s1+s2))9.下列語句執行后,s值為。[4,'x','y']s=[1,2,3,4,5,6]s[:1]=[]s[:2]='a's[2:]='b's[2:3]=['x','y']dels[:1]10.下列語句執行后,s值為。[5,[1,2],'a']s=['a','b']s.append([1,2])s.extend([5,6])s.insert(10,8)s.pop()s.remove('b')s[3:]=[]s.reverse()三、問答題1.什么叫序列?它有哪些類型?各有什么特點?序列的元素是按照位置編號來順序存取的。Python中的字符串、列表和元組數據類型均屬于序列類型。列表和元組則可以存儲不同類型的元素。2.設有列表a,要求從列表a中每三個元素取一個,并且將取到的元素組成新的列表b,請寫出語句。b=a[0:len(a):3]3.用列表解析式生成包含10個數字5的列表,請寫出語句。如果要生成包含10個數字5的元組,請寫出語句。[5foriinrange(10)],tuple(5foriinrange(10))4.分析下列語句的執行結果,總結語句y=x和y=x[:]的區別。>>>x=[1,2,3,4,5]>>>y=x>>>id(x),id(y)(36312688,36312688)>>>x=[1,2,3,4,5]>>>y=x[:]>>>id(x),id(y)(36313288,36312728)x[:]將產生一個新的列表,所以x和y代表不同的對象。而語句y=x則是給x的內容再取一個名字y,也就是x和y都指向相同的存儲內容,并沒有實現存儲內容的真正的復制。5.分析下列語句的執行結果,總結語句m+=[4,5]和m=m+[4,5]的區別。>>>m=[1,2]>>>n=m>>>m+=[4,5]>>>m,n([1,2,4,5],[1,2,4,5])>>>m=[1,2]>>>n=m>>>m=m+[4,5]>>>m,n([1,2,4,5],[1,2])m+=[4,5]對列表m進行擴展,等同于m.extend([4,5])。m=m+[4,5]創建一個新的對象,m指向這個新的對象。6.寫出下列程序的運行結果。n=tuple([[1]*5foriinrange(4)])foriinrange(len(n)):forjinrange(i,len(n[0])):n[i][j]=i+jprint(sum(n[i]))10151716習題7一、選擇題1.Python語句print(type({1:1,2:2,3:3,4:4}))的輸出結果是()。BA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'frozenset'>2.以下不能創建字典的語句是()。CA.dict1={} B.dict2={3:5} C.dict3=dict([2,5],[3,4])D.dict4=dict(([1,2],[3,4]))3.對于字典D={'A':10,'B':20,'C':30,'D':40},對第4個字典元素的訪問形式是()。DA.D[3]B.D[4]C.D[D]D.D['D']4.對于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是()。AA.4B.8C.10D.125.對于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是()。BA.10B.100C.40D.2006.以下不能創建集合的語句是()。CA.s1=set() B.s2=set(“abcd”)C.s3={} D.s4=frozenset((3,2,1))7.設a=set([1,2,2,3,3,3,4,4,4,4]),則a.remove(4)的值是()。AA.{1,2,3}B.{1,2,2,3,3,3,4,4,4}C.{1,2,2,3,3,3}D.[1,2,2,3,3,3,4,4,4]8.下列語句執行后的結果是()。Dfruits={'apple':3,'banana':4,'pear':5}fruits['banana']=7print(sum(fruits.values()))A.7B.19C.12D.159.下列語句執行后的結果是()。Cd1={1:'food'}d2={1:'食品',2:'飲料'}d1.update(d2)print(d1[1])A.1B.2C.食品D.飲料10.下列Python程序的運行結果是()。Bs1=set([1,2,2,3,3,3,4])s2={1,2,5,6,4}print(s1&ersection(s2))A.{1,2,4}B.set()C.[1,2,2,3,3,3,4]D.{1,2,5,6,4}二、填空題1.在Python中,字典和集合都使用作為定界符。字典的每個元素由兩部分組成,即和,其中不允許重復。大括號,關鍵字,值,關鍵字2.集合是一個無序、的數據集,它包括和兩種類型,前者可以通過大括號或函數創建,后者需要通過函數創建。不重復,可變集合,不可變集合,set(),frozenset()3.下列語句執行后,di['fruit'][1]的值是。bananadi={'fruit':['apple','banana','orange']}di['fruit'].append('watermelon')4.語句print(len({}))的執行結果是。05.設a=set([1,2,2,3,3,3,4,4,4,4]),則sum(a)的值是。106.{1,2,3,4}&{3,4,5}的值是,{1,2,3,4}|{3,4,5}的值是,{1,2,3,4}-{3,4,5}的值是。{3,4},{1,2,3,4,5},{1,2}7.設有s1={1,2,3},s2={2,3,5},則s1.update(s2)執行后,s1的值為,ersection(s2)的執行結果為,s1.difference(s2)的執行結果為。{1,2,3,5},{2,3,5},{1}8.下列程序的運行結果是。2d={1:'x',2:'y',3:'z'}deld[1]deld[2]d[1]='A'print(len(d))9.下面程序的運行結果是。6list1={}list1[1]=1list1['1']=3list1[1]+=2sum=0forkinlist1:sum+=list1[k]print(sum)10.下面程序的運行結果是。9s=set()foriinrange(1,10):s.add(i)print(len(s))三、問答題1.什么是空字典和空集合?如何創建?空字典和空集合即沒有任何元素的字典或集合;{}表示空字典,空集合用set()表示。2.設有列表a=['number','name','score'],b=['21001','denmer',90],寫一個語句將這兩個列表的內容轉換為字典,且以列表a中的元素為關鍵字,以列表b中的元素為值。dict(zip(a,b))3.字典的遍歷有哪些方法?字典的遍歷有多種方式:遍歷字典的關鍵字,遍歷字典的值,遍歷字典的元素。4.集合有哪兩種類型?分別如何創建?Python集合包含兩種類型:可變集合(set)和不可變集合(frozenset)。創建可變集合有兩種方式:一種是用一對大括號將多個用逗號分隔的數據括起來;另一種是使用set()函數,該函數可以將字符串、列表、元組等類型的數據轉換成集合類型的數據。Python提供frozenset()函數來創建不可變集合,不可變集合是不能修改的,因此能作為其他集合的元素,也能作為字典的關鍵字。例如:5.Python支持的集合運算有哪些?集合的比較運算有哪些?集合對象的方法有哪些?集合運算包括傳統的集合運算:并集,交集,差集,對稱差集。集合的比較有:判斷兩個集合是否相等、不相等、小于、小于等于、大于、大于等于。適用于可變集合和不可變集合的方法:s1.issubset(s2)、s1.issuperset(s2)、s1.isdisjoint(s2)、s1.union(s2,……,sn)、ersection(s2,……,sn)、s1.difference(s2,……,sn)、s1.symmetric_difference(s2)、s.copy();適用于可變集合的方法:s.add(x)、s.update(s1,s2,……,sn)、ersection_update(s1,s2,……,sn)、s.difference_update(s1,s2,……,sn)、s.symmetric_difference_update(s1)、s.remove(x)、s.discard(x)、s.pop()、s.clear()。6.分別寫出下列兩個程序的輸出結果,輸出結果為何不同?程序一:d1={'a':1,'b':2}d2=d1d1['a']=6sum=d1['a']+d2['a']print(sum)程序二:d1={'a':1,'b':2}d2=dict(d1)d1['a']=6sum=d1['a']+d2['a']print(sum)程序一結果為12,其中的語句d2=d1使得d1和d2指向(引用)相同的對象實例。程序二結果為7。其中的d2=dict(d1)將產生一個新的實例賦給d2。習題8一、選擇題1.下列選項中不屬于函數優點的是()。DA.減少代碼重復B.使程序模塊化C.使程序便于閱讀D.便于發揮程序員的創造力2.關于函數的說法中正確的是()。BA.函數定義時必須有形參B.函數中定義的變量只在該函數體中起作用C.函數定義時必須帶return語句D.實參與形參的個數可以不相同,類型可以任意3.以下關于函數說法正確的是()。DA.函數的實際參數和形式參數必須同名B.函數的形式參數既可以是變量也可以是常量C.函數的實際參數不可以是表達式D.函數的實際參數可以是其他函數的調用4.有return語句的函數將返回()。BA.0B.其參數值C.NoneD.其名字5.下列程序的輸出結果是()。Bdefswap(x):x[0],x[1]=x[1],x[0]a=[10,20]swap(a)print(a[0],a[1])A.1020B.2010C.[2010]D.[1020]6.有以下兩個程序。程序一:x=[1,2,3]deff(x):x=x+[4]f(x)print(x)程序二:x=[1,2,3]deff(x):x+=[4]f(x)print(x)下列說法正確的是()。AA.兩個程序均能正確運行,但結果不同B.兩個程序的運行結果相同C.程序一能正確運行,程序二不能D.程序一不能正確運行,程序二能7.已知f=lambdax,y:x+y,則f([4],[1,2,3])的值是()。CA.[1,2,3,4]B.10C.[4,1,2,3]D.{1,2,3,4}8.下列程序的運行結果是()。Df=[lambdax=1:x*2,lambdax:x**2]print(f[1](f[0](3)))A.1B.6C.9D.369.下列程序的運行結果是()。Bdeff(x=2,y=0):returnx-yy=f(y=f(),x=5)print(y)A.-3B.3C.2D.510.output.py文件和test.py文件內容如下,且output.py和test.py位于同一文件夾中,那么運行test.py的輸出結果是()。A#output.pydefshow():print(__name__)#test.pyimportoutputif__name__=='__main__':output.show()A.outputB.__name__C.testD.__main__二、填空題1.函數首部以關鍵字開始,最后以結束。def,冒號2.函數執行語句“return[1,2,3],4”后,返回值是;沒有return語句的函數將返回。([1,2,3],4),None3.使用關鍵字可以在一個函數中設置一個全局變量。global4.下列程序的輸出結果是。defrecp(n):ifn==1:return0elifn==2:return1elifn>2:returnrecp(n-1)*2+recp(n-2)print(recp(5))125.下列程序的輸出結果是。40counter=1num=0defTestVariable():globalcounterforiin(1,2,3):counter+=1num=10TestVariable()print(counter,num)6.設有f=lambdax,y:{x:y},則f(5,10)的值是。{5:10}7.Python包含了數量眾多的模塊,通過語句,可以導入模塊,并使用其定義的功能。import8.設Python中有模塊m,如果希望同時導入m中的所有成員,則可以采用的導入形式。frommimport*9.Python中每個模塊都有一個名稱,通過特殊變量可以獲取模塊的名稱。特別地,當一個模塊被用戶單獨運行時,模塊名稱為。__name__,__main__10.建立模塊a.py,模塊內容如下。defB():print('BBB')defA():print('AAA')為了調用模塊中的A()函數,應先使用語句。fromaimportA三、問答題1.什么叫遞歸函數?舉例說明。遞歸(recursion)調用是指在一個程序中存在程序自己調用自己的現象。例如,求n!的遞歸函數。根據n!的遞歸表示形式,用遞歸函數描述如下:deffac(n):ifn<=1:return1else:returnn*fac(n-1)m=fac(3)print(m)2.什么叫lambda函數?舉例說明。在Python中,可以使用lambda關鍵字來在同一行內定義函數,因為不用指定函數名,所以這個函數被稱為匿名函數,也稱為lambda函數,定義格式為:lambda[參數1[,參數2,……,參數n]]:表達式例如:>>>f=lambdax,y:x+y>>>f(5,10)3.什么叫模塊?如何導入模塊?Python模塊是比函數更高級別的程序組織單元,一個模塊可以包含若干個函數。與函數相似,模塊也分標準庫模塊和用戶自定義模塊。可以通過執行import語句來導入Python模塊,語句格式如下:import模塊名1[,模塊名2[,……,模塊名n]4.寫出下列程序的輸出結果。defff(x,y=100):return{x:y}print(ff(y=10,x=20)){20:10}5.分析下面的程序。x=10deff():#y=xx=0print(x)print(x)f()(1)函數f()中的x和程序中的x是同一個變量嗎?程序的輸出結果是什么?(2)刪除函數f()中第一個語句前面的“#”,此時運行程序會出錯,為什么?(3

溫馨提示

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

評論

0/150

提交評論