




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上Python入門 精選30題考點:循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)1、輸入一個三位整數(shù),判斷這個數(shù)是不是“水仙花數(shù)”;所謂“水仙花數(shù)”是指一個三位數(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. 隨機產(chǎn)生一個兩位數(shù)的數(shù)字,然后用戶輸入一個兩位數(shù)的數(shù)字,如果用戶輸入的數(shù)字與 隨機產(chǎn)生的數(shù)字完全相同(包括順序),則輸出獎勵 100 分;
2、如果用戶輸入的數(shù)字與隨機產(chǎn)生的數(shù)字相同(不包括順序), 則輸出獎勵 50 分;如果用戶輸入的數(shù)字與隨機產(chǎn)生的數(shù)字有一位數(shù)相同,則獎勵 10 分,如果都不相同,則輸入沒有獎勵??键c:產(chǎn)生隨機數(shù)、取出一個整數(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: pr
3、int('10')else: print('0') 3.在金字塔模式中顯示數(shù)字(編寫一個嵌套 for 循環(huán)來顯示下面的輸出) : a=eval(input()for i in range(a):考點:循環(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
4、 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 range(a-i): print(' ',end='t') print()考點:素數(shù)、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)4、如果一個素數(shù)可以寫成2 p -1的形式,其中p為一個正整數(shù),那么這個數(shù)被稱作梅森素數(shù)。編寫程序找出所有的p<
5、;= 31的梅森素數(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、寫一個函數(shù)計算下面的數(shù)列考點:循環(huán)結(jié)構(gòu)+ + +def m(n): s=1 m=0 while s<=n: a=s s=s+1 m=m+(a/s) return m n=eval(input()print(m(n)考點:函數(shù)、循環(huán)結(jié)構(gòu)、
6、分支結(jié)構(gòu)6、神奇的 Collatz 序列。編寫一個名為 collatz 的函數(shù),它接收一個名為 number 的整數(shù)參數(shù), 如果 number 是偶數(shù),就打印 number/2,并返回該值。否則打印 3*number+1 并返回。同 時編寫主程序,讓用戶輸入一個整數(shù),并不斷地調(diào)用該函數(shù)(用第一次的返回值做第二次的參數(shù),以此類推) ,直到函數(shù)返回 1. 例如用戶輸入 3 則打印輸出應(yīng)為 10 5 1684 2 1def collatz(number): if number%2=0: a=number/2 print(a) return(a) else: b=number*3+1 print(b)
7、 return(b)number=eval(input()while 1: number=collatz(number) if number=1: break7、一個數(shù)如果恰好等于它的除自身外的因子之和,這個數(shù)就稱為“完數(shù)”。例如 6=1+2+3, 6 是完數(shù)。編寫程序輸出 1 至 1000 之間的所有完數(shù)。考點:完數(shù)、print輸出格式、循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)def wanshu(n): s=0 for i in range(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):
8、 print(i,end=' ') 考點:turtle內(nèi)置函數(shù)8、使用 turtle 繪制一個黃色邊框的紅色五角星。(五角星的每個內(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(144) turtle.forward(100)turtle.end_fill()turtle
9、.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 繪制奧運五環(huán)(藍黑紅黃綠)import turtleturtle.showturtleturtle.pensize(10)turtle.s
10、peed(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()考點:turtle內(nèi)置函數(shù)turtle.circle(100)turtle.color("red")turtle.penup()turtle.goto(250,0)turtle.pendown()turtle.cir
11、cle(100)turtle.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)考點:循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)、輸出格式10、打印9*9乘法表for i in range(1,10): if i=1: print("1 * 1 =
12、1") else: for j in range(1,i+1): print(j,"*",i,"=",j*i,end="t") #”t”是制表符 print()考點:循環(huán)結(jié)構(gòu)求因子、分支結(jié)構(gòu)、輸出格式11、編寫程序讀取一個大于1的正整數(shù),然后顯示它所有的最小因子,也稱之為素因子(即將一個正整數(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 an
13、d a!=1: print(i,end='*') break elif a%1=0 and int(a)=1: print(i,end='') break n=int(a)12、從鍵盤輸入整數(shù)n,輸出數(shù)字方陣。例如:輸入n=5,輸出如下: 1 2 3 4 5 考點:循環(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(
14、) if i!=1: for k in range(1,i,1): print(k,end='t') print() 13、素數(shù)是指一對差值為2的素數(shù)。如3和5就是一對雙素數(shù)。編寫程序,輸入正整數(shù)n,輸出大于等于n的最小的一對雙素數(shù)。考點:循環(huán)結(jié)構(gòu)、分支結(jié)構(gòu)、素數(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,
15、sep=' ') break else: n=n+1 14、反素數(shù)(逆向拼寫的素數(shù))是指一個將其逆向拼寫后也是一個素數(shù)的非回文數(shù)。例如:17和71都是素數(shù),所以,17和71都是反素數(shù)。編寫程序,輸入一個正整數(shù),顯示大于該數(shù)的前10個反素數(shù)。考點:函數(shù):素數(shù)、回文數(shù)def 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 nothu
16、iwenshu(s): s=str(s) if s=s:-1: return False else: return Truez=eval(input()s=0while s<10: z=z+1 if issushu(z) and issushu(nixiang(z) and nothuiwenshu(z): s+=1 if s<10: print(z,end=' ') elif s=10: print(z,end='')15、編寫一個函數(shù),計算一個整數(shù)各個數(shù)字的和。使用下面的函數(shù)頭:def sumDigits(n):例如:sumDigits(234)
17、返回9(2+3+4)。提示:使用求余運算符%提取數(shù)字,而使用除號/去掉提取出來的數(shù)字。使用一個循環(huán)來反復(fù)提取和去掉每個數(shù)字,直到所有數(shù)字被提取完為止。編寫程序提示用戶輸入一個整數(shù),然后顯示這個整數(shù)所有數(shù)字的和??键c:函數(shù)、求各位上的數(shù)def sumDigits(n): s=0 while 1: a=n%10 s=s+a n=n/10 #取出各位上的數(shù)的循環(huán)方法 if n=0: return sn=eval(input()print(sumDigits(n)16、通過鍵盤輸入一串小寫字母(az)組成的字符串,編寫一個測試程序,將字符串中連續(xù)出現(xiàn)的重復(fù)字符刪去(即在一個字符串中,如果遇到連續(xù)重復(fù)的
18、字符只出現(xiàn)一次),然后輸出處理后的字符串。例如:str1="aabbccddaabbccdd",輸出結(jié)果為:"abcdabcd"??键c:字符串、列表a=input()c=0e=-1k=list(a)for i in a: e+=1 b=ord(i) if c=b: ke=' ' c=bk=x for x in k if x!=' 'k=''.join(k) #列表變字符串輸出形式print(k)變形:輸入一個字符串a(chǎn),你需要通過將字符串中連續(xù)的字母表示為:字母+出現(xiàn)次數(shù)的方式來壓縮這個字符串。例如 &quo
19、t;aabcccccaaa"壓縮輸出成 "a2b1c5a3"。x=input()s=1c=x0 #初始字母,從此開始縮減字母顯示次數(shù)ss="" #創(chuàng)建空字符串for i in range(1,len(x): if xi = c: s += 1 else: ss+=c+str(s) c=xi s = 1ss+=c+str(s) #+號表示字符串連接print(ss)17、編寫下面的函數(shù)合并兩個有序列表構(gòu)成一個新的有序列表:def merge(list1,list2):編寫測試程序提示用戶輸入兩個有序列表,然后顯示合并后的升序列表。要求:不允許使用
20、系統(tǒng)提供的sort方法??键c:函數(shù)、列表輸入格式:兩個有序列表(列表元素之間空格分隔,結(jié)尾無空格,回車換行輸入下一個有序列表)def merge(list1,list2): list3=list1+list2 list31= for x in list3: x=int(x) list31.append(x) list31=sorted(list31,reverse=False) return list31a1=input()b1=list(a1.split(' ')a2=input()b2=list(a2.split(' ')print(merge(b1,b2)
21、18、輸入30個數(shù),輸出其中最大的數(shù)??键c:循環(huán)結(jié)構(gòu)、列表與max函數(shù)方法一max1=0for i in range(30): x=eval(input() if x>max1: max1=xprint(max1)方法二a=for i in range(30): x=eval(input() a.append(x)max1=max(a)print(max1)考點:字符串、Unicode碼與ord、chr函數(shù)19、初始化一個小寫英文字符串a(chǎn)和一個非負數(shù)b(0<=b<26), 將a中的每個小寫字符替換成字母表中比它大b的字母。這里將字母表的z和a相連,如果超過了z就回到了a。例如
22、a="cagy", b=3,則輸出 :fdjb.a=input()b=eval(input()l=for i in a: x=chr(ord(i)+b) if x>'z': x=chr(ord(i)+b-26) #如果超過了z就回到了a l.append(x)l=''.join(l)print(l) 20、輸入一個字符串a(chǎn)和一個正整數(shù)n,判斷a中是否存在長度為n的回文子串。如果存在,則輸出YES,否則輸出NO。考點:字符串及其索引的應(yīng)用a=input()b=eval(input()c=len(a)o=0for i in range(c-
23、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)××2×1請編寫一個程序,輸出N的階乘的十進制表示中從最末一個非0位開始自低位向高位數(shù)的第K位?,F(xiàn)在給你N和K(0<=N<=10000,1<=K<=5),請你輸出要求的數(shù)字(保證存在)。例如:N=5,K=2,則輸出1 note:(5!=120); N=8,K=3,結(jié)果為0 note:(8!=40320)考點:循環(huán)結(jié)構(gòu)
24、求階乘、字符串索引、strip方法N=eval(input()K=eval(input()jiecheng=1if N>1: for i in range(1,N+1,1): jiecheng=jiecheng*ix=jiechengw=str(jiecheng)w=w.rstrip('0')w=w:-1k=wK-1print(k)22、編寫函數(shù) def repeat(string, n, delim):考點:循環(huán)結(jié)構(gòu)、字符串、函數(shù)返回string重復(fù)n次的字符串,并且使用字符串delim分隔。例如,repeat(“ho”, 3, “,”)返回“ho,ho,ho”def
25、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)考點:循環(huán)結(jié)構(gòu)、列表及其內(nèi)置函數(shù)、函數(shù)23、編寫函數(shù)def merge(a, b),合并兩個列表,其中元素交替來自于兩個列表。如果一個列表比另一個短,則把短的處理完,然后追加長列表中的剩余元素。def merge(a,b): c= l1=len(a) l2=len(b) if l1=l2:優(yōu)化答
26、案def merge(a, b): l= for i in range(min(len(a),len(b): l.append(a.pop(0) #把列表a開頭第一個元素刪除并將返回值添加到列表l中 l.append(b.pop(0) l.extend(a) #把列表a添加到列表l的尾部 l.extend(b) return l for i in range(l1): c.append(ai) c.append(bi) elif l1<l2: for i in range(l1): c.append(ai) c.append(bi) c=c+(bi+1:) elif l1>l2:
27、for i in range(l2): c.append(ai) c.append(bi) c=c+(ai+1:)return c24、有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(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次落地時,共經(jīng)過多少米?第10次反彈多高?def jianban(n): n=n/2 return
28、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 b>2: for j in range(0,b-2,1): c=c+jianban(d) d=jianban(d) c=c+eprint("經(jīng)過",c,"米","第",b,"次反彈",a,"米",sep
29、="")26、最大公約數(shù)和最小公倍數(shù)的計算。從鍵盤接收兩個整數(shù),編寫程序求出這兩個整數(shù)的最大公約數(shù)和最小公倍數(shù)(兩個數(shù)的乘積等于這兩個數(shù)的最大公約數(shù)與最小公倍數(shù)的積。即(a,b)×a,b=a×b)#求最大公約數(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ù)
30、minbeishu=(a*b)/maxyueshuprint("%d"%minbeishu)27、將1,2,9共9個數(shù)分成三組,分別組成三個三位數(shù),且使這三個三位數(shù)構(gòu)成1:2:3的比例,試求出所有滿足條件的三個三位數(shù)。 例如:三個三位數(shù)192,384,576滿足以上條件。for i in range(100,1000): a=2*i b=3*i if 100<a<1000 and 100<b<1000: print(i,a,b,sep=' ')28、若一個數(shù)(首位不為零)從左向右讀與從右向左讀都一樣,我們就將其稱之為回文數(shù)。例如:給定一個10進制數(shù)56,將56加56(即把56從右向左讀),得到121是一個回文數(shù)。又如:對于10進制數(shù)87: STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884在這里的一步是指進行了一次N進制的加法,上例最少用了4步得到回文數(shù)4884。def ishui(n): n=str(n) if n=n:-1: return True else: return Falsedef ni(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)122交通安全日總結(jié)范文(10篇)
- 中華傳統(tǒng)文化教育心得體會(8篇)
- 城區(qū)洪排澇通道工程初步設(shè)計方案
- 行政管理的市場導(dǎo)向及試題答案分析
- 現(xiàn)代數(shù)據(jù)庫技術(shù)概述試題及答案
- 2025年多式聯(lián)運信息平臺在物流園區(qū)中的應(yīng)用優(yōu)化與行業(yè)協(xié)同發(fā)展研究
- 工業(yè)互聯(lián)網(wǎng)平臺霧計算協(xié)同在環(huán)保監(jiān)測中的應(yīng)用案例報告
- 軟件設(shè)計師考試基礎(chǔ)能力試題及答案
- 行政管理專業(yè)化考試的挑戰(zhàn)與試題及答案
- 行政法學(xué)身份意識與試題答案分析
- 教師語言與溝通藝術(shù)知到智慧樹章節(jié)測試課后答案2024年秋溫州大學(xué)
- 大數(shù)據(jù)時代零食很忙營銷現(xiàn)狀及策略的優(yōu)化
- SJG 39-2017 深圳市電動自行車充電庫(棚)工程技術(shù)規(guī)程
- 新個人所得稅政策培訓(xùn)知識培訓(xùn)課件
- 食堂食材配送采購?fù)稑朔桨福夹g(shù)標)
- 2025年全國大學(xué)生百科知識競賽題庫及答案(共740道題)
- 移動通信網(wǎng)絡(luò)流量分析與優(yōu)化策略制定
- 術(shù)中低體溫預(yù)防
- 人力資源管理數(shù)字化轉(zhuǎn)型解決方案
- 《電力系統(tǒng)仿真概述》課件
- 2024年版水利水電工程單元工程單元工程質(zhì)量驗收評定表
評論
0/150
提交評論