python练习题-答案_第1页
python练习题-答案_第2页
python练习题-答案_第3页
python练习题-答案_第4页
python练习题-答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、Python练习题库By郑红波2017-12-19一、填空题1 .Python标准库math中用来计算平方根的函数是。(sqrt)2 .在Python中表示空类型。(None)3 .列表、元组、字符串是Python的(有序?无序)序列。(有序)4 .查看变量类型的Python内置函数是。(type()5 .查看变量内存地址的Python内置函数是。(id()6 .表达式1,2,3*3的执行结果为。(1,2,3,1,2,3,1,2,3)7 .list(map(str,1,2,3)的执行结果为。(1',2',3')8 .已知x=3,并且id(x)的返回值为496103280

2、,那么执行语句x+=6之后,表达式id(x)=496103280的值为。(False)9 .已知x=3,那么执行语句x*=6之后,x的值为。(18)10 .表达式“3in1,2,3,4”的值为。(False)11 .假设列表对象aList的值为3,4,5,6,7,9,11,13,15,17,那么切片aList3:7得到的值是。(6,7,9,11)12 .使用列表推导式生成包含10个数字5的列表,语句可以写为。(5foriinrange(10)13 .假设有列表a='name','age','sex'和b='Dong',38,

3、9;Male',请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为。(c=dict(zip(a,b)14 .任意长度的Python列表、元组和字符串中最后一个元素的下标为。(-1)15 .Python语句”.join(list('helloworld!')执行的结果是。('helloworld!')16 .转义字符n'的含义是。(回车换行)17 .Python语句list(range(1,10,3)执行结果为。(1,4,7)18 .切片操作list(range(6):2执行结果为。

4、(0,2,4)19 .表达式ab'in'acbed'的值为。(False)20 .Python3.x语句print(1,2,3,sep=':')的输出结果为。(1:2:3)21 .表达式int(4*0.5)的值为。(2)22 .达式sorted(111,2,33,key=lambdax:-len(str(x)的值为。(111,33,2)23 .已知列表对象x='11','2','3',则表达式max(x)的值为。(3')24.表达式min('11','2','

5、3')的值为。('11')25.已知列表对象x='11','2','3',贝U表达式max(x,key=len)的值为。('11')26 .语句x=(3,)执行后x的值为。(3,)27 .语句x=(3)执行后x的值为。(3)28 .已知x=1:2,那么执行语句x2=3之后,x的值为。(1:2,2:3)29 .字典对象的方法返回字典中的“键-值对”列表。(items()30 .使用列表推导式得到100以内所有能被13整除的数的代码可以写作。iforiinrange(100)ifi%13=0)31 .表达式3*

6、2的值为。(9)32 .表达式3*2的值为。(6)33 .已知x=3,5,7,那么执行语句xlen(x):=1,2之后,x的值为。(3,5,7,1,2)34 .表达式list(zip(1,2,3,4)的值为。(1,3),(2,4)35 .已知x=1,2,3,2,3,执行语句x.pop()之后,x的值为。(1,2,3,2)36 .表达式xforxin1,2,3,4,5ifx<3的值为。(1,2)37 .表达式indexforindex,valueinenumerate(3,5,7,3,7)ifvalue=max(3,5,7,3,7)的值为。(2,4)38 .已知path=r'c:t

7、est.html',那么表达式path:-4+'htm'的值为。('c:test.htm')39 .表达式d,%c'%(65,65)的值为。('65,A')40 .表达式Thefirst:1,thesecondis0'.format(65,97)的值为o('Thefirst:97,thesecondis65')41 .表达式':'.join('abcdefg'.split('cd')的值为。('ab:efg')42 .表达式isinstance

8、('abcdefg',str)的值为。(True)43 .表达式'Helloworld.IlikePython.'.find('python')的值为。(-1)44 .表达式','.join('abcccnnnddd'.split()的值为。('a,b,ccc,ddd')45 .已知x='123'和y='456',那么表达式x+y的值为。('123456')46 .表达式'abcab'.replace('a','

9、yy')的值为。('yybcyyb')47 .已知table=''.maketrans('abcw','xyzc'),那么表达式Hellowworld'.translate(table)的值为o('Helloccorld')48 .已知x='b':1,'a':2,那么执行语句x.update(a,:3,d':4)之后,表达式sorted(x.items()的值为。('a',3),('b',1),('d',4)49

10、 .已知x=list(range(20),那么语句print(x100:200)的输出结果为。(口)50 .表达式sorted('a':9,'b':3,'c':78.values()的值为。(3,9,78)51 .type(1+2*3.14)的结果是:floatclass二、阅读程序1 .写出下面代码的执行结果。defJoin(List,sep=None):return(sepor',').join(List)print(Join('a','b','c')print(Join(

11、9;a','b','c',':')答:a,b,ca:b:c2 .若k为整数,下述while循环执行的次数为:9k=1000whilek>1:print(k)k=k/23 .写出下面代码的运行结果。defSum(a,b=3,c=5):returnsum(a,b,c)print(Sum(a=8,c=2)print(Sum(8)print(Sum(8,2)答:1316154 .写出下列程序输出结果i=1whilei+1:ifi>4:print("%d"%i)i+=1breakprint("%d"

12、;%i)i+=1i+=15 .写出下面代码的运行结果。defSum(*p):returnsum(p)print(Sum(3,5,8)print(Sum(8)print(Sum(8,2,10)答:16206 .下面程序的执行结果是。(1)s=0foriinrange(1,101):s+=ielse:print(1)7 .下面程序的执行结果是。(1275)s=0foriinrange(1,101):s+=iifi=50:print(s)breakelse:print(1)8 .阅读下面的代码,输出结果为x=list(range(10)forindex,valueinenumerate(x):ifv

13、alue=3:xindex=5else:print(x)答:将列表x中值为3的元素修改为5。9 .阅读下面的代码,解释其功能:> >>importstring> >>x=string.ascii_letters+string.digits> >>importrandom> >>print(".join(random.sample(x,10)答:输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。10.下面的代码输出结果为。(3)defdemo():x=5x=3demo()(5,6,1,2,3,4)pr

14、int(x)11 .下面程序运行的结果为defdemo(lst,k):ifk<len(lst):returnlstk:+lst:klst=1,2,3,4,5,6demo(lst,4)12 .下面程序运行的结果为appyNewYear!H。deffoo(s):ifs="":returnselse:returns1:+s0print(foo('HappyNewYear!')13 .下面程序运行的结果是1:'aa',2:'bb',3:'ff,6:'dd',87:'ee'。11 =1,2,

15、3,6,87,312 ='aa','bb','cc','dd','ee','ff'd=forindexinrange(len(l1):dl1index=l2indexprintd14 .下面程序运行的结果为3.21.2.list1=1,2list2=list1:list10=3print(list1,list2)15 .下面程序运行的结果为恭喜,你已获得我公司的面试机会!age,subject,college=(24,“计算机"/非重点")if(age>25andsubje

16、ct="电子信息工程")or(college="重点"andsubject="电子信息工程")or(age<=28andsubject="计算机"):print("恭喜,你已获得我公司的面试机会!")else:print("抱歉,你未达到面试要求")16 .下面程序运行的结果为fornuminrange(2,10):ifnum%2=0:continueprint("Findaoddnumer",num)121321432154321654321答案:

17、Findaoddnumer3Findaoddnumer5Findaoddnumer7Findaoddnumer917 .下面程序打印结果:foriinrange(1,7):print(''*2*(6-i),end=")forjinrange(i,0,-1):print(j,end="")print()18 .下面程序输入>>>rev(rloveyou')返回值为youloveIdefrev1(s):s=s.split()s1=''.join(reversed(s)returns119 .阅读程序,打印结果是

18、1000defaddInterest(balance,rate):newBalance=balance*(1+rate)balance=newBalancedefmain():amount=1000rate=0.05addInterest(amount,rate)print(amount)main()20 .阅读程序,打印结果是defdemo(newitem,old_list=):old_list.append(newitem)returnold_listdefmain():print(demo('a')print(demo('b')main()答案:'

19、a''a','b'21 .阅读程序,打印结果是deffunc5(a,b,*c):print(a,b)print("lengthofcis%d,cis"%len(c),c)func5(1,2,3,4,5,6)答案:12lengthofcis4,cis(3,4,5,6)22 .阅读程序,打印结果是(2.5,3,4)defdemo(*para):avg=sum(para)/len(para)g=iforiinparaifi>avgreturn(avg,)+tuple(g)print(demo(1,2,3,4)23 .阅读程序,打印结果

20、是deff(w=1,h=2):print(w,h)f()f(w=3)f(h=7)f(a=3)答案:123217错误24 .阅读程序,打印结果是defsort(number1,number2):ifnumber1<number2:returnnumber1,number2else:returnnumber2,number1n1,n2=sort(3,2)print('n1is',n1)print('n2is',n2)答案:n1is2n2is325 .阅读程序,打印结果是1060defdemo(m,n):ifm>n:m,n=n,mp=m*nwhilem!=

21、0:r=n%mn=mm=rreturn(n,p/n)print(demo(20,30)三、程序填空题1 .下面代码的功能是,随机生成50个介于1,20之间的整数,然后统计每个整数出现频率。请把缺少的代码补全。importrandomx=random.(1,20)foriinrange()r=dict()foriinx:ri=r.get(i,)+1fork,vinr.items():print(k,v)答:分别填写randint、50、02 .生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高频字符,以5个位右对齐输出个数。请把缺少的代码补全。importr

22、andomx=string.ascii_letters+string.digits+string.punctuationy=foriinrange(1000)d=dict()forchiny:dch=d.get(ch,0)+1items=list(d.items()items.sort(,reverse=True)foriinrange(20):word,count=itemsiprint(%(word,count)答案:importstring、random.choice(x)、key=lambdax:x1、"-15s%5d”3 .用户输入5,打印如右图字符金字塔图形,请补全代码:

23、n=input('输入行数:')foriinrange(1,n+1):print(,end='')forjinrange(1,2*i):Iprint('&',)print()答案:n=int(n),''*(n-i),end="4 .质因数分解,如输入60,则得到60=2*2*3*5.请补全代码:x=eval(input("请输入小于1000的整数:")k=2whilex>1:ifprint(k,end="")x=x/kifx>1:print("*&qu

24、ot;,end="")else答案:print(x,"=",end=""),x%k=0,k+=15 .验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和,请补全代码。importmathx=eval(input(输入一个数”)whilex<6orx%2=1:#大于6的偶数x=eval(input(输入一个数”)forn1in:m1=int(math.sqrt(n1)+1)foriinrange(2,m1):#2-sqrt(n1)if:breakelsem2=math.ceil(math.sqrt(n2)+1)forji

25、nrange(2,m2):ifn2%j=0andj<n2:else:print(x,'=',n1,'+',n2)答案:range(3,x/2,2),n1%i=0,n2=x-n1,break6.右对齐九九乘法表,请补全代码:foriinrange(1,10):s1=str(i)+'火+str(j)+'='+str(i*j)print()print()3X1=23X2-63X3=94X1=44K±=£4X3=124X4=165X1=56X2=105乂3=133父4=206父5=%6X166X36X3=1BBXR&am

26、p;Xi=306X6=367X1-77X2=H7X3217工4寸97X&=35?X6=2父=将SX1=83K2-fiBX3=248X4328X&=40BXG=B3X7-568工寇加9X1E&K21L&X3-£79KW-369X559X6-54侬9X8-72IX1=19K9>«1答案:forjinrange(1,i+1):,'%8s'%(s1),end="7.输出右边图形,请补充程序:fori:print('*'-1*I2*inter(30)foriinrange(6,0,-1):print()答

27、案:inrange(6)('*'(2*).center(5*n)8.下面代码判断回文串,请补全代码:s='雾锁山头山锁雾low=0high=whilelow<high:if:#倒序和顺序不一样print(s,"不是回文")low+=1else:print(s,"是回文串")答案:len(s)-1,slow!=shigh,break,high-=1;9.输出右边图形,请补充程序:s="'Iamateacher!Youarestudents!'''print('='*30

28、)print('统计信息'.center(28)print()item_width=25line=s.count('n')+1word=s.split()char=list(s)#包含空格、标点符号w_num=0forwinword:w_num+=print('%-*s%5d'%(item_width-3,'行数',line)print('%-*s%5d'%(,'单词数,len(word)行冢坦词敖李蔚致(缸舍空翻iff*1不也含空嬉)*+13311print('%-*s%5d'%(item

29、_width-10,'字符数(包含空格)',)print('%-*s%5d'%(item_width-11,'字符数(不包含空格),w_num)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,110.输出右边图形,请补充程序:de

30、fdemo(t):print(1)line=1,1foriinrange(2,t):forjinrange(0,len(line)-1):r.append()line=1+r+1print(line)demo()答案:print(1,1),r=口,linej+linej+1,10四、编程题1 .编写程序,在D盘根目录下创建一个文本文件test.txt,并向其中写入字符串helloworld。fp=open(r'D:test.txt',a+')print(helloworld',file=fp)fp.close()2 .编写程序,生成一个包含20个随机整数的列表,

31、然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。(提示:使用切片。)答:importrandomx=random.randint(0,100)foriinrange(20)print(x)y=x:2y.sort(reverse=True)x:2=yprint(x)3 .编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串NO。再编写测试函数。答:importmathdefIsPrime(v):n=int(math.sqrt(v)+1)foriinrange(2,n):ifv%i=0:return'No'else:return'Yes'

32、print(IsPrime(77)4 .编写函数,模拟Python内置函数sorted(lst)。答:defsorted(v):t=v:r=口whilet:tt=minr.append(tt)t.remove(tt)returnrprint(sorted(1,3,2,4)5 .编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。答:importrandomx=random.randint(0,100)foriinrange(20)print(x)y=x0:10y.sort()x0:10=yy=x10:20y.sort(reverse=True)x

33、yx<000<=x<5x5<=x<103x-510<=x<200.5x-220<=x0x10:20=yprint(x)6 .编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。答:x=input('Pleaseinputanintegerof4digitsmeaningtheyear:')x=eval(x)ifx%400=0or(x%4=0andnotx%100=0):print('Yes')else:print('No

34、')7 .编写程序,实现分段函数计算,如下表所示。答:x=input('Pleaseinputx:')x=eval(x)ifx<0orx>=20:print(0)elif0<=x<5:print(x)elif5<=x<10:print(3*x-5)elif10<=x<20:8 .已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同学,最后打印最高分、最低分、平均分、最高分同学。scores="ZhangSan":45,"LiSi":78,"Wa

35、ngWu":40,"ZhouLiu":96,"ZhaoQi":65,"SunBa":90,"ZhengJiu":78,"WuShi":99,"DongShiyi":60highest=max(scores.values()lowest=min(scores.values()average=sum(scores.values()/len(scores)highestPerson=nameforname,scoreinscores.items()if/score=hig

36、hest#分行print(highest,lowest,average,highestPerson)9 .统计不及格的学生及成绩,要求:给定一些学生姓名和成绩;询问用户是否还需要输入更多的学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩。d="张三”,76,"李四",45,"王五",83,"郑六",66,'a',54,'c',68,'b',89s1=input("输入数据YorN:").strip()#去掉前后空格whiles1=&

37、#39;Y':s2=input("请输入学生及成绩(空格隔开)")name,grade=s2.split()d.append(name,grade)#dname=int(grade)s1=input("继续输入YorN:").strip()else:print(d)print("不及格白肉名单:")forname,gradeind:iffloat(grade)<60:print("姓名:",name,"t","成绩:",grade)10 .由用户一个一个输入一个

38、数值型列表,然后将每个元素逐一打印。lst=n=eval(input(请输入数字个数:”)foriinrange(n):number=eval(input(请输入数字:")lst.append(number)forvalueinlst:print(value,end='')1111111.序列求和,n通过用户输入:1一一一.(D234nn=int(input(清输入N的值:')s=0fh=1foriinrange(1,n+1):s+=fh*1/i#求和语句fh=-fh#正负交替print("1-1/2+1/3-1/4+(-1(n-1)/n="

39、;,s,i)12 .生成一个包含50个两位随机整数的列表,然后删除其中的所有奇数(提示从后向前删)lst=random.randint(1,100)foriinrange(50)print('50个随机两位整数:,lst)k=len(lst)-1foriinrange(k,-1,-1):#从后往前删,减少列表元素移动iflsti%2=1:lst.pop(i)print("偶数为",lst)13 .恺撒(kaisa)密码:原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ,对应的密文为:DEFGHIJKLMNOPQRSTUVWXYZABC,请设计程序实现之。p

40、laincode=input('请输入明文:')forpinplaincode: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)pr

41、int(c,end='')else:print(p,end='')14 .如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。请编写一个函数判断是否为回文串,同时编写测试代码检验回文串。defisPalindrome(s)ifs=s:-1:#切片操作,倒序和顺序一样returnTrueelse:returnFalses=input('inputastring:')ifisPalindrome(s):print('%sisapalindrome%s)else:print('is%sotapalindrome!&#

42、39;%s)15 .输入一串字符,统计每个字符数,用字典输出s=input("输入一行字符串或句子:")char_counts=forcharins:char_countschar=char_counts.get(char,0)+1print(char_counts)16 .生成包含100个随机字符的字符串,然后统计前20个高频字符.importstring,randomstr1=string.ascii_letters+string.digitsstr1=str1.lower()str2=random.choice(str1)foriinrange(100)print(s

43、tr2)str_count=forcharinstr2:str_countchar=str_count.get(char,0)+1print(str_count)items=list(str_count.items()items.sort(key=lambdax:x1,reverse=True)#以数量降序foriinrange(20):word,count=itemsiprint("%-15s%5d"%(word,count)#-表示左对齐,s表字符,d表示整数17.统计"HarryPotterSorcerStone.txt文件中的英文单词及其数量,打印出单词及其个数filename=r'HarryPotterSorcerStone.txt&#

温馨提示

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

评论

0/150

提交评论