《python练习题-答案》由会员分享,可在线阅读,更多相关《python练习题-答案(16页珍藏版)》请在人人文库网上搜索。
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)。
2、的返回值为496103280,那么执行语句x += 6之后,表达式id(x)=496103280 的值为。( False)9. 已知x = 3,那么执行语句x *= 6之后,x的值为。( 18)10. 表达式“ 3 in 1,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的列表,语句可以写为 。( 5 for i inrange(10)13. 假设有列表 a = name, age, s。
3、ex和b = Dong, 38, Male,请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为。( c = dict(zip(a, b)14. 任意长度的Python列表、元组和字符串中最后一个元素的下标为 。( -1)15. Python 语句.join(list(hello world!) 执行的结果是 。 ( hello world!)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. Python 3.x 语句 print(1,2, 3, sep=:)的输出结果为 。(1:2:3)21. 表达式 int(4*0.5)的值为。(2)22. 达式 sorted(111,2, 33, key=lambda x: -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=le。
5、n)的值为。( 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整除的数的代码可以写作。(i for i in range(100) if i%13=0)31. 表达式3 * 2的值为。(9)32. 表达式 3 * 2的值为。( 6)33. 已知 x = 3, 5, 7,那么执行语句xlen(x): = 1,2之后,x 的值为。(。
6、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. 表达式x for x in 1,2,3,4,5 if x1:prin t(k)k=k/23.写出下面代码的运行结果。def Sum(a, b=3, c=5):retur n sum(a, b, c) prin t(Sum(a=8, c=2)prin t(Sum(8)prin t(Sum(8,2)答:1316154. 写出下列程序输出结果i=1while i+1:。
7、if i4:prin t(%d%i)i+=1breakprin t(%d%i)i+=1i+=15. 写出下面代码的运行结果。def Sum(*p):return sum(p)print(Sum(3, 5, 8)prin t(Sum(8)prin t(Sum(8, 2, 10)答:168206. 下面程序的执行结果是 。 (1)s = 0for i in ran ge(1,101):s += ielse:prin t(1)7. 下面程序的执行结果是 。( 1275)s = 0for i in ran ge(1,101):s += iif i = 50:prin t(s)breakelse:pri。
8、n t(1)8. 阅读下面的代码,输出结果为 。x = list(ra nge(10)for in dex, value in enu merate(x):if value = 3:xi ndex = 5else:prin t(x)答:将列表x中值为3的元素修改为5。9. 阅读下面的代码,解释其功能: import stri ng x = stri ng.ascii_letters + stri ng.digits import ran dom prin t(.jo in(ran dom.sample(x, 10)答:输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。10. 下面。
9、的代码输出结果为 。( 3) def demo():x = 5x = 3demo()prin t(x)11. 下面程序运行的结果为 。(5, 6, 1,2, 3, 4)def demo(lst, k):if k 25 and subject=电子信息工程)or (college=重点and subject=电子信息工程)or (agerev( flove you 返回值为you love Idef rev1(s):s=s.split()s1= .join(reversed(s)return s119. 阅读程序,打印结果是 1000def add In terest(bala nce,rate。
10、):n ewBala nce=bala nce*(1+rate)bala nce=n ewBala needef main():amou nt=1000rate=0.05addI nterest(am oun t,rate)prin t (am ount)main ()20. 阅读程序,打印结果是 def demo( newitem,oldist=): old_list.appe nd(n ewitem) return oldistdef main():print(demo( a)print(demo( b)main ()答案:aa, b21. 阅读程序,打印结果是 def fun c5(a,。
11、 b, *c):prin t(a,b)print(length of c is %d, c is %len(c),c)fun c5(1,2,3,4,5,6)答案:1 2len gth of c is 4,c is (3, 4, 5, 6)22. 阅读程序,打印结果是(2.5, 3, 4)def demo(*para):avg = sum(para)/le n( para)g = i for i in para if iavg return (avg,)+tuple(g) prin t(demo(1,2,3,4)23. 阅读程序,打印结果是def f(w=1,h=2):prin t(w,h)f(。
12、)f(w=3)f(h=7)f(a=3)答案:1 23 21 7错误24阅读程序,打印结果是def sort(nu mberl, nu mber2):if nu mber1n:m, n = n, mp = m*nwhile m!=0:r = n%mn = mm = rreturn (n,p/n)print( demo(20, 30)三、程序填空题1. 下面代码的功能是,随机生成50个介于1,20之间的整数,然后统计每个整数出现频率。请把缺少的代码补全。import ran domx = random.(1,20) for i in range()r = dict()for i in x:ri =。
13、 r.get(i,)+1for k, v in r.items():prin t(k, v)答:分别填写randint、50、02. 生成包含1000个随机字符的字符串,然后统计前20个高频字符,最后以15个位左对齐输出高频字符,以5个位右对齐输出个数。请把缺少的代码补全。import random x = stri ng.ascii_letters + stri ng.digits + stri ng.p un ctuati ony = for i in ran ge(1000)d = dict()for ch in y :dch = d.get(ch, 0) + 1items=list(d。
14、.items()items.sort(,reverse=True)for i in range(20):word,co unt = itemsiprint(%(word,co un t)答案:import string、random.choice(x) 、key= lambda x:x1、“-15s%5d ”3. 用户输入5,打印如右图字符金字塔图形,请补全代码:n=input(输入行数:) for i in ran ge(1, n+1):print( ,end= )for j in ran ge(1,2*i):Iprint(&, )print()答案:n=int(n), *(n-i), en。
15、d=4.质因数分解,如输入 60,则得到60 = 2 * 2 * 3 * 5.请补全代码:x=eval(input(”请输入小于1000的整数:)k=2 while x1:if print(k,end=)x = x/kif x 1:print( * ,end=)else答案:print(x, = ,end= ),x % k=0 ,k += 15. 验证哥德巴赫猜想:一个大于等于6的偶数可以表示为两个素数之和,请补全代码。import mathx=eval(input(输入一个数)while x1+* * + + +*二二二二 + 二呷*+*坐词数iff* (不邑舎空答案:for j in ra。
16、nge(1,i+1): , %8s %(s1),end=7. 输出右边图形,请补充程序:for i :print( * *(center(30)for i in ran ge(6, 0,-1):print()答案:inrange(6); ( * (21).center(5*n)8. 下面代码判断回文串,请补全代码: s=雾锁山头山锁雾low=0high=while low=20:prin t(0)elif 056* 67,4 氐 57,曲y J43i;:f1=ope n(rscore2.txt,r) f2=ope n( rbad2.txt,w) f3=ope n(rpass2.txt,w)lin es=f1.readli nes()for line in lin es:data=list(li ne.split(,)print(data)#张三,2017010101, 66, 77, 88nk=0for i in data2:if in t(i)=2:#两门以上(含两门)课程不及格f2.write(li ne)else:f3.write(li ne)f1.close();f2.close();f3.close(。