python练习题-答案

上传人:文*** 文档编号:48322402 上传时间:2022-01-03 格式:DOCX 页数:19 大小:37.80KB
返回 下载 相关 举报
python练习题-答案_第1页
第1页 / 共19页
python练习题-答案_第2页
第2页 / 共19页
python练习题-答案_第3页
第3页 / 共19页
点击查看更多>>
资源描述
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) 的返回值为0 ,那么执行语句 x += 6 之后,表达式id(x) = 0 的值为 。 ( 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, sex和 b = Dong, 38, Male ,请使用一个语句将这两个列表的内容转换为字典,并且以列表a 中的元素为“键” ,以列表 b 中的元素为“值” ,这个语句可以写为 。 ( c = dict(zip(a, b)14. 任意长度的 Python 列表、元组和字符串中最后一个元素的下标为 。 ( -1 )15. Python 语句 .join(list(hello world!)执行的结果是 。 ( helloworld! )16. 转义字符 n 的含义是 。 (回车换行)17. Python 语句 list(range(1,10,3) 执行结果为。 ( 1, 4, 7)18. 切片操作 list(range(6):2 执行结果为 。 ( 0, 2, 4)19. 表达式ab in acbed 的值为 。( False )20. Python语句 print(1, 2,3, sep=:)的输出结果为 。 ( 1:2:3 )21. 表达式 int(4* 的值为 。 ( 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=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 整 除 的 数 的 代 码 可 以 写 作 。 ( 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 的值为 。 (3,5, 7, 1, 2)34. 表达式 list(zip(1,2, 3,4) 的值为 。 (1, 3), (2, 4)35. 已知 x = 1, 2, 3, 2, 3 ,执行语句 () 之后, x 的值为 。 (1, 2, 3, 2)36. 表达式 x for x in 1,2,3,4,5 if x1:print(k)k=koin(x, 10)答:输出由英文字母大小写或数字组成的长度为10且不重复的随机字符串。3 . 下面的代码输出结果为 。 (3)def demo():demo()print(x)4 .下面程序运行的结果为 。(5, 6,1,2, 3, 4)def demo(lst, k):if k 25 and subject=电子信息工程)or (college= 重点and subject=电子信息工 程)or (agerev( ,I love you ,)返回值为 you love Idef rev1(s):s二()s1= .join(reversed(s)return s112 .阅读程序,打印结果是 1000 def addInterest(balance,rate):newBalance=balance*(1+rate)balance=newBalancedef main():amount=1000rate=addInterest(amount,rate)print (amount)main()13 .阅读程序,打印结果是 def demo(newitem,old_list=):(newitem)return old_listdef main():print(demo(a)print(demo(b)main()答案:aa, b14 .阅读程序,打印结果是 def func5(a, b, *c):print(a,b)print(length of c is %d, c is %len(c),c)func5(1,2,3,4,5,6)答案:1 2length of c is 4,c is (3, 4, 5, 6)15 .阅读程序,打印结果是 ,3,4)def demo(*para):avg = sum(para)/len(para) g = i for i in para if iavgreturn (avg,)+tuple(g)print(demo(1,2,3,4)16 . 阅读程序,打印结果是def f(w=1,h=2):print(w,h)f()f(w=3)f(h=7)f(a=3)答案: 1 23 21 7错误17 . 阅读程序,打印结果是def sort(number1,number2):if number1n:m, n = n, mp = m*nwhile m!=0:r = n%mn = mm = r1. return (n,p请补全代码:x=eval(input(请输入小于1000的整数:)k=2 while x1:ifprint(k,end=x = xenter(30)IX ULfor i in range(6, 0,-1):2X ITprint(3X 1=3 ttxw3X2=64X?=&3x3=34X3=12 iXS=lE6X IF6X2=12答案:in range(6);(*,化*i-1).cei】ter(5*n) 7X2EXIF SX2=66X3=1S7X3=2S X 3=247X4=218X4-3:*木木+ + + + * + * *+9XJ-279X4=36 $X5-45 9X64 9X7-63 9汽护2.卜面代码判断回文串,请补全代码:s=雾锁山头山锁雾 low=0 high= while lowhigh:if倒序和顺序不一样print(s,不是回文)low +=1else:print(s,是回文串)答案:len(s)-1,slow!=shigh,break , high -=1 ;3.输出右边图形,请补充程序:统计唁息疗效1丝河鼓7字并聂(包含空格33s=I am a teacher! You are students!print(=*30)print(统计彳t息.center(28)print( )item_width=25line=(n)+1word=()char=list(s) #包含空格、标点符号w_num=0for w in word:w num+=行数,line)print(%-*s %5d%(item_width-3,print(%-*s %5d%(单词数,len(word)print(%-*s %5d%(item_width-10,字符数(包含空格))print(%-*s %5d%(item_width-11,字符数(不包含空格),w_num);len(char)print(-*30)答案:-*30 ; len(w) ; item_width-44.输出右边图形,请补充程序:def demo(t):print(1)line = 1,1for i in range(2,t):for j in range(0,len(line)-1):()line = 1+r+1print(line)demo( )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, 1答案: print(1,1), r = , linej+linej+1 , 10三、编程题1 . 编写程序,在D 盘根目录下创建一个文本文件,并向其中写入字符串 hello world 。答:fp = open(r , a+ )print( hello world , file=fp) ()2 . 编写程序,生成一个包含20 个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。 (提示:使用切片。 )答:import randomx = (0,100) for i in range(20)print(x)y = x:2(reverse=True)x:2 = y print(x)3 .编写函数,判断一个数字是否为素数,是则返回字符串YEG否则返回字符串NQ再编写测试函数。答:import mathdef IsPrime(v):n = int(v)+1)for i in range(2,n):if v%i=0:return Noelse:return Yesprint(IsPrime(77)4 . 编写函数,模拟 Python内置函数sorted(lst) 。答:def sorted(v):t = v:r =while t:tt = min(tt)(tt) return r print(sorted(1,3,2,4)5 .编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列,后10个元素降序排列,并输出结果。答:import randomx = (0,100) for i in range(20)print(x)y = x0:10()x0:10 = yy = x10:20(reverse=True)x10:20 = yxyx000=x5x5=x103x-510=x2020=x0print(x)6 .编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。答:x = input(Please input an integer of 4 digits meaning theyear:) x = eval(x)if x%400=0 or (x%4=0 and not x%100=0):print(Yes)else:print(No)7 .编写程序,实现分段函数计算,如下表所示。答:x = input(Please input x:)x = eval(x)if x=20:print(0)elif 0=x5:print(x)elif 5=x10:print(3*x-5)elif 10=x20:print*x-2)8 .已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找最高分同 学,最后打印最高分、最低分、平均分、最高分同学。scores = Zhang San: 45, Li Si: 78, Wang Wu: 40, Zhou Liu: 96, Zhao Qi: 65, SunBa: 90, Zheng Jiu: 78, Wu Shi: 99, Dong Shiyi: 60highest = max() lowest = min()average = sum()/len(scores)highestPerson = name for name, score in () if / score = highest #分行print(highest,lowest,average,highestPerson)9 . 统计不及格的学生及成绩,要求:给定一些学生姓名和成绩;询问用户是否还需要输入更多的学生姓名和成绩,用户回答是就继续输入,继续询问;打印所有补考学生名单和成绩。d= 张三 ,76, 李四 ,45, 王五 ,83, 郑六 ,66,a,54,c,68,b,89s1=input( 输入数据 Y or N:).strip()# 去掉前后空格while s1 = Y:s2=input( 请输入学生及成绩(空格隔开) )name,grade=()(name,grade)#dname=int(grade)s1=input( 继续输入 Y or N:).strip()else:print(d)print( 不及格的名单:)for name,grade in d:if float(grade) 60:print(姓名: ,name,t, 成绩: ,grade)10 . 由用户一个一个输入一个数值型列表,然后将每个元素逐一打印。lst=n=eval(input( ”请输入数字个数:” )for i in range(n):number=eval(input( ”请输入数字:” )(number)for value in lst:print(value,end=)11.序列求和,n通过用户输入:n=int(input(请输入 N 的值:)s=0fh=1for i in range(1,n+1):s +=fh*1/i #求和语句fh=-fh #正负交替1111 .(1)n 1 1234nprint( 1-1/2+1/3-1/4+(-1)A(n-1)/n=,s,i)12 .生成一个包含50个两位随机整数的列表,然后删除其中的所有奇数(提示从后向前删)lst=(1,100) for i in range(50)print(50个随机两位整数:,lst)k=len(lst)-1for i in range(k,-1,-1):#从后往前删,减少列表元素移动if lsti % 2=1:(1)print(偶数为,lst)13 .恺撒(kaisa )密码:原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ的密文为:DEFGHIJKLMNOPQRSTUVWXYZC 计程序实现之。plaincode=input(请输入明文:)for p in plaincode:if a=p=z:c=chr(ord(a)+(ord(p)-ord(a)+3)%26)#ord是字符编码的彳t,都减掉 ord(A)才可以得到字符的顺序0-25print(c,end=)elif A=p=Z:c=chr(ord(A)+(ord(p)-ord(A)+3)%26)print(c,end=)else:print(p,end=)14 . 如果一个字符串从前往后和从后往前读时是一样的,那么这个字符串就是回文串。请编写一个函数判断是否为回文串,同时编写测试代码检验回文串。def isPalindrome(s)if s=s:-1: # 切片操作,倒序和顺序一样return Trueelse:return Falses=input(input a string:)if isPalindrome(s):print( %s is a palindrome! %s)else:print( %s is not a palindrome! %s)15 . 输入一串字符,统计每个字符数,用字典输出 .s=input( 输入一行字符串或句子: )char_counts=for char in s:char_countschar= (char,0)+1print(char_counts)16 . 生成包含 100 个随机字符的字符串,然后统计前20 个高频字符.import string,randomstr1= +str1=()str2= (str1) for i in range(100)print(str2)str_count=for char in str2:str_countchar=(char,0)+1print(str_count)items=list()(key=lambda x:x1,reverse=True) # 以数量降序for i in range(20):word,count = itemsiprint(%-15s %5d%(word,count) #-表示左对齐,s表字符,d表示整数17 .统计”文件中的英文单词及其数量,打印出单词及其个数filename =r”infile = open(filename, r) # Open the file txt=() words=() #以空格分割单词words_counts= for word in words:words_countsword=(word,0)+1 print(words_counts)18 .读取文本文件中所有整数,将其排序后写入文本文件中Tff tir-1with open(,r) as fp:data=() #文件全部读完返回字符列表print(字符列表,data)data=int() for line in data #列表的数据变成整数()n for i in data #数字后加换行符with open( ,w) as fp:(data) #一次全部写入19.编程,如图,在文件中写入五名学生的姓名、学号和3门考试课的成绩,然后将所有两门以上(含两门)课程不及格的学生信息输出到文件、其他学生信息输出到。fw=open(r,w)s=张三,01, 66, 77;: 88,n(李四,02, 60, 70, 80n)(王五,03, 64, 73, 82n)(赵六,04, 56, 67, 48n)(钱七,05, 46, 57, 68n)()张三.E017010101.李四,2017010100,1A, 201701010X四六,2017010104.我七,EOlin 10105,鸵SJ43R5?f1=open(r,r)f2=open(r,W)f3=open(r,w)lines=()for line in lines:data=list(,)print(data)#k=0for i in data2:if int(i)=2: #两门以上(含两门)课程不及格(line)else:(line)();();()
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!