python練習(xí)題答案_第1頁
python練習(xí)題答案_第2頁
python練習(xí)題答案_第3頁
python練習(xí)題答案_第4頁
python練習(xí)題答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Python 練習(xí)題庫By 鄭紅波 2017-12-19一、 填空題1. Python 標(biāo)準(zhǔn)庫 math 中用來計算平方根的函數(shù)是 。 ( sqrt)2. 在 Python 中 表示空類型。 ( None)3. 列表、元組、字符串是Python 的(有序?無序)序列。 (有序)4. 查看變量類型的 Python 內(nèi)置函數(shù)是 。 ( type() )5. 查看變量內(nèi)存地址的 Python 內(nèi)置函數(shù)是 。 ( id() )6. 表達(dá)式 1, 2, 3*3 的執(zhí)行結(jié)果為 。 (1, 2, 3, 1, 2, 3, 1, 2, 3 )7. list(map(str, 1, 2, 3) 的執(zhí)行結(jié)果為 。

2、( 1 , 2, 3)8. 已知x = 3,并且id(x)的返回值為 496103280,那么執(zhí)行語句 x += 6之后,表達(dá)式id(x)= 496103280 的值為 。 ( False)9. 已知 x = 3 ,那么執(zhí)行語句 x *= 6 之后, x 的值為 。 ( 18)10. 表達(dá)式“ 3 in 1, 2, 3, 4 ”的值為 。 (False)11. 假設(shè)列表對象aList 的值為 3, 4, 5, 6, 7, 9, 11, 13, 15, 17 ,那么切片aList3:7 得到的值是 。 (6, 7, 9, 11 )12. 使用列表推導(dǎo)式生成包含10 個數(shù)字 5 的列表,語句可以寫

3、為 。 ( 5 for i inrange(10)13. 假設(shè)有列表a = name, age, sex 和 b = Dong, 38, Male ,請使用一個語句將這兩個列表的內(nèi)容轉(zhuǎn)換為字典,并且以列表a 中的元素為“鍵” ,以列表 b 中的元素為“值” ,這個語句可以寫為 。 ( c = dict(zip(a, b) )14. 任意長度的 Python 列表、元組和字符串中最后一個元素的下標(biāo)為。 ( -1)15. Python 語句 .join(list(hello world!) 執(zhí)行的結(jié)果是 。 ( hello world! )16. 轉(zhuǎn)義字符n 的含義是 。 (回車換行)17. Py

4、thon 語句 list(range(1,10,3)執(zhí)行結(jié)果為 。(1,4,7)18. 切片操作 list(range(6):2 執(zhí)行結(jié)果為 。 (0, 2, 4 )19. 表達(dá)式 ab in acbed 的值為 。 ( False)20. Python 3.x 語句 print(1, 2, 3, sep=:) 的輸出結(jié)果為 。 (1:2:3)21. 表達(dá)式 int(4*0.5) 的值為 。 ( 2)22. 達(dá)式sorted(111, 2, 33, key=lambdax: -len(str(x) 的值為 。 ( 111, 33, 2)23. 已知列表對象x = 11, 2, 3 ,則表達(dá)式m

5、ax(x) 的值為 。 ( 3)24. 表達(dá)式 min(11, 2, 3) 的值為 。( 11)25. 已知列表對象x = 11, 2, 3 ,則表達(dá)式max(x, key=len) 的值為 。 ( 11)26. 語句 x = (3,) 執(zhí)行后 x 的值為 。 (3,)27. 語句 x = (3) 執(zhí)行后 x 的值為 。 ( 3 )28. 已知 x = 1:2 ,那么執(zhí)行語句 x2 = 3 之后, x 的值為 。 (1: 2, 2: 3 )29. 字典對象的 方法返回字典中的“鍵-值對”列表。( items() )30. 使 用 列 表 推 導(dǎo) 式 得 到 100 以 內(nèi) 所 有 能 被 13

6、 整 除 的 數(shù) 的 代 碼 可 以 寫 作 。 ( i for i in range(100) if i%13=0 )31. 表達(dá)式 3 * 2 的值為 。 (9)32. 表達(dá)式 3 * 2 的值為 。 ( 6)33. 已知 x = 3, 5, 7 ,那么執(zhí)行語句 xlen(x): = 1, 2 之后, x 的值為 。(3, 5, 7, 1, 2 )34. 表達(dá)式 list(zip(1,2, 3,4) 的值為 。 (1, 3), (2, 4) )35. 已知 x = 1, 2, 3, 2, 3 ,執(zhí)行語句 x.pop() 之后, x 的值為 。 (1, 2, 3, 2)36. 表達(dá)式x fo

7、r x in 1,2,3,4,5 if x1: print(k) k=k/23 .寫出下面代碼的運行結(jié)果。def Sum(a, b=3, c=5): return sum(a, b, c)print(Sum(a=8, c=2)print(Sum(8)print(Sum(8,2)答:1316154 .寫出下列程序輸出結(jié)果 i=1while i+1:if i4: print(%d%i) i+=1breakprint(%d%i)i+=1i+=15 .寫出下面代碼的運行結(jié)果。def Sum(*p):return sum(p)print(Sum(3, 5, 8)print(Sum(8)print(Sum

8、(8, 2, 10)答:168206 .下面程序的執(zhí)行結(jié)果是 。 (1)s = 0for i in range(1,101): s += ielse:print(1)7 .下面程序的執(zhí)行結(jié)果是 。 (1275)s = 0for i in range(1,101):s += iif i = 50: print(s) breakelse:print(1)8 .閱讀下面的代碼,輸出結(jié)果為 。x = list(range(10)for index, value in enumerate(x):if value = 3:xindex = 5else:print(x)答:將列表x中值為3的元素修改為5。9

9、 .閱讀下面的代碼,解釋其功能: import string import random print(.join(random.sample(x, 10)答:輸出由英文字母大小寫或數(shù)字組成的長度為10且不重復(fù)的隨機字符串。10 .下面的代碼輸出結(jié)果為 。 (3)def demo():x = 5x = 3demo() print(x)11 .下面程序運行的結(jié)果為 。(5, 6,1,2, 3, 4)def demo(lst, k):if k 25 and subject=電子信息工程)or (college=重點and subject=電子信息工程)or (agerev( r love you )

10、返回值為you love Idef rev1(s):s=s.split()s1= .join(reversed(s)return s119 .閱讀程序,打印結(jié)果是 1000def addInterest(balance,rate):newBalance=balance*(1+rate)balance=newBalancedef main():amount=1000addInterest(amount,rate)print (amount)main()20 .閱讀程序,打印結(jié)果是 def demo(newitem,old_list=):old_list.append(newitem)return

11、 old_listdef main():print(demo( a)print(demo( )b )main()答案:aa, b21 .閱讀程序,打印結(jié)果是 def func5(a, b, *c):print(a,b)print(length of c is %d, c is %len(c),c)func5(1,2,3,4,5,6)答案:1 2length of c is 4,c is (3, 4, 5, 6)22 .閱讀程序,打印結(jié)果是(2.5, 3, 4)def demo(*para):avg = sum(para)/len(para)g = i for i in para if iavg

12、 return (avg,)+tuple(g)print(demo(1,2,3,4)23 .閱讀程序,打印結(jié)果是def f(w=1,h=2):print(w,h)f()f(w=3)f(h=7)f(a=3) 答案:1 23 2 1 7 錯誤24 .閱讀程序,打印結(jié)果是def sort(number1,number2):if number1n:m, n = n, m p = m*n while m!=0:r = n%m n = m m = r return (n,p/n) print( demo(20, 30)三、程序填空題1 .下面代碼的功能是,隨機生成50個介于1,20之間的整數(shù),然后統(tǒng)計每個

13、整數(shù)出現(xiàn)頻率。請把缺少的代碼補全。import randomx = random.(1,20) for i in range() r = dict() for i in x:ri = r.get(i,)+1for k, v in r.items(): print(k, v)答:分別填寫randint、50、02 .生成包含1000個隨機字符的字符串,然后統(tǒng)計前20個高頻字符,最后以15個位左對齊輸出高頻字符,以5個位右對齊輸出個數(shù)。請把缺少的代碼補全。import randomy = for i in range(1000) d = dict()for ch in y :dch = d.get

14、(ch, 0) + 1items=list(d.items()items.sort(,reverse=True) for i in range(20):word,count = itemsiprint(%(word,count)答案:import string、 random.choice(x)、key= lambda x:x1、-15s%5d”3 .用戶輸入5,打印如右圖字符金字塔圖形,請補全代碼: n=input(輸入行數(shù):) for i in range(1,n+1):print( ,end=) for j in range(1,2*i):print(&, )print()答案:n=in

15、t(n) , *(n-i) , end=4 .質(zhì)因數(shù)分解,如輸入 60,則得到60 = 2 * 2 * 3 * 5.請補全代碼: x=eval(input(請輸入小于1000的整數(shù):)k=2 while x1:if print(k,end=)x = x/kif x 1:print(* ,end=)else答案:print(x, = ,end= ), x % k=0 , k += 15 .驗證哥德巴赫猜想:一個大于等于6的偶數(shù)可以表示為兩個素數(shù)之和,請補全代碼。import mathx=eval(input(輸入一個數(shù)”)while x6 or x%2=1:#大于 6 的偶數(shù)x=eval(inp

16、ut(輸入一個數(shù)”)for n1 in :m1=int(math.sqrt(n1)+1)for i in range(2,m1):#2-sqrt(n1)if :breakelsem2=math.ceil(math.sqrt(n2)+1) for j in range(2,m2):if n2%j=0 and jn2:else:pnnt(x, = ,n1,+ ,n2)答案:range(3,x/2,2), n1%i=0, n2=x-n1, break6 .右對齊九九乘法表,請補全代碼:for i in range(1,10):s1=str(i)+火+str(j)+ = +str(i*j) print

17、()print()1X1-12X1=23X1=3 IX1M6X1=7X172X?=J3X2=6BX2=106X2=127X3145x3=9aX3=li6X3=19;XS=2176 廣卜的7X4-386X5=307Xi=S5GXS=367 X *6=42T XS 1=8S X ?=163X3=24EXHS K 0.=4O8X7=56SX=&49X1=99X2=189X3=279X4=369X5=459X6=549X7=639X&=72 9X9=S1紇計信息行顏1量詞數(shù)7字將默(阻售空帶)33早號激(不包含空褚)27答案:for j in range(1,i+1) : , %8s %(s1),en

18、d=7 .輸出右邊圖形,請補充程序:for i :print( * -1*I2*inter(30)for i in range(6, 0,-1):print()答案:in range(6); (*(2*).center(5*n)8 .下面代碼判斷回文串,請補全代碼:s=霧鎖山頭山鎖霧low=0high=while lowhigh:if : #倒序和順序不一樣 print(s,不是回文)low +=1else:print(s,是回文串)答案:len(s)-1 , slow!=shigh , break, high-=1 ;9 .輸出右邊圖形,請補充程序:s=I am a teacher! You

19、 are students!print(=*30)print(統(tǒng)計信息.center(28)print()item_width=25line=s.count(n)+1word=s.split()char=list(s)#包含空格、標(biāo)點符號w_num=0for w in word:w_num+=print(%-*s %5d%(item_width-3,行數(shù),line)print(%-*s %5d%( ,單詞數(shù),len(word)print(%-*s %5d%(item_width-10,字符數(shù)(包含空格),)print(%-*s %5d%(item_width-11,字符數(shù)(不包含空格),w_n

20、um)print(-*30)答案:-*30; len(w) ; item_width-4 ; len(char)11, 11, 2, 11,3, 3, 11,4, 6, 4, 11,5, 10, 10, 5, 11,6, 15, 20, 15, 6, 11, 7, 21,35, 35, 21, 7, 11,8, 28, 56, 70, 56, 28, 8, 11,9, 36, 84, 126, 126, 84, 36, 9, 1,1010 .輸出右邊圖形,請補充程序:def demo(t):print(1)line = 1,1for i in range(2,t):for j in range

21、(0,len(line)-1): r.append()line = 1+r+1print(line)demo()答案:print(1,1) , r = 口,linej+linej+1 四、編程題1 .編寫程序,在 D盤根目錄下創(chuàng)建一個文本文件 test.txt,并向其中寫入字符串hello world。答:fp = open(r,, a+)print( hello world , file=fp)fp.close()2 .編寫程序,生成一個包含20個隨機整數(shù)的列表,然后對其中偶數(shù)下標(biāo)的元素進(jìn)行降序排列,奇數(shù)下標(biāo)的元素不變。(提示:使用切片。)答:import randomx = random.

22、randint(0,100) for i in range(20)print(x)y = x:2y.sort(reverse=True)x:2 = yprint(x)3 .編寫函數(shù),判斷一個數(shù)字是否為素數(shù),是則返回字符串YES,否則返回字符串NO。再編寫測試函數(shù)。答:import mathdef IsPrime(v):n = int(math.sqrt(v)+1)for i in range(2,n):if v%i=0:return Noelse:return Yesprint(IsPrime(77)4 . 編寫函數(shù),模擬 Python內(nèi)置函數(shù)sorted(lst)。答:def sorted(

23、v):t = v:r = 口while t:tt = minr.append(tt)t.remove(tt) return r print(sorted(1,3,2,4)5 .編寫程序,生成包含20個隨機數(shù)的列表,然后將前10個元素升序排列,后10個元素降序排列, 并輸出結(jié)果。答:import randomx = random.randint(0,100) for i in range(20)print(x)y = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)xyx000=x5x5=x103x-510=x2020=x0x10:20 =

24、 y print(x)6 .編寫程序,運行后用戶輸入4位整數(shù)作為年份,判斷其是否為閏年。如果年份能被400整除,則為閏年;如果年份能被4整除但不能被100整除也為閏年。答:x = input(Please input an integer of 4 digits meaning the year:)x = eval(x)if x%400=0 or (x%4=0 and not x%100=0):print(Yes)else:print(No)7 .編寫程序,實現(xiàn)分段函數(shù)計算,如下表所示。答:x = input(Please input x:)x = eval(x)if x=20:print(0

25、)elif 0=x5:print(x)elif 5=x10:print(3*x-5)elif 10=x20:print(0.5*x-2)8 .已知有一個包含一些同學(xué)成績的字典,計算成績的最高分、最低分、平均分,并查找最高分同 學(xué),最后打印最高分、最低分、平均分、最高分同學(xué)。scores = Zhang San: 45, Li Si: 78, Wang Wu: 40, Zhou Liu: 96, Zhao Qi: 65, Sun Ba: 90,Zheng Jiu: 78, Wu Shi: 99, Dong Shiyi: 60highest = max(scores.values()lowest

26、= min(scores.values()average = sum(scores.values()/len(scores)highestPerson = name for name, score in scores.items() if / score = highest # 分行print(highest,lowest,average,highestPerson)9 .統(tǒng)計不及格的學(xué)生及成績,要求:給定一些學(xué)生姓名和成績;詢問用戶是否還需要輸入更多的 學(xué)生姓名和成績,用戶回答是就繼續(xù)輸入,繼續(xù)詢問;打印所有補考學(xué)生名單和成績。d=張三,76,李四,45,王五,83,鄭六,66,a,54,c

27、,68,b,89s1=input(輸入數(shù)據(jù) Y or N:).strip()#去掉前后空格while s1 = Y:s2=input(請輸入學(xué)生及成績(空格隔開)name,grade=s2.split()d.append(name,grade)#dname=int(grade)s1=input(繼續(xù)輸入 Y or N:).strip()else:print(d)print(不及格白肉名單:)for name,grade in d:if float(grade) 60:print(姓名:,name,t,成績:,grade)10 .由用戶一個一個輸入一個數(shù)值型列表,然后將每個元素逐一打印。lst=

28、n=eval(input(請輸入數(shù)字個數(shù):”)for i in range(n):number=eval(input(請輸入數(shù)字:)lst.append(number)for value in lst:print(value,end=).111, .、n 1 111 .序列求和,n通過用戶輸入:1 一 一(刊 一234nn=int(input(清輸入 N 的值:)s=0fh=1for i in range(1,n+1):s +=fh*1/i#求和語句fh=-fh#正負(fù)交替print( 1-1/2+1/3-1/4+(-1(n-1)/n=,s,i)12 .生成一個包含50個兩位隨機整數(shù)的列表,然后

29、刪除其中的所有奇數(shù)(提示從后向前刪)lst=random.randint(1,100) for i in range(50)print(50個隨機兩位整數(shù):,lst)k=len(lst)-1for i in range(k,-1,-1):# 從后往前刪,減少列表元素移動if lsti % 2=1:lst.pop(i)print( 偶數(shù)為 ,lst)13 .愷撒(kaisa)密碼:原文: ABCDEFGHIJKLMNOPQRSTUVWXYZ ,對應(yīng)的密文為: EFGHIJKLMNOPQRSTUVWXYZABC ,請設(shè)計程序?qū)崿F(xiàn)之。plaincode=input( 請輸入明文: ) for p i

30、n plaincode:if a=p=z:c=chr(ord(a)+(ord(p)-ord(a)+3)%26)#ord 是字符編碼的值,都減掉ord(A) 才可以得到字符的順序0-25print(c,end=)elif A=p=Z :c=chr(ord(A)+(ord(p)-ord(A)+3)%26) print(c,end=) else:print(p,end=)14 . 如果一個字符串從前往后和從后往前讀時是一樣的,那么這個字符串就是回文串。請編寫一個函數(shù)判斷是否為回文串,同時編寫測試代碼檢驗回文串。def isPalindrome(s)if s=s:-1:#切片操作,倒序和順序一樣ret

31、urn Trueelse:return Falses=input(input a string:)if isPalindrome(s):print( i%sas palindrome! %s)else:print( is%nsot a palindrome! %)s15 . 輸入一串字符,統(tǒng)計每個字符數(shù),用字典輸出 .s=input( 輸入一行字符串或句子: )char_counts= for char in s:char_countschar= char_counts.get(char,0)+1print(char_counts)16 . 生成包含 100 個隨機字符的字符串,然后統(tǒng)計前20

32、 個高頻字符.import string,randomstr1=str1.lower()str2=random.choice (str1) for i in range(100)print(str2)str_count=for char in str2:str_countchar=str_count.get(char,0)+1 print(str_count) items=list(str_count.items() items.sort(key=lambda x:x1,reverse=True) #以數(shù)量降序 for i in range(20): word,count = itemsi p

33、rint(%-15s %5d%(word,count)#-表示左對齊,s表字符,d表示整數(shù)17 .統(tǒng)計e:HarryPotterSo rcerStone.txt文件中的英文單詞及其數(shù)量,打印出單詞及其個數(shù) filename =rHarryPotterSorcerStone.txt infile = open(filename, r) # Open the file txt=infile.read() words=txt.split()#以空格分割單詞words_counts= for word in words:words_countsword=words_counts.get(word,0)

34、+1 print(words_counts)18 .讀取文本文件中所有整數(shù),將其排序后寫入文本文件中 with open(data.txt,r) as fp:data=fp.readlines() #文件全部讀完返回字符列表 print(字符列表,data) data=int(line.strip() for line in data# 列表的數(shù)據(jù)變成整數(shù)data.sort() n for i in data#數(shù)字后加換行符with open( data_asc.txt ,w) as fp: fp.writelines(data) # 一次全部寫入19 .編程,如圖,在寫入五名學(xué)生的姓名、學(xué)號

35、和 3門考試課的成績,然后將所有兩門以上(含兩 門)課程不及格的學(xué)生信息輸出到文件bad.txt、其他學(xué)生信息輸出到pass.txto劉麗 掠儂 出gJ置看, 削 仁務(wù)皿向L標(biāo).五S3 至四,2017010100,607&30豐五,2017010103164弭82|里六,201701DL04,5加6L招我七,ZQ170L0105,叫5力6Bfw=open(rscore2.txt,w)s=張三, 2017010101。66, 77, 88,n fw.writelines(s)fw.write(李四,2017010102, 60, 70, 80n)fw.write(王五,2017010103, 64, 73, 82n)fw.write(趙六,2017010104, 56, 67, 48n) fw.write(錢七,2017010105, 46, 57, 68n) fw.close()f1=open(rscore2.txt,r)f2=open(rbad2.txt,w)f3=open(rpass2.txt,w)

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論