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

下载本文档

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

文档简介

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.Iist(map(str, 1,2, 3)的执行结果为 _ 。( 1 , 2 , 3)8.已知

2、 x = 3,并且 id(x)的返回值为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 inra

3、nge(10)13.假设有列表 a = name, age, sex和 b = Dong, 38, Male,请使用一个语句将这两个列表的内容转换为字典,并且以列表a 中的元素为“键”,以列表 b 中的元素为“值”,这个语句可以写为_ 。( c = dict(zip(a, b)14.任意长度的 Python 列表、元组和字符串中最后一个元素的下标为_。( -1)15.Python 语句.join(list(hello world!)执行的结果是 _。( hello world!)16.转义字符的含义是 _ 。(回车换行)17.Python 语句 list(range(1,10,3)执行结果为

4、_ 。(1,4, 7)18.切片操作 list(range(6):2执行结果为 _ 。(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)的值为 _ 。(

5、11)25.已知列表对象 x = 11, 2, 3,则表达式 max(x, key=len)的值为 _。( 11)26.语句 x = (3,)执行后 x 的值为_ 。(3,)27.语句 x =执行后 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

6、* 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.表达式 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

7、=2) prin t(Sum(8)prin t(Sum(8,2)答:1316154.写出下列程序输出结果i=1while i+1:if i4:prin t(%d%i)i+=1breakprin t(%d%i)i+=1i+=15.写出下面代码的运行结果。def Sum(*p):return sum(p)prin t(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

8、 = 0for i in ran ge(1,101):s += iif i = 50:prin t(s)breakelse:prin t(1)8.阅读下面的代码,输出结果为 _。x = list(ra nge(10)for in dex, value in enu merate(x):if value = 3:xi n dex = 5else:prin t(x)答:将列表 x 中值为 3 的元素修改为 5。9.阅读下面的代码,解释其功能: _ import stri ng x = stri n g.ascii_letters + stri n g.digits import ran dom p

9、rin t(.jo in (ra n dom.sample(x, 10)答:输出由英文字母大小写或数字组成的长度为10 且不重复的随机字符串10._F 面的代码输出结果为def demo():x = 3demo()prin t(x)11._ 下面程序运行的结果为。(5, 6,1,2, 3, 4)def demo(lst, k):if kvle n( 1st):return lstk:+lst:klst=1,2,3,4,5,6demo(lst,4)12._ 下面程序运行的结果为 _ appy New Year!Hdef foo(s):f s=:return selse:return s1:+s0

10、prin t (foo(Happy New Year!)13.下面程序运行的结果是_ 1:aa,2:bb,3:ff,6:dd,87: ee11 =1,2, 3, 6, 87,312 = aa , bb,cc , dd , ee , ff d= for in dex in range (le n ( 11 ):d l1 in dex = l2 in dex print d14.下面程序运行的结果为 3 , 2 1 , 2list仁1,2list2=list1: list10=3 prin t(list1,list2)age, subject,college= (24,计算机”,”非重点”电子信息

11、工程)or (college=重点and subject=电子信息工程)or (age 25 and subject=prin t( Fi nd a odd nu mer, num)答案:Find a odd nu mer 3Find a odd nu mer 5Find a odd nu mer 7Find a odd nu mer 917.下面程序打印结果:for i in ran ge(1,7):print( *2*(6- i),end= ”for j in ran ge(i, 0,-1):prin t(j, end =)prin t()18.下面程序输入 rev(flove you 返

12、回值为 you love I_def rev1(s):s=s.split()s1= .join(reversed(s)return s119.阅读程序,打印结果是 _ 1000 _def add In terest(bala n ce,rate):n ewBala n ce=bala n ce*(1+rate)bala nce=n ewBala needef main():amou nt=1000rate=0.05addI n terest(am oun t,rate)prin t (am ount)main ()20.阅读程序,打印结果是 _def demo( newitem,old ist

13、=): old_list.appe nd(n ewitem) return old istdef main():print(demo( a)print(demo( b)main ()答案:aa, b21.阅读程序,打印结果是 _def fun c5(a, 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

14、)/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()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)三、程序填

15、空题1.下面代码的功能是,随机生成50 个介于1,20之间的整数,然后统计每个整数出现频率。请把缺少的代码补全。import ran domx = ran dom._ (1,20) for i in ran ge(_)r = dict()for i in x:ri = r.get(i,_)+1for k, v in r.items():prin t(k, v)答:分别填写 randint、50、02.生成包含 1000 个随机字符的字符串,然后统计前 20 个高频字符,最后以 15 个位左对齐输出高频字符,以 5 个位右对齐输出个数。请把缺少的代码补全。import ran dom x = s

16、tri n g.ascii_letters + stri n g.digits + stri n g.p un ctuati ony = _ for i in ran ge(1000)d = dict()for ch in y :dch = d.get(ch, 0) + 1items=list(d.items()items.sort( _reverse二True)for i in ran ge(20):word,co unt = itemsiprint( _ %(word,co un t)答案:import string、random.choice(x) 、key= lambda x:x1 、

17、“%-15s%5d ”3.用户输入 5,打印如右图字符金字塔图形,请补全代码:n=input (输入行数:)for i in ran ge(1, n+1):print( _ ,end= )for j in ran ge(1,2*i):prin t(&,_) Iprin t()答案:n=int(n), *(n-i),end=4.质因数分解,如输入60,则得到 60 = 2 * 2 * 3 * 5.请补全代码:x=eval(input (请输入小于 1000 的整数:)k=2 while x1:if _prin t(k,e nd=)x = x/kif x 1:print( * ,en d=

18、)else答案:print(x, = ,end= ) ,x % k=0 , k += 15.验证哥德巴赫猜想:一个大于等于6 的偶数可以表示为两个素数之和,请补全代码。import mathx=eval(input(输入一个数)while x? 1IX 1 =1print(统计信息.center(28)坐词数print(_ ).item_width=25iff*(不邑舎lin e=s.co un t(n)+1word=s.split()char=list(s)#包含空格、标点符号w_num=0for w in word:w_n um+二_prin t(%-*s %5d%(item_width-

19、3,行数,li ne)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.输出右边图形,请补充程序:def demo(t):prin t(1)li ne = 1,1 for i in ran ge(2,t):for j in ran ge(0,le n (li n e)-1)

20、:r.append( _ )li ne = 1+r+1prin t(l ine)demo( _ )答案:print(1,1),r = ,linej+linej+1 ,101【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, 1四、编程题1.编写程序,在 D 盘根目录下创建一个文本文件test.txt,并向其中写入字符串hello world答:fp = open(r D:test.txt , a+)prin

21、t( 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(reverse=True)x:2 = yprin t(x)3.编写函数,判断一个数字是否为素数,是则返回字符串YES,否则返回字符串 NO。再编写测试函数。答:import mathdef IsPrime(v):n = i

22、n t(math.sqrt(v)+1)for i in ran ge(2, n):if v%i=0:return Noelse:return Y esprin t(lsPrime(77)4.编写函数,模拟 Python 内置函数 sorted(lst) 答:def sorted(v):t = v:r =while t:tt = mi n (t)r.appe n d(tt)t.remove(tt)return rprin t(sorted(1,3,2,4)答:import ran domx = ran dom.ra ndin t(0,100) for i in ran ge(20)prin t(

23、x)y = x0:10y.sort()x0:10 = yy = x10:20y.sort(reverse=True)x10:20 = yprin t(x)6.编写程序,运行后用户输入4 位整数作为年份,判断其是否为闰年。如果年份能被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)

24、7.编写程序,实现分段函数计算,如下表所示。答:x = in put(Please in put x:)5.编写程序,生成包含 20 个随机数的列表,然后将前出结果。10个元素xyx000=x5x5=x103x-510=x200.5x-220=x0 x = eval(x)if x=20:prin t(0)elif 0=x5:prin t(x)elif 5=x10:prin t(3*x-5)elif 10=x20:prin t(0.5*x-2)8.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同学,最后打印最高分、最低分、平均分、最高分同学。scores = Z

25、ha ng San: 45, Li Si: 78, Wa ng Wu: 40, Zhou Liu: 96, Zhao Qi: 65, Sun Ba: 90, Zheng Jiu: 78, Wu Shi: 99, Dong Shiyi: 60highest = max(scores.values()lowest = mi n( scores.values()average = sum(scores.values()/le n( scores)highestPers on = n ame for n ame, score in scores.items() if / score = highest

26、 #分行 print(highest,lowest,average,highestPers on)9.统计不及格的学生及成绩,要求:给定一些学生姓名和成绩;询问用户是否还需要输入更多的学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩。d=张三,76,李四,45,王五,83,郑六,66,a,54,c,68,b,89s1= input(输入数据 Y or N:).strip()#去掉前后空格while s1 = Y:s2=in put(请输入学生及成绩(空格隔开)n ame,grade=s2.split()d.appe n d( n ame,grade)#d n ame=

27、i n t(grade)s 仁 in put (”继续输入 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):number=eval(input(请输入数字: lst.append(nu mber)for value in lst:prin t(value,e nd=)11.序列求和,

温馨提示

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

评论

0/150

提交评论