1、python练习题答案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)的返回值为4
2、96103280,那么执行语句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,Male,请使用一个语句将这两个列表的内容转换为字典,并且以列表a中
3、的元素为“键”,以列表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执行结果为_。(0,2,4)19. 表达式abinacbed的值为_。(False)20. Python3.x语句print(1,2,3,
4、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,3)的值为_。(11)25.已知列表对象x=11,2,3,则表达式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:
5、3)29. 字典对象的_方法返回字典中的“键 -值对”列表。(items())30. 使用列表推导式得到100以内所有能被13整除的数的代码可以写作_。(iforiinrange(100)ifi%13=0 )31. 表达式3*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,5
6、ifx1: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:ifi4:print(%d%i)i+=1breakprint(%d%i)i+=1i+=15. 写出下面代码的运行结果。defSum(*p):returnsum(p)print(Sum(3,5,8)print(Sum(8)print(Sum(8,2,10)答:168206. 下面程序的执行结果是_。(1)s=0f
7、oriinrange(1,101):s+=ielse:print(1)7. 下面程序的执行结果是_。(1275)s=0foriinrange(1,101):s+=iif i=50:print(s)breakelse:print(1)8. 阅读下面的代码,输出结果为_。x=list(range(10)forindex,valueinenumerate(x):ifvalue=3:xindex=5else:print(x)答:将列表 x中值为3的元素修改为 5。9. 阅读下面的代码,解释其功能: importstring x=string.ascii_letters+string.digits im
8、portrandom print(.join(random.sample(x,10)答:输出由英文字母大小写或数字组成的长度为 10且不重复的随机字符串。10. 下面的代码输出结果为 _。(3)defdemo():x=5x=3demo()print(x)11. 下面程序运行的结果为 _。(5,6,1,2,3,4)defdemo(lst,k):ifk25andsubject=电子信息工程 )or(college=重点andsubject=电子信息工程 )or(agerev(Iloveyou)返回值为youloveIdefrev1(s):s=s.split()s1= .join(reversed(
9、s)returns119.阅读程序,打印结果是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()答案:aa
10、,b21. 阅读程序,打印结果是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=iforiinparaifiavgreturn(avg,)+tuple(g)print(demo(1,2,3,4)23. 阅读程序,打印结果是deff(w=1,h=2):print(w,h)f()f(w=3)f(h=7)f(
11、a=3)答案:123 21 7错误24. 阅读程序,打印结果是defsort(number1,number2):ifnumber1n:m,n=n,mp=m*nwhilem!=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)答:分别填写 r
12、andint、50、02. 生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高频字符,以5个位右对齐输出个数。请把缺少的代码补全。importrandomx=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,co
13、unt)答案:importstring、 random.choice(x)、key=lambdax:x1、“%-15s%5d”3. 用户输入5,打印如右图字符金字塔图形,请补全代码:n=input(输入行数:)foriinrange(1,n+1):print(,end=)forjinrange(1,2*i):print(&,)print()答案:n=int(n),*(n-i),end=4. 质因数分解,如输入60,则得到60=2*2*3*5.请补全代码:x=eval(input(请输入小于 1000的整数:)k=2whilex1:if:print(k,end=)x=x/kifx1:print(
14、*,end=)else:答案:print(x,=,end=),x%k=0,k+=15. 验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和,请补全代码。importmathx=eval(input(“输入一个数”)whilex6orx%2=1:#大于6的偶数x=eval(input(“输入一个数”)forn1in:m1=int(math.sqrt(n1)+1)foriinrange(2,m1):#2-sqrt(n1)if:breakelse:m2=math.ceil(math.sqrt(n2)+1)forjinrange(2,m2):ifn2%j=0andjn2:else:print
15、(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()答案:forjinrange(1,i+1):,%8s%(s1),end=7. 输出右边图形,请补充程序:fori :print( *-1)*(2*i.center(30)foriinrange(6,0,-1):print( )答案:in range(6);(* (2*i-1).center(5*n)8. 下面代码判断回文串,请补全代码:s=
16、雾锁山头山锁雾low=0high=whilelowhigh:if :#倒序和顺序不一样print(s,不是回文)low+=1else:print(s,是回文串)答案:len(s)-1,slow!=shigh,break,high-=1;9. 输出右边图形,请补充程序:s=Iamateacher!Youarestudents!print(=*30)print(统计信息.center(28)print()item_width=25line=s.count(n)+1word=s.split()char=list(s)#包含空格、标点符号w_num=0forwinword:w_num+=print(%
17、-*s%5d%(item_width-3, 行数,line)print(%-*s%5d%( ,单词数,len(word)print(%-*s%5d%(item_width-10, 字符数(包含空格) , )print(%-*s%5d%(item_width-11, 字符数(不包含空格) ,w_num)print(-*30)答案:-*30;len(w);item_width-4;len(char)10. 输出右边图形,请补充程序:defdemo(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,1011,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,1四、编程题1. 编写程序,在 D盘根目录下创建一个文本文件 test.txt,并向其中写入字符串 helloworld。答:fp=open(rD:test.txt,a
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1