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)

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 x6 or x%2=1:#大于 6 的偶数x=eval(input(输入一个数)for n1 in :m

16、1=i nt(math.sqrt( n1)+1)for i in range(2,m1):#2-sqrt(n 1)if :breakelsem2=math.ceil(math.sqrt (n 2)+1) for j in ran ge(2,m2):if n2%j=0 and j1+* * + + +*二二二二 + 二呷*+*坐词数iff* (不邑舎空答案:for j in range(1,i+1): , %8s %(s1),end=7. 输出右边图形,请补充程序:for i :print( * *(center(30)for i in ran ge(6, 0,-1):print()答案:inr

17、ange(6); ( * (21).center(5*n)8. 下面代码判断回文串,请补全代码: s=雾锁山头山锁雾low=0high=while lowhigh:if: #倒序和顺序不一样print(s,不是回文)low +=1else:print(s,是回文串)答案:len(s)-1,slow!=shigh , break, high -=1 ;9. 输出右边图形,请补充程序:s=l am a teacher! You are stude nts!prin t(=*30)print(统计信息.center(28)print()item_width=25lin e=s.co un t(n)+

18、1word=s.split()char=list(s)#包含空格、标点符号w_num=0for w in word:w_n um+=print(%-*s %5d%(item_width-3,行数,line)print(%-*s %5d%( ,单词数,len(word)prin t(%-*s %5d%(item_width-10,字符数(包含空格),)prin t(%-*s %5d%(item_width-11,字符数(不包含空格),w_ nu m)prin t(-*30)答案:-*30 ; len(w) ; item_width-4 ; len(char)10. 输出右边图形,请补充程序:1【

19、1,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, 1def demo(t):prin t(1)line = 1,1 for i in ran ge(2,t):for j in ran ge(0,le n(li ne)-1):r.append()li ne = 1+r+1prin t(l ine)demo()答案:print(1,1),

20、r = ,linej+linej+1 ,10四、编程题1. 编写程序,在 D盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world。答:fp = open(r D:test.txt, a+)print( hello world),file=fp)fp.close()2. 编写程序,生成一个包含 20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇 数下标的元素不变。(提示:使用切片。)答:import ran domx = ran dom.ra ndin t(0,100) for i in ran ge(20)prin t(x)y = x:2y.sort

21、(reverse=True)x:2 = yprin t(x)3. 编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串 NO。再编写测试函数。答:import mathdef IsPrime(v):n = in t(math.sqrt(v)+1)for i in ran ge(2, n):if v%i=0:return Noelse:return Yesprin t(lsPrime(77)4. 编写函数,模拟Python内置函数sorted(lst)。答:def sorted(v):t = v:r =while t:tt = mi n(t)r.appe nd(tt)t.rem

22、ove(tt)return rprin t(sorted(1,3,2,4)5. 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列, 并输出结果。答:import ran domx = ran dom.ra ndin t(0,100) for i in ran ge(20)prin t(x)y = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)x10:20 = yxyx000=x5x5=x103x-510=x200.5x-220=x0prin t(x)6. 编写程序,运行后用户输入4位整数作为年份,判

23、断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。答:x = in put(Please in put an in teger of 4 digits meaning the year:)x = eval(x)if x%400=0 or (x%4=0 and not x%100=0):prin t(Yes)else:prin t(No)7. 编写程序,实现分段函数计算,如下表所示。答:x = in put(Please in put x:)x = eval(x)if x=20:prin t(0)elif 0=x5:prin t(x)elif 5=x

24、10:prin t(3*x-5)elif 10=x20:prin t(0.5*x-2)8. 已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同 学,最后打印最高分、最低分、平均分、最高分同学。scores = Zha ng San: 45, Li Si: 78, Wa ng Wu: 40, Zhou Liu: 96, Zhao Qi: 65, Sun Ba: 90, Zhe ng Jiu: 78, Wu Shi: 99, Dong Shiyi: 60highest = max(scores.values()lowest = min( scores.values(

25、)average = sum(scores.values()/le n( scores)highestPers on = n ame for n ame, score in scores.items() if / score = highest # 分行 prin t(highest,lowest,average,highestPers on)9. 统计不及格的学生及成绩,要求:给定一些学生姓名和成绩;询问用户是否还需要输入更多的 学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩。d=张三,76,李四,45,王五,83,郑六,66,a,54,c,68,b,89s1=

26、input(输入数据 Y or N:).strip()#去掉前后空格while s1 = Y:s2=in put(请输入学生及成绩(空格隔开)n ame,grade=s2.split()d.appe nd( name,grade)#d name=i nt(grade)s仁input(” 继续输入 Y or N:).strip()else:prin t(d)print(不及格的名单:)for n ame,grade in d: if float(grade) 60:print(姓名:,name,t,成绩:,grade)10. 由用户一个一个输入一个数值型列表,然后将每个元素逐一打印。lst=n=eval(input(请输入数字个数:”) for i in ran ge( n):,111,八n111(1)n 1234n)number=eval(input(请输入数字: lst.appe nd(nu mber)for value in lst:print(value,end=)1

温馨提示

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

评论

0/150

提交评论