Python程序改錯打印版_第1頁
Python程序改錯打印版_第2頁
Python程序改錯打印版_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、Python程序改錯共20題注意:不可以增加或刪除程序行,也不可以更改程序的結(jié)構(gòu)題號:1用起泡法對n個整數(shù)從小到大排序。def Sort(date): length = len(date)for i in range(length-1): #*FOUND*for j in range(0,length-i): #*FOUND* if(datejdatej+1):if(datej+1datej):【答案 3】datej+1 = t題號:2 根據(jù)整型形參m的值,計算如下公式的值。例如:若m=5,則應(yīng)輸出:0.536389。def fun(m): y=1.0return y def main():m

2、ain()【答案1】foriinrange(2,m+1):【答案2】#*FOUND*m=int(input(請輸入整型形參m的值:)y-=1.0/(i*i)或y=y-1.0/(i*i)或y-=1.0/i/ifor i in range(2,m) #*FOUND* y-=1.0/i#*FOUND*結(jié)果為:%.6f,fun(m) if name= main :或y-=1/i/i或y=y-1.0/i/i或或y-=1/(i*i)或y=y-1/(i*i)【答案 3】print(結(jié)果為:%.6f %fun(m)題號:3已知一個數(shù)列從第0項開始的前三項分別為0、0、1,以后的各項都是其相鄰的前三項的和。下列

3、給定程序中,函數(shù)fun的功能是:計算并輸出該數(shù)列的前n 項的平方根之和 sum,n 的值通過形參傳入。例如:當(dāng) n=10 時,程序的輸出結(jié)果應(yīng)為 23.197745。import math def fun(n):sum=1.0 if(n=2): sum=0.0s0=0.0 s1=0.0 s2=1.0#*FOUND* for k in range(4,n) s=s0+s1+s2 sum+=math.sqrt(s) s0=s1s1=s2 s2=s#*FOUND* return sdef main():nint(input(n:) print(該數(shù)列的前,n,sum 為:%.6f%fun(n)if

4、name= main : main()【答案1】sum=1.0【答案2】forkrange(4,n+1):【答案3】returnsum題號:4從鍵盤輸入十個學(xué)生的成績,統(tǒng)計最高分,最低分和平均分。max代表平均分。def main():print(請分別輸入十個學(xué)生的成績:) a=#*FOUND* for i in range(1,10):a.append(float(input(請輸入第%d 個學(xué)生的成績,并按回車?yán)^續(xù): %(i+1)max=min=avg=a0 for j in range(10): #*FOUND* if(minaj): min=aj if(maxaj):【答案 3】av

5、g=avg/10題號:8下列給定程序中,fun函數(shù)的功能是:分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。例如:給字符串 s 輸入:AAaaBBbb123CCcccd,則應(yīng)輸出:upper6,lower8。def Upper(s):a = 0for i in range(len(s):def Lower(s):b = 0for i in range(len(s):def main():s = input(請輸入一個字符串,并按回車?yán)^續(xù):)if ( si = A and si a and si = a and siz:或【答案1a+=1或a =a+if ( si = a and si =z):或if

6、 si =a:題號:9 判斷整數(shù) x 是否是同構(gòu)數(shù)。若是同購數(shù),函數(shù)返回 1;否則返回 0。請改正程序中的錯誤,使它能得出正確的結(jié)果。說明:所謂“同構(gòu)數(shù)”是指這個數(shù)出現(xiàn)在它的平方數(shù)的右邊。x 的值由主函數(shù)從鍵盤讀入,要求不大于 1000。例如:輸入整數(shù) 25,25 的平方數(shù)是 625,25 是 625 中右側(cè)的數(shù),所以 25 是同構(gòu)數(shù)。def fun(x):#*FOUND* k=x #*FOUND*if(k%10=x) | (k%100=x) | (k%1000=x): return 1else:return 0 def xint(input(x,并按回車?yán)^續(xù):) if(x1000):prin

7、t(輸入值不能大于 1000!) exit(0)題號:12編寫函數(shù)fun計算下列分段函數(shù)的值x*x+xx0 且x-3f(x)=x*x+5x0 x0:或ify!=0:或if(y):if(y0):或if(y!=0):def fun(x): if (x=0 & x10.0 & x!=2.0 | x!=3.0):y=x*x+5*xelse:y=x*x+x-1 #*FOUND* return xdef main():x = int(input(請輸入 x 的值,并按回車?yán)^續(xù):)f = fun(x)if name= main : main()【答案1】if(x0andx!=-3.0):或(x!=-3.0

8、andx=0 and x10.0 and x!=2.0 and x!=3.0):【答案3】returny題號:14讀取7個數(shù)(1-50)的整數(shù)值,每讀取一個值,程序打印出該值個數(shù)的。def main():n = 1 #*FOUND* while n 7a = #*FOUND*while a = 50:a = int(input(范圍是 1-50,請重新輸入:) #*FOUND*print(a , *) n += 1if name= main : main()【答案1whilen=7:或while n 8:或while n 7+1:或while n 1+7:【答案2】whilea50:while

9、 a 50 or a 9:i=0#*FOUND*i+=12while j= 9 j+=1=)#*FOUND* if i!=j:j=0 breakif name= main : main()【答案1】whilei9:或while(ii:while(9i):或whilei=i:while(i=i):【答案2】whilej9:或while(jj:while(9j):或whilej=j:或while(j=j):【答案3ifi=j:或if(i=j):或ifj=i:或if(j=i):題號:22判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)。from math import sqrt from sys

10、importstdout defmain():h = 0leap = 1 #*FOUND* for m in (101,200): k = int(sqrt(m + 1)for i in range(2,k + 1):#*FOUND* if m / i = 0: leap = 0breakif leap = 1: print(%-4d %m) #*FOUND* h+if h % 10 = 0:print() leap = 1print(The total is %d %h) if name = main : main()【答案 1】for m in range(101,201):【答案 2】i

11、f m % i = 0:【答案3】h+=1或h = h +1題號:24main()函數(shù)中實現(xiàn)按逗號分隔列表,并打印輸出。def main():l = 1,2,3,4,5,6,7;#*FOUND* k = 0;#*FOUND*題號:25求100之內(nèi)的素數(shù)importmathelse:for i in (l+1):print(i,end= ( if (k = len(l) else ,); #*FOUND*k +;if name= main :main()【答案 1】k = 1 【答案 2】for i in l:【答案3】k+=1或k = k +1main()def is_prime(n): fo

12、r i inrange(1,math.sqrt(n): #*FOUND*if n/i=0: return Falsereturn True def main():#*FOUND*primes = i for i in range(1,100) if is_prime(i) print(primes)if name= main :【 答 案 1 】 for i in range(2,int(math.sqrt(n)+1):【答案 2】if n%i=0:【答案 3】primes = i for i in range(2,100) if is_prime(i)題號:26find_max()的功能是在

13、列表中找到年齡最大的人,并輸出。deffind_max(dict): max_age = 0 #*FOUND*for value indict.items(): #*FOUND*if value =max_age: max_age =value#*FOUND* name = key print(name) print(max_age) def main():person =li:18,wang:50,zhang:20,sun:22find_max(person)if name= main : main()【答案 1】for key, value in dict.items():【答案2】ifv

14、aluemax_age:或max_age value:【答案 3】name = key題號:30隨機產(chǎn)生一個數(shù),讓用戶來猜,猜中結(jié)束,若猜錯,則提示用戶猜大或猜小。importrandomdefnumber_right(a,b): #*FOUND*if a = b: print(猜大了!)returnFalse else:print(猜對了!) #*FOUND* return Falsedef main():b =random.randint(1,100) fg =Falsecn = 03while fg = False:afg = number_right(a,b) cn = cn + 1p

15、rint(總共猜了 %d 次%(cn) if name= main : main()【答案1】ifaa:或if(aa):elif bb):或elif(b b:或【答案3】returnTrue題號:31刪除列表中重復(fù)的元素。要求:使用while循環(huán)。def main():li = 1,2,3,4,5,2,1,3,4,57,8,8,9print(原列表:,li)i0ili#*FOUND*while i =len(li): j = i + 1 #*FOUND* while j =len(li):if lii = lij:del lij #*FOUND* breakj = j + 1 i = i +

16、1去除重復(fù)元素后的列表為:,li) if name= main :main()【答案1】whileilen(li):或while(ii: 或while(len(li) i):【答案2】whilejlen(li):或while(jj: 或while(len(li) j):【答案 3】continue題號:33有如下值集合將所有大于66的值保存至字典的第一個 key 中將小于66的值保存至第二個 key 的值中。說明:即:k1:大于 66 的所有值,k2:小于 66 的所有值def main():li = 11,22,33,44,55,66,77,88,99,90max66= min66= #*F

17、OUND* for i in li.len(): #*FOUND* if(i=66):題號:37求如下表達(dá)式:max66.append(i); #*FOUND* elif(i66):或if(6666:或if66i:【答案3】elif(i66):或elifii):或elif66i:def fun(n):s=0 #*FOUND*foriinrange(n+1): t=0#*FOUND* forjinrange(1,i):t=t+j #*FOUND* s+=1.0/treturn s def main():n=int(input(請輸入一個正整數(shù) n:) print(S = ,fun(n)if na

18、me= main :main()【答案 1】for i in range(1,n+1):【答案 2】for j in range(1,i+1):【答案3】s+=1.0/t或s=s+1.0/ts=1.0/t+s題號:38計算并輸出k以內(nèi)最大的10個能被13或17整除的自然數(shù)之和k的值由主函數(shù)傳入例若則函數(shù)值為4622。defm=0fun(k):m=m+kmc+=1if name= main :main()mc=0#*FOUND*【答案 1】while(k=2)and(mc10): 或#*FOUND*k+while(mc=2):while (k=2)&(mc10):return m【答案 2】if(k%13=0)or(k%17=0): 或#*FOUND*def main():if(k%17=0)o

溫馨提示

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

評論

0/150

提交評論