版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGE2PAGE1第1章程序設計概述練習題一、選擇題1.算法是指()。DA.數學計算公式B.程序的語句序列C.對問題的精確描述D.解決問題的精確步驟2.一個算法應該具有“確定性”等5個特性,下面對另外4個特性的描述中錯誤的是()。BA.有0個或多個輸入 B.有0個或多個輸出C.有窮性 D.有效性3.Python語言屬于()。CA.機器語言B.匯編語言C.高級語言D.科學計算語言4.下列選項中,不屬于Python特點的是()。BA.面向對象B.運行效率高C.可移植性D.免費和開源5.Python內置的集成開發工具是()。DA.PythonWinB.PydevC.IDED.IDLE6.以下敘述中正確的是()。CA.Python3.x與Python2.x兼容B.Python語句只能以程序方式執行C.Python是解釋性語言D.Python語言出現得晚,具有其他高級語言的一切優點7.使用print函數輸出“HelloWorld”,要求將這兩個單詞分兩行輸出,以下不正確的是()。CA.>>>print("Hello\nWorld")B.>>>print('''HelloWorld''')C.>>>print('Hello\World')D.>>>print("""HelloWorld""")8.以下敘述正確的是()。AA.同一層次的語句必須對齊B.Python語句可以從一行的任意一列開始C.在執行一個Python程序的過程中,可發現注釋中的拼寫錯誤D.Python程序的每行只能寫一條語句9.以下Python注釋代碼,不正確的是()。DA.#Python注釋代碼B.#Python注釋代碼1#Python注釋代碼2C."""Python文檔注釋"""D.//Python注釋代碼二、填空題1.算法的效率通過和來度量。2.Python語言是一種解釋型、面向的程序設計語言。對象3.用戶編寫的Python程序(避免使用依賴于系統的特性),無需修改就可以在不同的平臺上運行,這是Python的特性。可移植4.Python語句既可以采用交互式的執行方式,又可以采用執行方式。命令,程序5.要關閉Python解釋器,可使用函數或快捷鍵。quit(),Ctrl+Z6.在Python內置集成開發環境中,可使用快捷鍵運行當前打開的程序。F57.Python語句行從解釋器提示符后的第列開始。可以在同一行中使用多條語句,語句之間使用分隔。一,分號8.Python中,如果語句太長,可以使用作為續行符。\9.在Python解釋器中,使用函數可以進入幫助系統。help()10.Python通過來區分不同的語句塊。縮進對齊第2章程序的數據描述練習題一、選擇題1.下列選項中合法的標識符是()。AA._7a_bB.breakC._a$bD.7ab2.下列標識符中合法的是()。BA.i'mB._C.3QD.for3.Python不支持的數據類型有()。AA.char B.int C.float D.list4.關于Python中的復數,下列說法錯誤的是()。BA.表示復數的語法形式是a+bjB.實部和虛部都是浮點數C.虛部必須加后綴j,且必須是小寫D.函數abs()可以求復數的模5.type(1+0xf*3.14)的結果是()。DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>6.字符串s='a\nb\tc',則len(s)的值是()。CA.7B.6C.5D.47.Python語句print(0xA+0xB)的輸出結果是()。DA.0xA+0xBB.A+BC.0xA0xBD.218.下列屬于math庫中的數學函數的是()。CA.time() B.round()C.sqrt()D.random()9.在一個同時包含整數和浮點數的表達式中,Python要進行的轉換是()。BA.浮點數轉換為整數B.整數轉換為浮點數C.浮點數和整數轉換為字符串D.整數轉換為字符串10.下列表達式中,值不是1的是()。DA.4//3B.15%2C.1^0D.~111.Python表達式中,可以使用()控制運算的優先順序。AA.圓括號()B.方括號[]C.大括號{}D.尖括號<>12.Python語句print(r"\nGood")的運行結果是()。CA.新行和字符串GoodB.r"\nGood"C.\nGoodD.字符r、新行和字符串Good13.下列Python語句中,非法的是()。BA.x=y=1B.x=(y=1)C.x,y=y,xD.x=1;y=114.在Python中,正確的賦值語句為()。CA.x+y=10B.x=2yC.x=y=30D.3y=x+115.為了給整型變量x、y、z賦初值10,下面正確的Python賦值語句是()。CA.xyz=10B.x=10y=10z=10C.x=y=z=10D.x=10,y=10,z=1016.為了給整型變量x、y、z賦初值5,下面正確的Python賦值語句是()。AA.x=5;y=5;z=5B.xyz=5C.x,y,z=5D.x=5,y=5,z=517.已知x=2,y=3,復合賦值語句x*=y+5執行后,x變量中的值是()。BA.11B.16C.13D.2618.整型變量x中存放了一個兩位數,要將這個兩位數的個位數字和十位數字交換位置,例如,13變成31,正確的Python表達式是()。AA.(x%10)*10+x//10B.(x%10)//10+x//10C.(x/10)%10+x//10D.(x%10)*10+x%1019.與數學表達式對應的Python表達式中,不正確的是()。CA.c*d/(2*a*b)B.c/2*d/a/bC.c*d/2*a*bD.c*d/2/a/b20.執行下列語句后的顯示結果是()。Cfrommathimportsqrtprint(sqrt(3)*sqrt(3)==3)A.3B.TrueC.FalseD.sqrt(3)*sqrt(3)==3二、填空題1.Python基本數據類型包括、和,復合數據類型有、、和。數值型,字符串型,布爾型,列表,元組,字典,集合2.使用math模塊庫中的函數時,必須要使用語句導入該模塊。importmath3.在Python中,傳統除法運算符是,整除除法運算符是。/,//4.設m,n為整型,則與m%n等價的表達式為。m-m//n*n5.Python表達式4.5/2的值為,4.5//2的值為,4.5%2的值為。2.25,2.0,0.56.表達式1/4+2.75的值是。3.07.Python表達式12/4-2+5*8/4%5/2的值為。1.08.計算231-1的Python表達式是。2**31-19.數學表達式的Python表達式為。math.sin(15*math.pi/180)+(math.exp(x)-5*x)/math.sqrt(x*x+1)-math.log(3*x)10.數學表達式的Python表達式為。((c*d)/2/(c+d)-4*math.pi/(c-d))/(a+b)第3章順序結構程序設計練習題一、選擇題1.下列語句中在Python中非法的是()。BA.x=y=z=1 B.x=(y=z+1)C.x,y=y,x D.x+=y2.已知x=2,語句x*=x+1執行后,x的值是()。DA.2 B.3C.5 D.63.語句x=input()執行時,如果從鍵盤輸入12并按回車鍵,則x的值是()。DA.12 B.12.0C.1e2 D.'12'4.語句x,y=eval(input())執行時,輸入數據格式錯誤的是()。AA.34B.(3,4)C.3,4D.[3,4]5.語句print('x=${:7.2f}'.format(123.5678))執行后的輸出結果是()。選項中的□代表空格。CA.x=□123.56 B.$□123.57C.x=$□123.57 D.x=$□123.566.語句eval('2+4/5')執行后的輸出結果是()。AA.2.8 B.2C.2+4/5 D.'2+4/5'7.print('{:7.2f}{:2d}'.format(101/7,101%8))的運行結果是()。BA.{:7.2f}{:2d}B.□□14.43□5(□代表空格)C.□14.43□□5(□代表空格)D.□□101/7□101%8(□代表空格)二、填空題1.在Python中,賦值的含義是使變量一個數據對象,該變量是該數據對象的。指向,別名,2.語句y=x的含義是。y和x指向同一個數據對象3.和x/=x*y+z等價的語句是。x=x/(x*y+z)4.語句a,a=10,20執行后,a的值是。205.語句print('AAA',"BBB",sep='-',end='!')執行的結果是。AAA-BBB!6.下列Python語句的執行結果是。43a,b=3,4a,b=b,aprint(a,b)7.下列Python語句的輸出結果是。print("數量{0},單價{1}".format(100,285.6))print(str.format("數量{0},單價{1:3.2f}",100,285.6))print("數量%4d,單價%3.3f"%(100,285.6))數量100,單價285.6數量100,單價285.60數量100,單價285.6008.下列Python語句的輸出結果是。print("1".rjust(20,""))print(format("121",">20"))print(format("12321",">20"))112112321三、問答題1.用Python語句完成下列操作:(1)將變量I的值增加1。(2)I的立方加上J,并將其結果保存到I中。(3)將232-1的值存放到G中。(4)將兩位自然數的個位與十位互換,得到一個新的數(不考慮個位為0的情況)。2.設a=10,寫出下面表達式運算后a的值。208503.021(1)a+=a(2)a-=2(3)a&=2+3(4)a/=2+3(5)a%=a-a%4(6)a//=a-33.Python基本輸入輸出通過哪些語句來實現?4.格式化輸出中有哪些常用的格式控制符?其含義是什么?5.從功能上講,一個程序通常包括那些組成部分?第4章選擇結構程序設計練習題一、選擇題1.在Python中,邏輯量有()。BA.Yes,No B.True,FalseC.T,FD.1,02.下列表達式的值為True的是()。AA.2!=5or0 B.3>2>2C.5+4j>2-3jD.'abc'>'xyz'3.以下不合法的表達式是()。BA.xin[1,2,3,4,5]B.3=aC.e>5and4==fD.(x-6)>54.數學關系式2<x≤10表示成正確的Python表達式為()。BA.2<x<=10B.2<xandx<=10C.2<x&&x<=10D.x>2orx<=105.下面if語句統計“成績(mark)優秀的男生以及不及格的男生”的人數,正確的語句為()。CA.if(gender=="男"andmark<60ormark>=90):n+=1B.if(gender=="男"andmark<60andmark>=90):n+=1C.if(gender=="男"and(mark<60ormark>=90)):n+=1D.if(gender=="男"ormark<60ormark>=90):n+=16.下面if語句統計滿足“性別(gender)為男、職稱(duty)為副教授、年齡(age)小于40歲”條件的人數,正確的語句是()。BA.if(gender=="男"orage<40andduty=="副教授"):n+=1B.if(gender=="男"andage<40andduty=="副教授"):n+=1C.if(gender=="男"andage<40orduty=="副教授"):n+=1D.if(gender=="男"orage<40orduty=="副教授"):n+=17.在Python中,實現多分支選擇結構的最佳方法是()。CA.if B.if-elseC.if-elif-elseD.if嵌套8.以下if語句語法不正確的是()。DA.if(a>0):x=20else:x=200B.if(a>0):x=20else:x=200C.if(a>0):x=20else:x=200D.if(a>0)x=20elsex=2009.下列語句執行后的輸出是()。Cif2:print(5)else:print(6)A.0 B.2C.5D.610.執行下列Python語句將產生的結果是()。Ax=2y=2.0if(x==y):print("Equal")else:print("NotEqual")A.EqualB.NotEqualC.編譯錯誤D.運行時錯誤11.執行下列Python語句產生的結果是()。Bi=1if(i):print(True)else:print(False)A.輸出1B.輸出TrueC.輸出FalseD.輸出012.下面程序段求x和y中的較大數,不正確的是()。DA.maxNum=xifx>yelseyB.maxNum=math.max(x,y)C.if(x>y):maxNum=xD.if(y>=x):maxNum=yelse:maxNum=ymaxNum=x13.用if語句表示如下分段函數:下面不正確的語句為()。BA.if(x<1):y=x*x-2*x+3B.if(x<1):y=x*x-2*x+3else:y=math.sqrt(x-1)y=math.sqrt(x-1)C.y=x*x-2*x+3D.if(x<1):y=x*x-2*x+3if(x>=1):y=math.sqrt(x-1)if(x>=1):y=math.sqrt(x-1)二、填空題1.表達式2<=1and0ornot0的值是。True2.先用“frommathimport*”語句導入math模塊,輸出表達式sqrt(2)*sqrt(2)==2的值時,發現其值為False,所以該表達式的更好的寫法是。設比較的精度為10-5。abs(sqrt(2)*sqrt(2)-2)<1e-53.已知ans='n',則表達式ans=='y'or'Y'的值為。'Y'4.Python提供了兩個對象身份比較運算符和來測試兩個變量是否指向同一個對象。is,isnot5.在直角坐標中,x、y是坐標系中任意點的位置,用x和y表示第一象限或第二象限的Python表達式為。x>0andy>0orx<0andy>06.判斷整數i能否同時被3和5整除的Python表達式為。i%3==0andi%5==07.已知a=3,b=5,c=6,d=True,則表達式notdora>=0anda+c>b+3的值是。True8.Python表達式16-2*5>7*8/2or"XYZ"!="xyz"andnot(10-6>18/2)的值為。True9.下列Python語句的運行結果是。Truex=Truey=Falsez=Falseprint(xoryandz)10.下列Python語句的運行結果是。Falsex=0y=Trueprint(x>yand'A'<'B')11.執行下列Python語句將產生的結果是。TrueFalsem=Truen=Falsep=Trueb1=m|n^p;b2=n|m^pprint(b1,b2)12.對于if語句的條件表達式后面或else后面的語句塊,應將它們。縮進對齊13.當x=0,y=50時,語句z=xifxelsey執行后,z的值是。50三、問答題1.條件“20<x<30或x<-100”的Python表達式是什么?2.Python實現選擇結構的語句有哪些?各種語句的格式是十么?3.下列Python語句的運行結果為。nox=Falsey=Truez=Falseifxoryandz:print("yes")else:print("no")4.下列Python語句的運行結果為。2x=Truey=Falsez=Trueifnotxory:print(1)elifnotxornotyandz:print(2)elifnotxoryornotyandx:print(3)else:print(4)5.有下列3個if語句,分析在i和j取不同值時,x和y的值分別是多少?并上機驗證自己的答案。(1)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=8(2)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=8(3)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=86.說明以下3個if語句的區別:(1)if(i>0):if(j>0):n=1else:n=2(2)if(i>0):if(j>0):n=1else:n=2(3)if(i>0):n=1else:if(j>0):n=2(1)相當于:(2)相當于:(3)相當于:第5章循環結構程序設計練習題一、選擇題1.關于循環的描述中不正確的是()。BA.循環的基本思想是重復B.Python允許無止境的循環C.循環是計算機解題的一個重要特征D.Python有while循環和for循環2.設有程序段k=10while(k):k=k-1則下面描述中正確的是()。AA.while循環執行10次 B.循環是無限循環C.循環體語句一次也不執行 D.循環體語句執行一次3.下列while循環執行的次數為()。Bk=1000whilek>1:print(k)k=k/2A.9B.10C.11D.10004.以下for語句中,不能完成1~10的累加功能的是()。AA.foriinrange(10,0):sum+=iB.foriinrange(1,11):sum+=iC.foriinrange(10,-1):sum+=iD.foriin(10,9,8,7,6,5,4,3,2,1):sum+=i5.對下列語句不符合語法要求的表達式是()。Dforvarin:print(var)A.range(0,10)B."Hello"C.(1,2,3)D.{1,2,3,4,5}6.下列循環語句中有語法錯誤的是()。DA.while(x==y):5 B.while(0):passC.foriin[1,2,3]:print(i) D.forTrue:x=307.下面Python循環體執行的次數與其他不同的是()。AA.i=0B.i=10while(i<=10):while(i>0):print(i)print(i)i=i+1i=i-1C.foriinrange(10):D.foriinrange(10,0,-1):print(i)print(i)8.可以終止循環體語句執行的語句是()。CA.continueB.exitC.breakD.quit9.下列說法中正確的是()。DA.break用在for語句中,而continue用在while語句中B.break用在while語句中,而continue用在for語句中C.continue能結束循環,而break只能結束本次循環D.break能結束循環,而continue只能結束本次循環二、填空題1.執行循環語句foriinrange(1,5,2):print(i),循環體執行的次數是。22.循環句語foriinrange(-3,21,4)的循環次數為。63.要使語句foriinrang(,-4,-2)循環執行15次,則循環變量i的初值應當為。25或264.執行循環語句foriinrange(1,5):pass后,變量i的值是。45.以下while循環的循環次數是()。無限次i=0while(i<10):if(i<1):continueif(i==5):breaki+=16.執行下面程序段后,k值是()。36k=1n=263while(n):k*=n%10n//=107.執行下列Python語句后的輸出結果是,循環執行了次。1,1i=-1while(i<0):i*=iprint(i)8.Python無窮循環whileTrue:的循環體中可用語句退出循環。break9.下列Python語句的運行結果為。012234foriinrange(3):print(i,end='')foriinrange(2,5):print(i,end='')三、問答題1.什么叫循環?舉例說明其應用。2.while循環和for循環有何區別?各自應用在什么場合?3.break語句和continue語句的區別是什么?4.Python中pass語句的作用是什么?5.對于累加求和問題一定要設置累加變量的初值,而且初值為0,這種說法對嗎?6.在Python中,通過什么方式來確定循環體語句?實驗題1.寫出下列程序的運行結果。i=1whilei+1:ifi>4:print(i)i+=1breakprint(i)i+=21352.寫出下列程序的運行結果。sum=j=1while(j<=3):f=1foriinrange(2,2*(j+1)):f*=isum+=fj+=1print("sum=",sum)3.閱讀下面的Python程序,程序的功能是什么?importmathn=0forminrange(101,201,2):k=int(math.sqrt(m))foriinrange(2,k+2):ifm%i==0:breakifi==k+1:ifn%10==0:print()print(m,end='')n+=1輸出100~200間的全部素數,每行輸出10個數。4.閱讀下面的Python程序,程序的輸出結果是什么?程序的功能是什么?forninrange(1,1001):factors=[]foriinrange(1,n):if(n%i==0):factors.append(i)if(sum(factors)==n):print("{0}:{1}".format(n,factors))找出1000以內的所有完數。一個數如果恰好等于它的因子之和,這個數就稱為完數。例如,6的因子為1、2、3,因為6=1+2+3,因此6就是完數。第6章字符串處理練習題一、選擇題1.訪問字符串中的部分字符的操作稱為()。AA.分片B.合并C.索引D.賦值2.下列關于字符串的描述錯誤的是()。BA.字符串s的首字符是s[0]B.在字符串中,同一個字母的大小是等價的。C.字符串中的字符都是以某種二進制編碼的方式進行存儲和處理的D.字符串也能進行關系比較操作3.執行下列語句后的顯示結果是()。Aworld="world"print("hello"+world)A.helloworldB."hello"worldC.helloworldD."hello"+world4.下列表達式中,有3個表達式的值相同,另一個不相同,與其他3個表達式不同的是()。CA."ABC"+"DEF"B.''.join(("ABC","DEF"))C."ABC"-"DEF"D.'ABCDEF'*15.設s="PythonProgramming",那么print(s[-5:])的結果是()。AA.mmingB.PythonC.mminD.Pytho6.設s="HappyNewYear",則s[3:8]的值為()。BA.'ppyNe'B.'pyNe'C.'ppyN'D.'pyNew'7.將字符串中全部字母轉換為大寫字母的字符串方法是()。DA.swapcaseB.capitalizeC.uppercaseD.upper8.下列表達式中,能用于判斷字符串s1是否屬于字符串s(即s1是否s的子串)的是()。D①s1ins;②s.find(s1)>0;③s.index(s1)>0;④s.rfind(s1);⑤s.rindex(s1)>0A.①B.①②C.①②③D.①②③④⑤二、填空題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.'AsDf888'.isalpha()的值是。False6.下面語句的執行結果是。['A','A','A']s='A'print(3*s.split())7.已知s1='redhat',print(s1.upper())的結果是,s1.swapcase()的結果是,s1.title()的結果是,s1.replace('hat','cat')的結果是。REDHAT,'REDHAT','RedHat','redcat'8.設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'三、問答題1.什么叫字符串?有哪些常用的字符編碼方案?2.數字字符和數字值(如'5'和5)有何不同?如何轉換?3.為什么print('IlikePython'*5)可以正常執行,而print('IlikePython'+5)卻運行時出錯?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.bytes對象和字符串有何不同?實驗題1.寫出程序的運行結果。c='123'+'456'+'789'c+=c[-3:]*2print(c)2.寫出下列程序的功能。forkinrange(1,11):w=input()if'AEIOUaeiou'.find(w[0])>=0:print(w)3.下面是打印如圖6-2所示的金字塔圖案的程序,請補充程序。圖6-2金字塔圖案foriinrange(1,6):print(''*(15-i),end='')print('*'*(2*i-1))第7章列表與元組練習題一、選擇題1.下列類型數據中可以變化的是()。AA.列表B.元組C.字符串D.單個字符2.Python語句print(type([1,2,3,4]))的輸出結果是()。DA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>3.Python語句print(type((1,2,3,4)))的結果是()。AA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>4.下列選項中與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語句的輸出結果是()。Ca=[1,2,3,None,(),[]]print(len(a))A.4B.5C.6D.710.下列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)等價于。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.表達式“2in[1,2,3,4]”的值是,max((1,2,3)*2)的值是。True,35.Python語句print(tuple(range(2)),list(range(2)))的運行結果是。(0,1)[0,1]6.Python表達式[iforiinrange(5)ifi%2!=0]的值為,[i**2foriinrange(3)]的值為。[1,3],[0,1,4]7.Python語句first,*middles,last=range(6)執行后,middles的值為,sum(middles)/len(middles)的值為。[1,2,3,4],2.58.已知fruits=['apple','banana','pear'],print(fruits[-1][-1])的結果是,print(fruits.index('apple'))的結果是,print('Apple'infruits)的結果是。r,0,False9.下列語句的運行結果是。5s=[1,2,3,4]s.append([5,6])print(len(s))10.下列語句的運行結果是。7s1=[1,2,3,4]s2=[5,6,7]print(len(s1+s2))11.下列Python語句的輸出結果是。x=y=[1,2]x.append(3)print(xisy,x==y,end='')z=[1,2,3]print(xisz,x==z,y==z)TrueTrueFalseTrueTrue12.下列語句執行后,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]13.下列語句執行后,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.序列元素的類型是否要求一樣?序列元素可以是哪些類型?2.分析下列語句的執行結果,總結語句y=x和y=x[:]的區別。>>>x=[1,2,3,4,5]>>>y=x>>>id(x),id(y)(36902912,36902912)>>>x=[1,2,3,4,5]>>>y=x[:]>>>id(x),id(y)(36905128,37316008)3.分析下列語句的執行結果,總結語句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])4.列表和元組有何區別?如何進行它們之間的轉換?實驗題1.寫出程序的運行結果。n=[[0]*5foriinrange(4)]foriinrange(len(n)):forjinrange(len(n[0])):n[i][j]=i+jprint(sum(n[i]))2.寫出程序的運行結果。4name1=['Amy','Bob','Charlie','Daling']name2=name1name3=name1[:]name2[0]='Alice'name3[1]='Ben'sum=0forlsin(name1,name2,name3):ifls[0]=='Alice':sum+=1ifls[1]=='Ben':sum+=2print(sum)提示:語句name2=name1使得name1和name2指向(引用)相同的對象實例,而語句name3=name1[:]表示name3是復制(創建)的新實例,其內容與與name1(也即name2)的內容相同。3.寫出程序的運行結果。m=3a=[50,75,53,92,77,64,79,21]s=[0]*10foriinrange(len(a)):k=a[i]//10s[k]=s[k]+1m=s[0]k=1whilek<10:ifs[k]>m:m=s[k]k+=1print('m=',m)4.篩選法求[2,n]范圍內全部素數的基本思路是:在2~n中劃去2的倍數(不包括2),再劃去3的倍數(不包括3),由于4已被劃去,再找5的倍數,……,直到劃去不超過n的倍數,剩下的數都是素數。下面是用篩選法求[2,n]范圍內的全部素數的程序,請補充程序。frommathimport*n=int(input("請輸入n:"))m=int(sqrt(n))p=[]foriinrange(n+1):p.append(i)foriinrange(2,m+1):if(p[i]):forjinrange(2*i,n+1,i): #去掉i的倍數p[j]=0foriinrange(2,n+1): #輸出全部素數if(p[i]):print(p[i])第8章字典與集合練習題一、選擇題1.Python語句print(type({1:1,2:2,3:3,4:4}))的輸出結果是()。BA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>2.Python語句print(type({1,2,3,4}))的輸出結果是()。CA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>3.以下不能創建字典的語句是()。CA.dict1={} B.dict2={3:5} C.dict3=dict([2,5],[3,4])D.dict4=dict(([1,2],[3,4]))4.對于字典D={'A':10,'B':20,'C':30,'D':40},對第4個字典元素的訪問形式是()。DA.D[3]B.D[4]C.D[D]D.D['D']5.對于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是()。AA.4B.8C.10D.126.對于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是()。BA.10B.100C.40D.2007.以下不能創建集合的語句是()。CA.s1=set() B.s2=set(“abcd”)C.s3=(1,2,3,4) D.s4=frozenset((3,2,1))8.設a=set([1,2,2,3,3,3,4,4,4,4]),則sum(a)的值是()。AA.10B.20C.30D.409.下列Python語句的運行結果是()。Cd={1:'a',2:'b',3:'c'}print(len(d))A.0B.1C.3D.610.下列Python語句的運行結果是()。Dnums=set([1,2,2,3,3,3,4])print(len(nums))A.1B.2C.3D.411.已知s={'a',1,'b',2},print(s['b'])的運行結果是()。AA.語法錯B.'b'C.1D.2二、填空題1.字典是的集合。“關鍵字:值”對2.集合是一組無序排列的、的元素集,它包含兩種類型,即和。不重復,可變集合,不可變集合3.Python語句print(len({}))的結果是。04.Python語句print(set([1,2,1,2,3]))的結果是。{1,2,3}5.下列語句執行后,di['fruit'][1]的值是。bananadi={'fruit':['apple','banana','orange']}di['fruit'].append('watermelon')6.{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.下列語句執行后的結果是。2d={1:'x',2:'y',3:'z'}deld[1]deld[2]d[1]='A'print(len(d))8.下列語句執行后的結果是。15fruits={'apple':3,'banana':4,'pear':5}fruits['banana']=7print(sum(fruits.values()))9.下列語句執行后的結果是。食品d1={1:'food'}d2={1:'食品',2:'飲料'}d1.update(d2)print(d1[1])10.下面語句的輸出結果是()。6list1={}list1[1]=1list1['1']=3list1[1]+=2sum=0forkinlist1:sum+=list1[k]print(sum)11.下面語句的輸出結果是()。{1:'x',3:'c'}d={1:'a',2:'b',3:'c'}deld[1]d[1]='x'deld[2]print(d)12.在Python中,設有s1={1,2,3},s2={2,3,5},則s1.update(s2)的結果為,ersection(s2)的結果為,s1.difference(s2)的結果為。{1,2,3,5},{2,3,5},{1}三、問答題1.字典和序列有何區別?2.什么是空字典和空集合?如何創建它們?3.字典的遍歷有哪些方法?4.Python支持的集合運算有哪些?集合的比較運算有哪些?集合對象的方法有哪些?5.分別寫出下列兩個程序的輸出結果,分析結果為何不同?程序1:d1={'a':1,'b':2}d2=d1d1['a']=6sum=d1['a']+d2['a']print(sum)程序2:d1={'a':1,'b':2}d2=dict(d1)d1['a']=6sum=d1['a']+d2['a']print(sum)程序1結果為12,其中的語句d2=d1使得d1和d2指向(引用)相同的對象實例。程序2結果為7。其中的d2=dict(d1)將產生一個新的實例賦給d2。實驗題1.寫出程序的運行結果。a=set('ababcdabca')x={xforxinaifxnotin'ab'}print(a-x)print(a|x)print(a^x)print(a&x)2.寫出程序的運行結果。d={'Jack':'jack@','Tom':'Tom@'}d['Jim']='Jim@'deld['Tom']s=list(d.keys())s=sorted(s)print(s)3.寫出程序的運行結果。numbers={}numbers[(1,2,3)]=1numbers[(2,1)]=2numbers[(1,2)]=3sum=0forkinnumbers:sum+=numbers[k]print(len(numbers),sum,numbers)36{(1,2):3,(2,1):2,(1,2,3):1}4.從鍵盤輸入整數x,判斷它是否集合a,b,c的元素,若是分別輸出1,2,3,若都不是輸出4。要求集合a從鍵盤輸入。請補充程序。x=int(input())a=set()foriinrange(5):a.add(int(input()))b={12,43,56,2}c={3,2,67}ifxina:y=1elifxinb:y=2elifxinc:y=3else:y=4print('y=',y)第9章函數練習題一、選擇題1.下列選項中不屬于函數優點的是()。DA.減少代碼重復B.使程序模塊化C.使程序便于閱讀D.便于發揮程序員的創造力2.關于函數的說法中正確的是()。BA.函數定義時必須有形參B.函數中定義的變量只在該函數體中起作用C.函數定義時必須帶return語句D.實參與形參的個數可以不相同,類型可以任意3.以下關于函數說法正確的是()。DA.函數的實際參數和形式參數必須同名B.函數的形式參數既可以是變量也可以是常量C.函數的實際參數不可以是表達式D.函數的實際參數可以是其他函數的調用4.有以下兩個程序。程序1:x=[1,2,3]deff(x):x=x+[4]f(x)print(x)程序2:x=[1,2,3]deff(x):x+=[4]f(x)print(x)下列說法正確的是()。AA.兩個程序均能正確運行,但結果不同B.兩個程序的運行結果相同C.程序1能正確運行,程序2不能D.程序1不能正確運行,程序2能5.已知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}6.下列語句的運行結果是()。Df1=lambdax:x*2f2=lambdax:x**2print(f1(f2(2)))A.BB.4C.6D.87.下列程序執行后,y的值是()。Bdeff(x,y):returnx**2+y**2y=f(f(1,3),5)A.100B.125C.35D.98.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語句的函數將返回。None3.函數定義時確定的參數稱為,而函數調用時提供的參數稱為。形式參數或形參,實際參數或實參4.使用關鍵字可以在一個函數中設置一個全局變量。global5.下列程序的輸出結果是。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.有函數定義:defcube(x):globalansans=x**3returnans(1)說明該函數的功能。(2)輸入a的值,并調用該函數求a3,請寫出完整的程序。(3)有如下主程序:ans=10y=cube(4)print(ans,y)寫出程序的輸出結果。(4)如果在cube()函數定義的“globalans”語句最前面加上“#”,即改為“#globalans”,程序輸出結果有否變化,為什么?2.寫出程序的輸出結果。defrec(L):ifL==[]:returnL=L[0:len(L)-1]#L指向新產生的列表print("L:",L)rec(L)print("L:",L)returnx=['a','b','c']rec(x)print('x=',x)3.當輸入為8時,請寫出程序的運行結果。2deffoo(num):forjinrange(2,num//2+1):ifnum%j==0:returnFalseelse:returnTruedefmain():n=int(input("Pleaseinputaninteger:"))c=0foriinrange(2,n+1):iffoo(i):c+=1print(c)if__name__=='__main__':main()4.寫出程序的運行結果。8defpower(n,k):ifk==0:return1else:returnn*power(n,k-1)defmain():print(power(2,3))if__name__=='__main__':main()5.寫出下列程序的運行結果。deffunc(a,n,m):ifn==0:return1else:num=func(a,n//2,m)ifn%2==0:returnnum*num%melse:returnnum*num*a%mprint(func(5,6,7))16.寫出程序的運行結果。deff1():x=10print('Inf1x=',x)deff2():x=20print('Inf2x=',x)defmain():x=30f1()f2()print('Inmainx=',x)if__name__=='__main__':main()Inf1x=10Inf2x=20Inmainx=307.寫出下列程序的運行結果。deffoo(s):ifs=="":returnselse:returnfoo(s[1:])+s[0]print(foo("HappyNewYear"))raeYweNyppaH8.寫出程序的運行結果。defreverse0(lista):length=len(lista)listb=listaforiinrange(length):listb[i]=lista[length-i-1]returnlistbdefmain():la=['a','b','c','d','e']lb=reverse0(la)print(la)print(lb)if__name__=='__main__':main()['e','d','c','d','e']['e','d','c','d','e']9.寫出程序的運行結果。deff(lst):n=len(lst)foriinrange(1,n):flag=Falseforjinrange(n-1,i-1,-1):iflst[j-1]<lst[j]:lst[j],lst[j-1]=lst[j-1],lst[j]flag=Trueifnotflag:breakp=['whatever','is','worth','doing','is','worth','doing','well']f(p)print(p)['worth','worth','whatever','well','is','is','doing','doing']10.寫出下列程序的運行結果。deffunc(s,i,j):ifi<j:func(s,i+1,j-1)s[i],s[j]=s[j],s[i]defmain():a=[10,6,23,-90,0,3]func(a,0,len(a)-1)foriinrange(6):print(a[i])main()30-902361011.寫出下列程序的運行結果。deffoo(list,num):ifnum==1:list.append(0)elifnum==2:foo(list,1)list.append(1)elifnum>2:foo(list,num-1)list.append(list[-1]+list[-2])mylist=[]foo(mylist,10)print(mylist)[0,1,1,2,3,5,8,13,21,34]12.下列程序的作用是求兩個正整數m,n的最大公約數,請補充程序。defgcd(m,n):ifm<n:m,n=n,mifm%n==0:①else:return②ans=gcd(84,342)print(ans)①returnn②gcd(n,m%n)13.求,請補充程序。frommathimport*f=lambdan:(1+log(n))/(2*pi)y=exp(2.0)forninrange(1,101):y+=f(n)print(y)第10章文件操作練習題一、選擇題1.在讀寫文件之前,用于創建文件對象的函數是()。AA.openB.createC.fileD.folder2.關于語句f=open('demo.txt','r'),下列說法不正確的是()。CA.demo.txt文件必須已經存在B.只能從demo.txt文件讀數據,而不能向該文件寫數據。C.只能向demo.txt文件寫數據,而不能從該文件讀數據。D.“r”方式是默認的文件打開方式3.下列程序的輸出結果是()。Cf=open('c:\\out.txt','w+')f.write('Python')f.seek(0)c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園大班語言活動教案反思集錦
- 小學信息技術第三冊 第1課巧巧嘴巧巧手-輸入并保存1教學設計 河大版
- 化學環境考試試題及答案分享
- 股票期權考試試題及答案難嗎
- 高度規專項試題及精準答案
- 2026年抹灰工砂漿配比計算測試試題沖刺卷
- 2026年農用機械維修工設備維護評估試題
- 藥理學實驗考試試題及答案
- 煤礦招聘安檢員模擬考試試題及答案
- DB23T 4018-2026 寒地水稻機插秧1次施肥及診斷避損技術規程
- 2025至2030中國智能無人船行業市場發展分析及競爭態勢與產業運行態勢及投資規劃深度研究報告
- 2025年淮南市潘集區公開招聘社區“兩委”后備干部10名備考考試題庫附答案解析
- 太空探索與航天科技:初中物理科普教學教案
- 豁免源管理辦法
- 《建筑施工技術》課件
- 《淀粉樣變心肌病》課件
- 安全保衛組織架構及職責描述
- 急診常見中毒的急救與護理
- 醫院培訓課件:《靜脈留置針的應用及維護》
- 烷烴的說課稿
- 商城物業服務合同模板
評論
0/150
提交評論