完整版python入门精选题计算机二级考试可用_第1页
完整版python入门精选题计算机二级考试可用_第2页
完整版python入门精选题计算机二级考试可用_第3页
完整版python入门精选题计算机二级考试可用_第4页
完整版python入门精选题计算机二级考试可用_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Python入门精选30题1、输入一个三位整数,判断这个数是不是“水仙花数所谓“水仙花数是指一个三位数,其各位数字立方和等于该数,例如:153=13考点:循环结构、分支结构+5八3 +3八3 , 153就是水仙花数.n=eval(inputO)i=na=0while i:a=a+(i%10)*3i=i/10if a=n:printC'yes")else:printf noM)2.随机产生一个两位数的数字,然后用户输入一个两位数的数字,如 果用户输入的数字与随机产生的数字完全相同包括顺序,那么输出 奖励100分;如果用户输入的数字与随机产生的数字相同不包括 顺序,那么输出奖励5

2、0分;如果用户输入的数字与随机产生的数字有一位数相同,那么奖励10分,如果都不相同,那么输入没有奖励.import random考点:产生随机数、取出一个整数各位上 的数、分支结构a=random.randint(10,99) b=eval(inputO) al=a%10 a2=a/10 bl=b%10 b2=b/10 if a=b:print('lOO')elif al=b2 and a2=bl: print".')elif al=bl or a2=b2 or al=b2 or a2=bl: printClO1)else:print('O')

3、3 .在金字塔模式中显示数字编写一个嵌套for循环来显示下面的输出:a=eval(input() for i in range(a): if i=0:考点:循环结构、制表for j in range(a-i):pnntC ,end=,t,) print('r,end=") for j in range(a-i):print(' ,lend='t') printOelif i!=0:for k in range(a-i):pnntC ',end='t') for I in range(0j+l):al=2*lprint(al1en

4、d='f) for y in range(i-l,-l.-l): al=2*y print(altend=,f) for x in range(a-i):pnntC ',end=,t') printQcredits or license jlor tore iniomation.RESTART: C:/Users/3tft/Desktoc./2. py> > z12 48612 48 112 48163262 412 4 8 13 612461632641286 1248 112 4812i inputujr 1 rang*(a):if iss0:for j

5、 tn range(a-lj: print (, ends,t')print C Lend-), for J in ranpeCa-l;:.print (* , end=,t' > print 0ellf i!-0:for k in range(a-f :, print C , end=,t') f x 1 range (0, i-1):al2*lprint (al. endB,t*)for y > ranseCi-,-, -1):al=2*yprint (al. ends,t )for x In ranBe(a-f:, print C , ends,t&#

6、39;) print 04、如果一个素数可以写成2八pl的形式,其中p为一个正整数,那么这个数被称作梅森素数.编写程序找出所有的p<=31的梅森素考点:素数、循环结构、分支结构数.def issushu(n): k=lfor i in range(2,n): a=n/iif aHl=O:k=0return Falseif k=l:return TrueP=1while p<=31:a 二(2p)-lp+=lif issushu(a):print(a.end=' ,)5、写一个函数计算下面的数列考点:循环结构def m(n):S1 m=0 while s<=na=ss=

7、s+lm=m+(a/s) return mn=eval(inputQ) print(m(n)6、神奇的Collatz序列.编写一个名为collatz的函数个名为number的整数参数,如果number是偶数,就打印number/2,并返回该值.否那么打印3*number+l并返回.同时编写主程序,让用户输入一个整数,并不断地调用该函数用第一次的返回值做第二次的参数,以此类推,直到函数返回1.例如用户输考点:函数、循环结构、分支结构入3那么打印输出应为105168421def collatz(number):if number2=0: a=number/2 print return(a)else

8、:b=number*3+l print(b) return(b)number=eval(inputQ)while 1:number=collatz(number)if number=l:break7、一个数如果恰好等于它的除自身外的因子之和,这个数就称为“完数二例如6=1+2+3, 6是完数.编写程序输出1至1000之间的所有完数.def wanshu(n):s=0for i in range(l,n): a=n/iif aWl=0:s=s+iif s=n:return Truefor i in range(l,1001,l):if wanshu(i):print(i?end=' ,)

9、考点:完数、print输出格式、循环结构、 分支结构8、使用turtle绘制一个黄色边框的红色五角星.五角星的每个内角均为36°)import turtle turtle.showturtle turtle pensize(5) turtle.colorC,yellow","red") turtle.beginJillO for i in range(5):turtle.forward(lOO) turtle.nght(144) turtle.forward(lOO)turtle.end.fillQ turtle hideturtle太阳花: impor

10、t turtle turtle pensize(3) turtle.speed(lO)考点:turtle内置函数Jk 2 py C:/UscfS/)£X/Desktop/2 py (3.8.0)File Edit Format Run Options Window Helpim: :»rt turtleturtle, shwturtlgturtle, pensize turtle, color( yellow .turtle. besin_f 111 ()for i In (5):turtle. forvjard(lOO)turtle. riht (144)turtle.

11、for;jard(100)turtle. encLf 111 0turtle. hLdeturtle9、使用turtle绘制奥运五环蓝黑红黄绿import turtle turtle showturtle turtle.pensize(lO) turtle.speed(lO) turtle.color("black") turtlepenup() turtle.goto(0.0) turtle.pendownO turtle.circle(lOO)turtle.color(blue) turtle. penup() turtle goto(-250.0) turtle pe

12、ndownO turtle.circle(lOO)turtleturtle. penslz®< 10:tirtlt."turtle.colarCbla >')turtle. p*nur>0tixt;e. toto(0, 6) turtle, pendown ) turtle. clrcUdOO)turtle.color( blue*)turtle. 8W(2SO.O)turtle, pendcw1.' turtle, circle UOO)turtle. colorCred*)Turtle. phwOturtle. 3.(250)tirtl

13、e. )clrcUClOO:tiatle. colarOellowr)txat】. p4tnz>0tirtle. fo3125. 70,(3,2 5»turtle. t-stvkMi1.1turtle. circle(lOO)turtle. colorCcrMi*)turtle. petiupO.e. toto(12i-70t(>f(L5>>turtle. p«ndc«n()turtle, circle(1009考点:turtle内置函数turtle, color, red") turtlepenupO turtle.goto(2

14、50,0) turtle.pendownO turtle circle(lOO)turtle.color(,yellowM)turtlepenupOturtle goto(-125,-70*(3*0.5)turtle pendownOturtle.circle(lOO)turtle colorCgreen")turtlepenupOturtle. goto(125, -70*(3*0.5)turtle.pendownOturtle circle(lOO)turtle. colorCyellowWed*) turtle.beginJillO for i in range(30):tur

15、tle.forward(lOO) turtle.right(165) turtle.forward(lOO) turtle.end.fillO10、打印9*9乘法表考点:循环结构、分支结构、输出格式1*1=11*3=31*4=42*3=62*4=83*3=93*4=124*4=161*5=52*5=103*5=154*5=201*8=82*6=122*7=142*8=163*6=183 *=213*8=244*6=244*7=284*8=325*6=305*7=355*8=406*6=366*7=426*8=487*7=497*8=56 8*8=641*9=92*9=183 *9=2 一4*9

16、=365*9=456*9=547*9=63 8*9=72 9*9=81for i in range(l.lO):if i=l:printfl 1 = 1")else:for j in range(l,i+l):pnnt(j,"*",i,"=",j*i,end="r) printQ是制表符*td«t Fermat Run Options WtfKlow Help1 In nng«(l. 10):If IT: prlntCl 1 - D 13一:J ranged. 1*1):Drint(J. *< . 1.)pr

17、int 03n 18.0 ShellHie E& Shdi Debug Optcm Wndow HelpPython 3.8.0 (tOct 14 3019. 19:21:23) (MSCt1916 32 bit (k -. dfi wi/G2Typ "help", copyright', *credits- or -MoenseO* tor acre infonwtlon. >>>RBSTART: C: /VftTf/W >/Dt5ktQp/2. py9:92 242 363392 4834-122 51035152 6-J236-

18、182 7-1457-212 8-1638242,9=1839:271620242832362S303540U5 678g55555= 89 88 963 4S6 = 789 * * 777 3542MSI = 6789 66668111、编写程序读取一个大于的正整数,然后显示它所有的最小因子,也称之为素因子即将一个正整数分解质因数.例如:输入整数为 90,输出 90=2*3*3*5.n=eval(inputO) print(n,end="=')while n:fori in range(2,n+l):考点:循环结构求因子、分支结构、输出 格式a=n/iif aHl=O an

19、d a!=l: prinpend ='') breakelif a%l=O and int(a)=l: print(i,end=") breakn=int(a)12、从键盘输入整数n,输出数字方阵.例如:输入n=5,输出如下:12345考点:循环结构、分支结构、制表23451345 1245 12351234n=eval(inputO)for i in range(l,n+l):for j in rangeG,n+l):printQ,end='t')if i=l:printOif i!=l:for k in range(ljl):print(k.end

20、='t) printQn-vaHinrut D)for i in ranged.n4l):for j ir rarse (l.n+1):print G, end1/)if i=l:printOIf 1!=1:f:r k ir. range(1, i, 1.': prlr.t(k, end-1 )printO6123423453456A 一56156126123»>5612361234513、素数是指一对差值为2的素数.如3和5就是一对双素数.编写程序,输入正整数n,输出大于等于n的最小的一对双素数.def issushu(n):考点:循环结构、分支结构、素数k=

21、lfor i in range(2.n): a=n/iif aHl=0:k=0return Falseif k=l:return Truen=eval(inputO)while 1:if issushu(n) and issushu(n+2): print(n,n+2,sep=') breakelse:n=n+l14、反素数逆向拼写的素数是指一个将其逆向拼写后也是一个素数的非回文数.例如:17和71都是素数,所以,17和71都是反素数.编写程序,输入一个正整数,显示大于该数的前10个反素数.考点:函数:素数、回文数def issushu(n):a 二 Truefor i in rang

22、e(2,n):if (n/i)%l=0: a=False return Falseif a=True:return Truedef nixiang(m): m=str(m)m=m::-lm=eval(m) return m def nothuiwenshu(s):s 二st«s)if s=s:-l:return Falseelse:return True z=eval(inputQ) s=0while s<10:z=z+lif issushu(z) and issushu(nixiang(z) and nothuiwenshu(z): s+=l if s<10:print

23、(z,end=' ,)elif s=10:print(z?end=")15、编写一个函数,计算一个整数各个数字的和.使用下1£1的函数头:def sumDigits(n):例如:sumDigits(234)返回9(2+3+4).提示:使用求余运算符%提取 数字,而使用除号去掉提取出来的数字.使用一个循环来反复提取 和去掉每个数字,直到所有数字被提取完为止.编写程序提示用户输 入一个整数,然后显示这个整数所有数字的和.考点:函数、求各位上的数def sumDigits(n):s=0while 1:a=nH10s=s+an=n/10 #取出各位上的数的循环方法if n=

24、0:return sn=eval(inputO) print(sumDigits(n)16.通过键盘输入一串小写字母(a-z)组成的字符串,编写一个测试程序,将字符串中连续出现的重复字符删去(即在一个字符串中, 如果遇到连续重复的字符只出现一次),然后输出处理后的字符串O例如:strl=,aabbccddaabbccddH,输出结果为:"abcdabcd".考点:字符串、列表a=mputO c=0 e=-l k=list(a) for i in a:e+=l b=ord(i) if c=b:ke=''c=bk=xfor x in k if x!='&

25、#39;k=".oin(k) #列表变字符串输出形式 print(k)变形:输入一个字符串a,你需要通过将字符串中连续的字母表示为:字母+出现次数的方式来压缩这个字符串.例如“aabcccccaaa压缩输出成"a2blc5a3,0x 二input.s=lc=xO #初始字母.从此开始缩减字母显示次数ss="" #创立空字符串for i in range(ljen(x):if xi = c:s += 1 ss+=c+str(s)c=xis = 1ss+=c+str(s)号表示字符串连接print(ss)17、编写下面的函数合并两个有序列表构成一个新的有序列

26、表:def merge(listljist2):编写测试程序提示用户输入两个有序列表,然后显示合并后的升序列 表.要求:不允许使用系统提供的sort方法.输入格式:两个有序列表(列表元素之间空格分隔,结尾无空格,回车考点:函数、列表换行输入下一个有序列表)def merge(listl,list2):Iist3=listl+list2list31=Qfor x in Iist3:x=int(x)Iist31 append(x)Iist31=sorted(list31,reverse=False)return Iist31al 二 input.bl=list(al.splitf *) a2=in

27、putQ b2=list(a2.split('') print(merge(bl,b2)18、输入30个数,输出其中最大的数.考点:循环结构、列表与max函数方法一maxi = 0for i in range(30): x=eval(inputQ) if x>maxl:maxl=x print(maxl)方法二a=Qfor i in range(30): x=eval(inputO) a.append(x)maxi=max print(maxl)19、初始化一个小写英文字符串a和一个非负数b(0<=b<26),将a中的每个小写字符替换成字母表中比它大b的字母.

28、这里将字母表的z和a相连,如果超过了 z就回到了 a.例如a=',cagy, b=3,那么输出:考点:字符串、Unicode码与ord、chr函数fdjb.a=mputO b=eval(inputQ)1=0for i in a:x=chr(ord(i)+b)if x>,z,:x=chr(ord(i)+b-26) #如果超过了 z 就回到了 al.append(x)l=".join(l)print(l)20、输入一个字符串a和一个正整数n,判断a中是否存在长度为n的回文子串.如果存在,那么输出YES,否那么输出NO.考点:字符串及其索引的应用a=inputO b=eval

29、(inputO) c=len(a) o=0for i in range(c-b+l): k=ai:i+bif k=k:-l and len(k)=b: o=l printCYES')if o=0:printCNO)21、N的阶乘定义为:N!=Nx(N-1)xx2xl请编写一个程序,输出N的阶乘的十进制表示中从最末一个非.位开始自低位向高位数的第K位.现在给你N和K(0<=N<=10000f1<=K<=5),请你输出要求的数字(保证存在).例如:N=5,K=2,那么输出1note: (5!=120);N=8,K=3,结果为0note:(8!=40320)考点:循环

30、结构求阶乘、字符串索引、strip方法N=eval(input() K=eval(inputO) jiecheng=l if N>1:for i in range(l,N+l,l): jiecheng=jiecheng*i x=jiecheng w=str(jiecheng) w = w.rstnpC.') w=w:-l k=wK-l print(k)22、编写函数 def repeat(string, n, delim):返回string重复n次的字符串,并且使用字符串delim分隔.例如,repeat(uhon, 3,“,)返回“皿皿网def repeat(string.n.

31、delim):x=""for i in range(n): x=x+string+delimreturn xstring =inputOn=eval(inputO)delim=input.pri nt(repeat(stringrn,d eli m)考点:循环结构、字符串、函数23、编写函数def merge(a, b),合并两个列表,其中元素交替来自于两个列表.如果一个列表比另一个短,那么把短的处理完,然后追加长列表中的剩余元素.def merge(a.b):C 二口ll=len(a)I2=len(b)if I1=I2:for i in range(ll): c.appe

32、nd(ap) c append(bi)elifll<l2:for i in range(ll): c.append(ap) c append(bi)c=c+(bp+i:)elifll>l2:for i in range(l2):c append(ai) c.append(bi)考点:循环结构、列表及其内置函数、函数优化答案def merge(at b):I=ofor i in range(min(len(a),len(b):l.append(a.pop(0) #把列表a开头第一个元素删除并将返 回值添加到列表I中l.append(b,pop(0)l.extend(a) #把列表a添

33、加到列表I的尾部I extend(b)return Ic=c+(ai+l:) return c24、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?for i in range(l,5):for j in range(l,5):for k in range(1.5):if i!=k and i!=j and j>=k:print(i,j,k)25、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?def jianban(n):n=n/2return na=eval(input(请输入高度:“

34、)b=eval(input(请输入落地次数:)e=a#反弹高度for i in range(b): a=jianban(a)#路程if b=l: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.经过工“米第“b"次反弹米:sep=Q26、最大公约数和最小公倍数的计算.从键盘接收两个整数,编写程序求出这两个整数的最大公约数和最小公倍数(两个数的乘积等于这两个数的最大公约数与最小公倍数的积.即(a,b)xa,b=axb)#求最大公约数 a=eval(input

35、O) b=eval(inputQ) c=min(a,b) ys 二口 k=0for i in range(2,c+l):if(a/i)%l=0 and (b/i)Wl=0: ys.append(i) k=lif k=0:maxyueshu=l else:maxyueshu=max(ys) print(maxyueshu) #求最小公倍数 minbeishu=(a*b)/maxyueshu print(MHd"%minbeishu)27、将1, 2,9共9个数分成三组,分别组成三个三位数,且使 这三个三位数构成1 :2 :3的比例,试求出所有满足条件的三个三位 数.例如:三个三位数192, 384, 576满足以上条件.for i in range(100,1000):a=2*ib=3*iif 100<a<1000 and 100<b<1000:print(i.a,b,sep="')28、假设一个数(首位不为零)从左向右读与从右向左读都一样,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论