python入門精選題(計(jì)算機(jī)二級考試可用_第1頁
python入門精選題(計(jì)算機(jī)二級考試可用_第2頁
python入門精選題(計(jì)算機(jī)二級考試可用_第3頁
python入門精選題(計(jì)算機(jī)二級考試可用_第4頁
python入門精選題(計(jì)算機(jī)二級考試可用_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Python入門 精選30題考點(diǎn):循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)1、輸入一個(gè)三位整數(shù),判斷這個(gè)數(shù)是不是“水仙花數(shù)”;所謂“水仙花數(shù)”是指一個(gè)三位數(shù),其各位數(shù)字立方和等于該數(shù),例如:153=13 +53 +33 ,153 就是水仙花數(shù)。n=eval(input()i=na=0while i: a=a+(i%10)*3 i=i/10if a=n: print(yes)else:print(no)2. 隨機(jī)產(chǎn)生一個(gè)兩位數(shù)的數(shù)字,然后用戶輸入一個(gè)兩位數(shù)的數(shù)字,如果用戶輸入的數(shù)字與 隨機(jī)產(chǎn)生的數(shù)字完全相同(包括順序),則輸出獎(jiǎng)勵(lì) 100 分;如果用戶輸入的數(shù)字與隨機(jī)產(chǎn)生的數(shù)字相同(不包括順序), 則輸出獎(jiǎng)勵(lì) 50

2、分;如果用戶輸入的數(shù)字與隨機(jī)產(chǎn)生的數(shù)字有一位數(shù)相同,則獎(jiǎng)勵(lì) 10 分,如果都不相同,則輸入沒有獎(jiǎng)勵(lì)。考點(diǎn):產(chǎn)生隨機(jī)數(shù)、取出一個(gè)整數(shù)各位上的數(shù)、分支結(jié)構(gòu)import randoma=random.randint(10,99)b=eval(input()a1=a%10a2=a/10b1=b%10b2=b/10if a=b: print(100)elif a1=b2 and a2=b1: print(50)elif a1=b1 or a2=b2 or a1=b2 or a2=b1: print(10)else: print(0) 3.在金字塔模式中顯示數(shù)字(編寫一個(gè)嵌套 for 循環(huán)來顯示下面的輸出

3、) : a=eval(input()for i in range(a):考點(diǎn):循環(huán)結(jié)構(gòu)、制表 if i=0: for j in range(a-i): print( ,end=t) print(1,end=) for j in range(a-i): print( ,end=t) print() elif i!=0: for k in range(a-i): print( ,end=t) for l in range(0,i+1): a1=2*l print(a1,end=t) for y in range(i-1,-1,-1): a1=2*y print(a1,end=t) for x in

4、 range(a-i): print( ,end=t) print()考點(diǎn):素?cái)?shù)、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)4、如果一個(gè)素?cái)?shù)可以寫成2 p -1的形式,其中p為一個(gè)正整數(shù),那么這個(gè)數(shù)被稱作梅森素?cái)?shù)。編寫程序找出所有的p= 31的梅森素?cái)?shù)。def issushu(n): k=1 for i in range(2,n): a=n/i if a%1=0: k=0 return False if k=1: return Truep=1while p=31: a=(2*p)-1 p+=1 if issushu(a): print(a,end= )5、寫一個(gè)函數(shù)計(jì)算下面的數(shù)列考點(diǎn):循環(huán)結(jié)構(gòu)+ + +def m(n

5、): s=1 m=0 while s=n: a=s s=s+1 m=m+(a/s) return m n=eval(input()print(m(n)考點(diǎn):函數(shù)、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)6、神奇的 Collatz 序列。編寫一個(gè)名為 collatz 的函數(shù),它接收一個(gè)名為 number 的整數(shù)參數(shù), 如果 number 是偶數(shù),就打印 number/2,并返回該值。否則打印 3*number+1 并返回。同 時(shí)編寫主程序,讓用戶輸入一個(gè)整數(shù),并不斷地調(diào)用該函數(shù)(用第一次的返回值做第二次的參數(shù),以此類推) ,直到函數(shù)返回 1. 例如用戶輸入 3 則打印輸出應(yīng)為 10 5 1684 2 1def col

6、latz(number): if number%2=0: a=number/2 print(a) return(a) else: b=number*3+1 print(b) return(b)number=eval(input()while 1: number=collatz(number) if number=1: break7、一個(gè)數(shù)如果恰好等于它的除自身外的因子之和,這個(gè)數(shù)就稱為“完數(shù)”。例如 6=1+2+3, 6 是完數(shù)。編寫程序輸出 1 至 1000 之間的所有完數(shù)。考點(diǎn):完數(shù)、print輸出格式、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)def wanshu(n): s=0 for i in range(

7、1,n): a=n/i if a%1=0: s=s+i if s=n: return Truefor i in range(1,1001,1): if wanshu(i): print(i,end= ) 考點(diǎn):turtle內(nèi)置函數(shù)8、使用 turtle 繪制一個(gè)黃色邊框的紅色五角星。(五角星的每個(gè)內(nèi)角均為 36)import turtleturtle.showturtleturtle.pensize(5)turtle.color(yellow,red)turtle.begin_fill()for i in range(5): turtle.forward(100) turtle.right(1

8、44) turtle.forward(100)turtle.end_fill()turtle.hideturtle 太陽花:import turtleturtle.pensize(3)turtle.speed(10)turtle.color(yellow,red)turtle.begin_fill()for i in range(30): turtle.forward(100) turtle.right(165) turtle.forward(100)turtle.end_fill()9、使用 turtle 繪制奧運(yùn)五環(huán)(藍(lán)黑紅黃綠)import turtleturtle.showturtle

9、turtle.pensize(10)turtle.speed(10)turtle.color(black)turtle.penup()turtle.goto(0,0)turtle.pendown()turtle.circle(100)turtle.color(blue)turtle.penup()turtle.goto(-250,0)turtle.pendown()考點(diǎn):turtle內(nèi)置函數(shù)turtle.circle(100)turtle.color(red)turtle.penup()turtle.goto(250,0)turtle.pendown()turtle.circle(100)tu

10、rtle.color(yellow)turtle.penup()turtle.goto(-125,-70*(3*0.5)turtle.pendown()turtle.circle(100)turtle.color(green)turtle.penup()turtle.goto(125,-70*(3*0.5)turtle.pendown()turtle.circle(100)考點(diǎn):循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)、輸出格式10、打印9*9乘法表for i in range(1,10): if i=1: print(1 * 1 = 1) else: for j in range(1,i+1): print(j,

11、*,i,=,j*i,end=t) #”t”是制表符 print()考點(diǎn):循環(huán)結(jié)構(gòu)求因子、分支結(jié)構(gòu)、輸出格式11、編寫程序讀取一個(gè)大于1的正整數(shù),然后顯示它所有的最小因子,也稱之為素因子(即將一個(gè)正整數(shù)分解質(zhì)因數(shù))。例如:輸入整數(shù)為90,輸出90=2*3*3*5。n=eval(input()print(n,end=)while n: for i in range(2,n+1): a=n/i if a%1=0 and a!=1: print(i,end=*) break elif a%1=0 and int(a)=1: print(i,end=) break n=int(a)12、從鍵盤輸入整數(shù)n

12、,輸出數(shù)字方陣。例如:輸入n=5,輸出如下: 1 2 3 4 5 考點(diǎn):循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)、制表2 3 4 5 1 3 4 5 1 2 4 5 1 2 3 5 1 2 3 4 n=eval(input()for i in range(1,n+1): for j in range(i,n+1): print(j,end=t) if i=1: print() if i!=1: for k in range(1,i,1): print(k,end=t) print() 13、素?cái)?shù)是指一對差值為2的素?cái)?shù)。如3和5就是一對雙素?cái)?shù)。編寫程序,輸入正整數(shù)n,輸出大于等于n的最小的一對雙素?cái)?shù)??键c(diǎn):循環(huán)結(jié)構(gòu)、

13、分支結(jié)構(gòu)、素?cái)?shù)def issushu(n): k=1 for i in range(2,n): a=n/i if a%1=0: k=0 return False if k=1: return Truen=eval(input()while 1: if issushu(n) and issushu(n+2): print(n,n+2,sep= ) break else: n=n+1 14、反素?cái)?shù)(逆向拼寫的素?cái)?shù))是指一個(gè)將其逆向拼寫后也是一個(gè)素?cái)?shù)的非回文數(shù)。例如:17和71都是素?cái)?shù),所以,17和71都是反素?cái)?shù)。編寫程序,輸入一個(gè)正整數(shù),顯示大于該數(shù)的前10個(gè)反素?cái)?shù)??键c(diǎn):函數(shù):素?cái)?shù)、回文數(shù)def

14、 issushu(n): a=True for i in range(2,n): if (n/i)%1=0: a=False return False if a=True: return Truedef nixiang(m): m=str(m) m=m:-1 m=eval(m) return mdef nothuiwenshu(s): s=str(s) if s=s:-1: return False else: return Truez=eval(input()s=0while s10: z=z+1 if issushu(z) and issushu(nixiang(z) and nothui

15、wenshu(z): s+=1 if smax1: max1=xprint(max1)方法二a=for i in range(30): x=eval(input() a.append(x)max1=max(a)print(max1)考點(diǎn):字符串、Unicode碼與ord、chr函數(shù)19、初始化一個(gè)小寫英文字符串a(chǎn)和一個(gè)非負(fù)數(shù)b(0=bz: x=chr(ord(i)+b-26) #如果超過了z就回到了a l.append(x)l=.join(l)print(l) 20、輸入一個(gè)字符串a(chǎn)和一個(gè)正整數(shù)n,判斷a中是否存在長度為n的回文子串。如果存在,則輸出YES,否則輸出NO??键c(diǎn):字符串及其索引的

16、應(yīng)用a=input()b=eval(input()c=len(a)o=0for i in range(c-b+1): k=ai:i+b if k=k:-1 and len(k)=b: o=1 print(YES)if o=0:print(NO)21、N的階乘定義為:N!=N(N1)21請編寫一個(gè)程序,輸出N的階乘的十進(jìn)制表示中從最末一個(gè)非0位開始自低位向高位數(shù)的第K位?,F(xiàn)在給你N和K(0=N=10000,1=K1: for i in range(1,N+1,1): jiecheng=jiecheng*ix=jiechengw=str(jiecheng)w=w.rstrip(0)w=w:-1k=

17、wK-1print(k)22、編寫函數(shù) def repeat(string, n, delim):考點(diǎn):循環(huán)結(jié)構(gòu)、字符串、函數(shù)返回string重復(fù)n次的字符串,并且使用字符串delim分隔。例如,repeat(“ho”, 3, “,”)返回“ho,ho,ho”def repeat(string,n,delim): x= for i in range(n): x=x+string+delim return xstring=input()n=eval(input()delim=input()print(repeat(string,n,delim)考點(diǎn):循環(huán)結(jié)構(gòu)、列表及其內(nèi)置函數(shù)、函數(shù)23、編寫函數(shù)

18、def merge(a, b),合并兩個(gè)列表,其中元素交替來自于兩個(gè)列表。如果一個(gè)列表比另一個(gè)短,則把短的處理完,然后追加長列表中的剩余元素。def merge(a,b): c= l1=len(a) l2=len(b) if l1=l2:優(yōu)化答案def merge(a, b): l= for i in range(min(len(a),len(b): l.append(a.pop(0) #把列表a開頭第一個(gè)元素刪除并將返回值添加到列表l中 l.append(b.pop(0) l.extend(a) #把列表a添加到列表l的尾部 l.extend(b) return l for i in ran

19、ge(l1): c.append(ai) c.append(bi) elif l1l2: for i in range(l2): c.append(ai) c.append(bi) c=c+(ai+1:)return c24、有1、2、3、4個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少?for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=k and i!=j and j!=k: print(i,j,k)25、一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時(shí),

20、共經(jīng)過多少米?第10次反彈多高?def jianban(n): n=n/2 return na=eval(input(請輸入高度:)b=eval(input(請輸入落地次數(shù):)c=ad=ae=a#反彈高度for i in range(b): a=jianban(a)#路程if b=1: c=aelif b=2: c=2*celif b2: for j in range(0,b-2,1): c=c+jianban(d) d=jianban(d) c=c+eprint(經(jīng)過,c,米,第,b,次反彈,a,米,sep=)26、最大公約數(shù)和最小公倍數(shù)的計(jì)算。從鍵盤接收兩個(gè)整數(shù),編寫程序求出這兩個(gè)整數(shù)的最

21、大公約數(shù)和最小公倍數(shù)(兩個(gè)數(shù)的乘積等于這兩個(gè)數(shù)的最大公約數(shù)與最小公倍數(shù)的積。即(a,b)a,b=ab)#求最大公約數(shù)a=eval(input()b=eval(input()c=min(a,b)ys=k=0for i in range(2,c+1): if(a/i)%1=0 and (b/i)%1=0: ys.append(i) k=1if k=0: maxyueshu=1else: maxyueshu=max(ys)print(maxyueshu)#求最小公倍數(shù)minbeishu=(a*b)/maxyueshuprint(%d%minbeishu)27、將1,2,9共9個(gè)數(shù)分成三組,分別組成三

22、個(gè)三位數(shù),且使這三個(gè)三位數(shù)構(gòu)成1:2:3的比例,試求出所有滿足條件的三個(gè)三位數(shù)。 例如:三個(gè)三位數(shù)192,384,576滿足以上條件。for i in range(100,1000): a=2*i b=3*i if 100a1000 and 100b1000: print(i,a,b,sep= )28、若一個(gè)數(shù)(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數(shù)。例如:給定一個(gè)10進(jìn)制數(shù)56,將56加56(即把56從右向左讀),得到121是一個(gè)回文數(shù)。又如:對于10進(jìn)制數(shù)87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884在這里的一步是指進(jìn)行了一次N進(jìn)制的加法,上例最少用了4步得到回文數(shù)4884。def ishui(n): n=str(n) if n=n:-1: return True else: return Falsedef ni(n): n=str(n) n=n

溫馨提示

  • 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

提交評論