Python程序设计(微课版)-课后习题及答案汇 田浩 第1-15章 程序设计概述 -综合程序设计_第1页
Python程序设计(微课版)-课后习题及答案汇 田浩 第1-15章 程序设计概述 -综合程序设计_第2页
Python程序设计(微课版)-课后习题及答案汇 田浩 第1-15章 程序设计概述 -综合程序设计_第3页
Python程序设计(微课版)-课后习题及答案汇 田浩 第1-15章 程序设计概述 -综合程序设计_第4页
Python程序设计(微课版)-课后习题及答案汇 田浩 第1-15章 程序设计概述 -综合程序设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

PAGE2PAGE1第1章程序设计概述练习题一、选择题1.算法是指()。DA.数学计算公式B.程序的语句序列C.对问题的精确描述D.解决问题的精确步骤2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。BA.有0个或多个输入 B.有0个或多个输出C.有穷性 D.有效性3.Python语言属于()。CA.机器语言B.汇编语言C.高级语言D.科学计算语言4.下列选项中,不属于Python特点的是()。BA.面向对象B.运行效率高C.可移植性D.免费和开源5.Python内置的集成开发工具是()。DA.PythonWinB.PydevC.IDED.IDLE6.以下叙述中正确的是()。CA.Python3.x与Python2.x兼容B.Python语句只能以程序方式执行C.Python是解释性语言D.Python语言出现得晚,具有其他高级语言的一切优点7.使用print函数输出“HelloWorld”,要求将这两个单词分两行输出,以下不正确的是()。CA.>>>print("Hello\nWorld")B.>>>print('''HelloWorld''')C.>>>print('Hello\World')D.>>>print("""HelloWorld""")8.以下叙述正确的是()。AA.同一层次的语句必须对齐B.Python语句可以从一行的任意一列开始C.在执行一个Python程序的过程中,可发现注释中的拼写错误D.Python程序的每行只能写一条语句9.以下Python注释代码,不正确的是()。DA.#Python注释代码B.#Python注释代码1#Python注释代码2C."""Python文档注释"""D.//Python注释代码二、填空题1.算法的效率通过和来度量。2.Python语言是一种解释型、面向的程序设计语言。对象3.用户编写的Python程序(避免使用依赖于系统的特性),无需修改就可以在不同的平台上运行,这是Python的特性。可移植4.Python语句既可以采用交互式的执行方式,又可以采用执行方式。命令,程序5.要关闭Python解释器,可使用函数或快捷键。quit(),Ctrl+Z6.在Python内置集成开发环境中,可使用快捷键运行当前打开的程序。F57.Python语句行从解释器提示符后的第列开始。可以在同一行中使用多条语句,语句之间使用分隔。一,分号8.Python中,如果语句太长,可以使用作为续行符。\9.在Python解释器中,使用函数可以进入帮助系统。help()10.Python通过来区分不同的语句块。缩进对齐第2章程序的数据描述练习题一、选择题1.下列选项中合法的标识符是()。AA._7a_bB.breakC._a$bD.7ab2.下列标识符中合法的是()。BA.i'mB._C.3QD.for3.Python不支持的数据类型有()。AA.char B.int C.float D.list4.关于Python中的复数,下列说法错误的是()。BA.表示复数的语法形式是a+bjB.实部和虚部都是浮点数C.虚部必须加后缀j,且必须是小写D.函数abs()可以求复数的模5.type(1+0xf*3.14)的结果是()。DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>6.字符串s='a\nb\tc',则len(s)的值是()。CA.7B.6C.5D.47.Python语句print(0xA+0xB)的输出结果是()。DA.0xA+0xBB.A+BC.0xA0xBD.218.下列属于math库中的数学函数的是()。CA.time() B.round()C.sqrt()D.random()9.在一个同时包含整数和浮点数的表达式中,Python要进行的转换是()。BA.浮点数转换为整数B.整数转换为浮点数C.浮点数和整数转换为字符串D.整数转换为字符串10.下列表达式中,值不是1的是()。DA.4//3B.15%2C.1^0D.~111.Python表达式中,可以使用()控制运算的优先顺序。AA.圆括号()B.方括号[]C.大括号{}D.尖括号<>12.Python语句print(r"\nGood")的运行结果是()。CA.新行和字符串GoodB.r"\nGood"C.\nGoodD.字符r、新行和字符串Good13.下列Python语句中,非法的是()。BA.x=y=1B.x=(y=1)C.x,y=y,xD.x=1;y=114.在Python中,正确的赋值语句为()。CA.x+y=10B.x=2yC.x=y=30D.3y=x+115.为了给整型变量x、y、z赋初值10,下面正确的Python赋值语句是()。CA.xyz=10B.x=10y=10z=10C.x=y=z=10D.x=10,y=10,z=1016.为了给整型变量x、y、z赋初值5,下面正确的Python赋值语句是()。AA.x=5;y=5;z=5B.xyz=5C.x,y,z=5D.x=5,y=5,z=517.已知x=2,y=3,复合赋值语句x*=y+5执行后,x变量中的值是()。BA.11B.16C.13D.2618.整型变量x中存放了一个两位数,要将这个两位数的个位数字和十位数字交换位置,例如,13变成31,正确的Python表达式是()。AA.(x%10)*10+x//10B.(x%10)//10+x//10C.(x/10)%10+x//10D.(x%10)*10+x%1019.与数学表达式对应的Python表达式中,不正确的是()。CA.c*d/(2*a*b)B.c/2*d/a/bC.c*d/2*a*bD.c*d/2/a/b20.执行下列语句后的显示结果是()。Cfrommathimportsqrtprint(sqrt(3)*sqrt(3)==3)A.3B.TrueC.FalseD.sqrt(3)*sqrt(3)==3二、填空题1.Python基本数据类型包括、和,复合数据类型有、、和。数值型,字符串型,布尔型,列表,元组,字典,集合2.使用math模块库中的函数时,必须要使用语句导入该模块。importmath3.在Python中,传统除法运算符是,整除除法运算符是。/,//4.设m,n为整型,则与m%n等价的表达式为。m-m//n*n5.Python表达式4.5/2的值为,4.5//2的值为,4.5%2的值为。2.25,2.0,0.56.表达式1/4+2.75的值是。3.07.Python表达式12/4-2+5*8/4%5/2的值为。1.08.计算231-1的Python表达式是。2**31-19.数学表达式的Python表达式为。math.sin(15*math.pi/180)+(math.exp(x)-5*x)/math.sqrt(x*x+1)-math.log(3*x)10.数学表达式的Python表达式为。((c*d)/2/(c+d)-4*math.pi/(c-d))/(a+b)第3章顺序结构程序设计练习题一、选择题1.下列语句中在Python中非法的是()。BA.x=y=z=1 B.x=(y=z+1)C.x,y=y,x D.x+=y2.已知x=2,语句x*=x+1执行后,x的值是()。DA.2 B.3C.5 D.63.语句x=input()执行时,如果从键盘输入12并按回车键,则x的值是()。DA.12 B.12.0C.1e2 D.'12'4.语句x,y=eval(input())执行时,输入数据格式错误的是()。AA.34B.(3,4)C.3,4D.[3,4]5.语句print('x=${:7.2f}'.format(123.5678))执行后的输出结果是()。选项中的□代表空格。CA.x=□123.56 B.$□123.57C.x=$□123.57 D.x=$□123.566.语句eval('2+4/5')执行后的输出结果是()。AA.2.8 B.2C.2+4/5 D.'2+4/5'7.print('{:7.2f}{:2d}'.format(101/7,101%8))的运行结果是()。BA.{:7.2f}{:2d}B.□□14.43□5(□代表空格)C.□14.43□□5(□代表空格)D.□□101/7□101%8(□代表空格)二、填空题1.在Python中,赋值的含义是使变量一个数据对象,该变量是该数据对象的。指向,别名,2.语句y=x的含义是。y和x指向同一个数据对象3.和x/=x*y+z等价的语句是。x=x/(x*y+z)4.语句a,a=10,20执行后,a的值是。205.语句print('AAA',"BBB",sep='-',end='!')执行的结果是。AAA-BBB!6.下列Python语句的执行结果是。43a,b=3,4a,b=b,aprint(a,b)7.下列Python语句的输出结果是。print("数量{0},单价{1}".format(100,285.6))print(str.format("数量{0},单价{1:3.2f}",100,285.6))print("数量%4d,单价%3.3f"%(100,285.6))数量100,单价285.6数量100,单价285.60数量100,单价285.6008.下列Python语句的输出结果是。print("1".rjust(20,""))print(format("121",">20"))print(format("12321",">20"))112112321三、问答题1.用Python语句完成下列操作:(1)将变量I的值增加1。(2)I的立方加上J,并将其结果保存到I中。(3)将232-1的值存放到G中。(4)将两位自然数的个位与十位互换,得到一个新的数(不考虑个位为0的情况)。2.设a=10,写出下面表达式运算后a的值。208503.021(1)a+=a(2)a-=2(3)a&=2+3(4)a/=2+3(5)a%=a-a%4(6)a//=a-33.Python基本输入输出通过哪些语句来实现?4.格式化输出中有哪些常用的格式控制符?其含义是什么?5.从功能上讲,一个程序通常包括那些组成部分?第4章选择结构程序设计练习题一、选择题1.在Python中,逻辑量有()。BA.Yes,No B.True,FalseC.T,FD.1,02.下列表达式的值为True的是()。AA.2!=5or0 B.3>2>2C.5+4j>2-3jD.'abc'>'xyz'3.以下不合法的表达式是()。BA.xin[1,2,3,4,5]B.3=aC.e>5and4==fD.(x-6)>54.数学关系式2<x≤10表示成正确的Python表达式为()。BA.2<x<=10B.2<xandx<=10C.2<x&&x<=10D.x>2orx<=105.下面if语句统计“成绩(mark)优秀的男生以及不及格的男生”的人数,正确的语句为()。CA.if(gender=="男"andmark<60ormark>=90):n+=1B.if(gender=="男"andmark<60andmark>=90):n+=1C.if(gender=="男"and(mark<60ormark>=90)):n+=1D.if(gender=="男"ormark<60ormark>=90):n+=16.下面if语句统计满足“性别(gender)为男、职称(duty)为副教授、年龄(age)小于40岁”条件的人数,正确的语句是()。BA.if(gender=="男"orage<40andduty=="副教授"):n+=1B.if(gender=="男"andage<40andduty=="副教授"):n+=1C.if(gender=="男"andage<40orduty=="副教授"):n+=1D.if(gender=="男"orage<40orduty=="副教授"):n+=17.在Python中,实现多分支选择结构的最佳方法是()。CA.if B.if-elseC.if-elif-elseD.if嵌套8.以下if语句语法不正确的是()。DA.if(a>0):x=20else:x=200B.if(a>0):x=20else:x=200C.if(a>0):x=20else:x=200D.if(a>0)x=20elsex=2009.下列语句执行后的输出是()。Cif2:print(5)else:print(6)A.0 B.2C.5D.610.执行下列Python语句将产生的结果是()。Ax=2y=2.0if(x==y):print("Equal")else:print("NotEqual")A.EqualB.NotEqualC.编译错误D.运行时错误11.执行下列Python语句产生的结果是()。Bi=1if(i):print(True)else:print(False)A.输出1B.输出TrueC.输出FalseD.输出012.下面程序段求x和y中的较大数,不正确的是()。DA.maxNum=xifx>yelseyB.maxNum=math.max(x,y)C.if(x>y):maxNum=xD.if(y>=x):maxNum=yelse:maxNum=ymaxNum=x13.用if语句表示如下分段函数:下面不正确的语句为()。BA.if(x<1):y=x*x-2*x+3B.if(x<1):y=x*x-2*x+3else:y=math.sqrt(x-1)y=math.sqrt(x-1)C.y=x*x-2*x+3D.if(x<1):y=x*x-2*x+3if(x>=1):y=math.sqrt(x-1)if(x>=1):y=math.sqrt(x-1)二、填空题1.表达式2<=1and0ornot0的值是。True2.先用“frommathimport*”语句导入math模块,输出表达式sqrt(2)*sqrt(2)==2的值时,发现其值为False,所以该表达式的更好的写法是。设比较的精度为10-5。abs(sqrt(2)*sqrt(2)-2)<1e-53.已知ans='n',则表达式ans=='y'or'Y'的值为。'Y'4.Python提供了两个对象身份比较运算符和来测试两个变量是否指向同一个对象。is,isnot5.在直角坐标中,x、y是坐标系中任意点的位置,用x和y表示第一象限或第二象限的Python表达式为。x>0andy>0orx<0andy>06.判断整数i能否同时被3和5整除的Python表达式为。i%3==0andi%5==07.已知a=3,b=5,c=6,d=True,则表达式notdora>=0anda+c>b+3的值是。True8.Python表达式16-2*5>7*8/2or"XYZ"!="xyz"andnot(10-6>18/2)的值为。True9.下列Python语句的运行结果是。Truex=Truey=Falsez=Falseprint(xoryandz)10.下列Python语句的运行结果是。Falsex=0y=Trueprint(x>yand'A'<'B')11.执行下列Python语句将产生的结果是。TrueFalsem=Truen=Falsep=Trueb1=m|n^p;b2=n|m^pprint(b1,b2)12.对于if语句的条件表达式后面或else后面的语句块,应将它们。缩进对齐13.当x=0,y=50时,语句z=xifxelsey执行后,z的值是。50三、问答题1.条件“20<x<30或x<-100”的Python表达式是什么?2.Python实现选择结构的语句有哪些?各种语句的格式是十么?3.下列Python语句的运行结果为。nox=Falsey=Truez=Falseifxoryandz:print("yes")else:print("no")4.下列Python语句的运行结果为。2x=Truey=Falsez=Trueifnotxory:print(1)elifnotxornotyandz:print(2)elifnotxoryornotyandx:print(3)else:print(4)5.有下列3个if语句,分析在i和j取不同值时,x和y的值分别是多少?并上机验证自己的答案。(1)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=8(2)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=8(3)x=-1y=-2if(i>0):if(j>0):x=1y=2else:x=7y=86.说明以下3个if语句的区别:(1)if(i>0):if(j>0):n=1else:n=2(2)if(i>0):if(j>0):n=1else:n=2(3)if(i>0):n=1else:if(j>0):n=2(1)相当于:(2)相当于:(3)相当于:第5章循环结构程序设计练习题一、选择题1.关于循环的描述中不正确的是()。BA.循环的基本思想是重复B.Python允许无止境的循环C.循环是计算机解题的一个重要特征D.Python有while循环和for循环2.设有程序段k=10while(k):k=k-1则下面描述中正确的是()。AA.while循环执行10次 B.循环是无限循环C.循环体语句一次也不执行 D.循环体语句执行一次3.下列while循环执行的次数为()。Bk=1000whilek>1:print(k)k=k/2A.9B.10C.11D.10004.以下for语句中,不能完成1~10的累加功能的是()。AA.foriinrange(10,0):sum+=iB.foriinrange(1,11):sum+=iC.foriinrange(10,-1):sum+=iD.foriin(10,9,8,7,6,5,4,3,2,1):sum+=i5.对下列语句不符合语法要求的表达式是()。Dforvarin:print(var)A.range(0,10)B."Hello"C.(1,2,3)D.{1,2,3,4,5}6.下列循环语句中有语法错误的是()。DA.while(x==y):5 B.while(0):passC.foriin[1,2,3]:print(i) D.forTrue:x=307.下面Python循环体执行的次数与其他不同的是()。AA.i=0B.i=10while(i<=10):while(i>0):print(i)print(i)i=i+1i=i-1C.foriinrange(10):D.foriinrange(10,0,-1):print(i)print(i)8.可以终止循环体语句执行的语句是()。CA.continueB.exitC.breakD.quit9.下列说法中正确的是()。DA.break用在for语句中,而continue用在while语句中B.break用在while语句中,而continue用在for语句中C.continue能结束循环,而break只能结束本次循环D.break能结束循环,而continue只能结束本次循环二、填空题1.执行循环语句foriinrange(1,5,2):print(i),循环体执行的次数是。22.循环句语foriinrange(-3,21,4)的循环次数为。63.要使语句foriinrang(,-4,-2)循环执行15次,则循环变量i的初值应当为。25或264.执行循环语句foriinrange(1,5):pass后,变量i的值是。45.以下while循环的循环次数是()。无限次i=0while(i<10):if(i<1):continueif(i==5):breaki+=16.执行下面程序段后,k值是()。36k=1n=263while(n):k*=n%10n//=107.执行下列Python语句后的输出结果是,循环执行了次。1,1i=-1while(i<0):i*=iprint(i)8.Python无穷循环whileTrue:的循环体中可用语句退出循环。break9.下列Python语句的运行结果为。012234foriinrange(3):print(i,end='')foriinrange(2,5):print(i,end='')三、问答题1.什么叫循环?举例说明其应用。2.while循环和for循环有何区别?各自应用在什么场合?3.break语句和continue语句的区别是什么?4.Python中pass语句的作用是什么?5.对于累加求和问题一定要设置累加变量的初值,而且初值为0,这种说法对吗?6.在Python中,通过什么方式来确定循环体语句?实验题1.写出下列程序的运行结果。i=1whilei+1:ifi>4:print(i)i+=1breakprint(i)i+=21352.写出下列程序的运行结果。sum=j=1while(j<=3):f=1foriinrange(2,2*(j+1)):f*=isum+=fj+=1print("sum=",sum)3.阅读下面的Python程序,程序的功能是什么?importmathn=0forminrange(101,201,2):k=int(math.sqrt(m))foriinrange(2,k+2):ifm%i==0:breakifi==k+1:ifn%10==0:print()print(m,end='')n+=1输出100~200间的全部素数,每行输出10个数。4.阅读下面的Python程序,程序的输出结果是什么?程序的功能是什么?forninrange(1,1001):factors=[]foriinrange(1,n):if(n%i==0):factors.append(i)if(sum(factors)==n):print("{0}:{1}".format(n,factors))找出1000以内的所有完数。一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,因为6=1+2+3,因此6就是完数。第6章字符串处理练习题一、选择题1.访问字符串中的部分字符的操作称为()。AA.分片B.合并C.索引D.赋值2.下列关于字符串的描述错误的是()。BA.字符串s的首字符是s[0]B.在字符串中,同一个字母的大小是等价的。C.字符串中的字符都是以某种二进制编码的方式进行存储和处理的D.字符串也能进行关系比较操作3.执行下列语句后的显示结果是()。Aworld="world"print("hello"+world)A.helloworldB."hello"worldC.helloworldD."hello"+world4.下列表达式中,有3个表达式的值相同,另一个不相同,与其他3个表达式不同的是()。CA."ABC"+"DEF"B.''.join(("ABC","DEF"))C."ABC"-"DEF"D.'ABCDEF'*15.设s="PythonProgramming",那么print(s[-5:])的结果是()。AA.mmingB.PythonC.mminD.Pytho6.设s="HappyNewYear",则s[3:8]的值为()。BA.'ppyNe'B.'pyNe'C.'ppyN'D.'pyNew'7.将字符串中全部字母转换为大写字母的字符串方法是()。DA.swapcaseB.capitalizeC.uppercaseD.upper8.下列表达式中,能用于判断字符串s1是否属于字符串s(即s1是否s的子串)的是()。D①s1ins;②s.find(s1)>0;③s.index(s1)>0;④s.rfind(s1);⑤s.rindex(s1)>0A.①B.①②C.①②③D.①②③④⑤二、填空题1."4"+"5"的值是。'45'2.字符串s中最后一个字符的位置是。len(s)-13.设s='abcdefg',则s[3]的值是,s[3:5]的值是,s[:5]的值是,s[3:]的值是,s[::2]的值是,s[::-1]的值是,s[-2:-5]的值是。'd','de','abcde','defg','aceg','gfedcba',''4.'PythonProgram'.count('P')的值是。25.'AsDf888'.isalpha()的值是。False6.下面语句的执行结果是。['A','A','A']s='A'print(3*s.split())7.已知s1='redhat',print(s1.upper())的结果是,s1.swapcase()的结果是,s1.title()的结果是,s1.replace('hat','cat')的结果是。REDHAT,'REDHAT','RedHat','redcat'8.设s='a,b,c',s2=('x','y','z'),s3=':',则s.split(',')的值为,s.rsplit(',',1)的值为,s.partition(',')的值为,s.rpartition(',')的值为,s3.join('abc')的值为,s3.join(s2)的值为。['a','b','c'],['a,b','c'],('a',',','b,c'),('a,b',',','c'),'a:b:c','x:y:z'三、问答题1.什么叫字符串?有哪些常用的字符编码方案?2.数字字符和数字值(如'5'和5)有何不同?如何转换?3.为什么print('IlikePython'*5)可以正常执行,而print('IlikePython'+5)却运行时出错?4.写出表达式。(1)利用各种方法判断字符变量c是否为字母字符(不区分大小写字母)。c.isalpha()或c.lower()<='z'andc.lower()>='a'或c.upper()<='Z'andc.upper()>='A'或c<='Z'andc>='A'orc<='z'andc>='a'(2)利用各种方法判断字符变量c是否为大写字母。c.isupper()或者c<='Z'andc>='A'(3)利用各种方法判断字符变量c是否为小写字母。c.islower()或者c<='z'andc>='a'(4)利用各种方法判断字符变量c是否为数字符。c.isdigit()或c<='9'andc>='O'5.bytes对象和字符串有何不同?实验题1.写出程序的运行结果。c='123'+'456'+'789'c+=c[-3:]*2print(c)2.写出下列程序的功能。forkinrange(1,11):w=input()if'AEIOUaeiou'.find(w[0])>=0:print(w)3.下面是打印如图6-2所示的金字塔图案的程序,请补充程序。图6-2金字塔图案foriinrange(1,6):print(''*(15-i),end='')print('*'*(2*i-1))第7章列表与元组练习题一、选择题1.下列类型数据中可以变化的是()。AA.列表B.元组C.字符串D.单个字符2.Python语句print(type([1,2,3,4]))的输出结果是()。DA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>3.Python语句print(type((1,2,3,4)))的结果是()。AA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>4.下列选项中与s[0:-1]表示的含义相同的是()。CA.s[-1]B.s[:]C.s[:len(s)-1]D.s[0:len(s)]5.对于列表L=[1,2,'Python',[1,2,3,4,5]],L[-3]的是()。BA.1B.2C.'Python'D.[1,2,3,4,5]6.L.reverse()和L[-1:-1-len(L):-1]的主要区别是()。DA.L.reverse()和L[-1:-1-len(L):-1]都将列表的所有元素反转排列,没有区别B.L.reverse()和L[-1:-1-len(L):-1]都不会改变列表L原来内容C.L.reverse()不会改变列表L的内容,而L[-1:-1-len(L):-1]会改变列表L原来内容D.L.reverse()会改变列表L的内容,而L[-1:-1-len(L):-1]产生一个新列表,不会改变列表L原来内容7.tuple(range(2,10,2))的返回结果是()。CA.[2,4,6,8]B.[2,4,6,8,10]C.(2,4,6,8)D.(2,4,6,8,10)8.下列程序执行后,p的值是()。Aa=[[1,2,3],[4,5,6],[7,8,9]]p=1foriinrange(len(a)):p*=a[i][i]A.45B.15C.6D.289.下列Python语句的输出结果是()。Ca=[1,2,3,None,(),[]]print(len(a))A.4B.5C.6D.710.下列Python语句的运行结果是()。Bs1=[4,5,6]s2=s1s1[1]=0print(s2)A.[4,5,6]B.[4,0,6]C.[0,5,6]D.[4,5,0]二、填空题1.序列元素的编号从开始,访问序列元素时编号用括起来。0,中括号2.对于列表x,x.append(a)等价于。x.insert(len(x),a)3.设有列表L=[1,2,3,4,5,6,7,8,9],则L[2:4]的值是,L[::2]的值是,L[-1]的值是,L[-1:-1-len(L):-1]的值是。[3,4];[1,3,5,7,9];9;[9,8,7,6,5,4,3,2,1]4.表达式“2in[1,2,3,4]”的值是,max((1,2,3)*2)的值是。True,35.Python语句print(tuple(range(2)),list(range(2)))的运行结果是。(0,1)[0,1]6.Python表达式[iforiinrange(5)ifi%2!=0]的值为,[i**2foriinrange(3)]的值为。[1,3],[0,1,4]7.Python语句first,*middles,last=range(6)执行后,middles的值为,sum(middles)/len(middles)的值为。[1,2,3,4],2.58.已知fruits=['apple','banana','pear'],print(fruits[-1][-1])的结果是,print(fruits.index('apple'))的结果是,print('Apple'infruits)的结果是。r,0,False9.下列语句的运行结果是。5s=[1,2,3,4]s.append([5,6])print(len(s))10.下列语句的运行结果是。7s1=[1,2,3,4]s2=[5,6,7]print(len(s1+s2))11.下列Python语句的输出结果是。x=y=[1,2]x.append(3)print(xisy,x==y,end='')z=[1,2,3]print(xisz,x==z,y==z)TrueTrueFalseTrueTrue12.下列语句执行后,s值为。[4,'x','y']s=[1,2,3,4,5,6]s[:1]=[]s[:2]='a's[2:]='b's[2:3]=['x','y']dels[:1]13.下列语句执行后,s值为。[5,[1,2],'a']s=['a','b']s.append([1,2])s.extend([5,6])s.insert(10,8)s.pop()s.remove('b')s[3:]=[]s.reverse()三、问答题1.序列元素的类型是否要求一样?序列元素可以是哪些类型?2.分析下列语句的执行结果,总结语句y=x和y=x[:]的区别。>>>x=[1,2,3,4,5]>>>y=x>>>id(x),id(y)(36902912,36902912)>>>x=[1,2,3,4,5]>>>y=x[:]>>>id(x),id(y)(36905128,37316008)3.分析下列语句的执行结果,总结语句m+=[4,5]和m=m+[4,5]的区别。>>>m=[1,2]>>>n=m>>>m+=[4,5]>>>m,n([1,2,4,5],[1,2,4,5])>>>m=[1,2]>>>n=m>>>m=m+[4,5]>>>m,n([1,2,4,5],[1,2])4.列表和元组有何区别?如何进行它们之间的转换?实验题1.写出程序的运行结果。n=[[0]*5foriinrange(4)]foriinrange(len(n)):forjinrange(len(n[0])):n[i][j]=i+jprint(sum(n[i]))2.写出程序的运行结果。4name1=['Amy','Bob','Charlie','Daling']name2=name1name3=name1[:]name2[0]='Alice'name3[1]='Ben'sum=0forlsin(name1,name2,name3):ifls[0]=='Alice':sum+=1ifls[1]=='Ben':sum+=2print(sum)提示:语句name2=name1使得name1和name2指向(引用)相同的对象实例,而语句name3=name1[:]表示name3是复制(创建)的新实例,其内容与与name1(也即name2)的内容相同。3.写出程序的运行结果。m=3a=[50,75,53,92,77,64,79,21]s=[0]*10foriinrange(len(a)):k=a[i]//10s[k]=s[k]+1m=s[0]k=1whilek<10:ifs[k]>m:m=s[k]k+=1print('m=',m)4.筛选法求[2,n]范围内全部素数的基本思路是:在2~n中划去2的倍数(不包括2),再划去3的倍数(不包括3),由于4已被划去,再找5的倍数,……,直到划去不超过n的倍数,剩下的数都是素数。下面是用筛选法求[2,n]范围内的全部素数的程序,请补充程序。frommathimport*n=int(input("请输入n:"))m=int(sqrt(n))p=[]foriinrange(n+1):p.append(i)foriinrange(2,m+1):if(p[i]):forjinrange(2*i,n+1,i): #去掉i的倍数p[j]=0foriinrange(2,n+1): #输出全部素数if(p[i]):print(p[i])第8章字典与集合练习题一、选择题1.Python语句print(type({1:1,2:2,3:3,4:4}))的输出结果是()。BA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>2.Python语句print(type({1,2,3,4}))的输出结果是()。CA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'list'>3.以下不能创建字典的语句是()。CA.dict1={} B.dict2={3:5} C.dict3=dict([2,5],[3,4])D.dict4=dict(([1,2],[3,4]))4.对于字典D={'A':10,'B':20,'C':30,'D':40},对第4个字典元素的访问形式是()。DA.D[3]B.D[4]C.D[D]D.D['D']5.对于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是()。AA.4B.8C.10D.126.对于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是()。BA.10B.100C.40D.2007.以下不能创建集合的语句是()。CA.s1=set() B.s2=set(“abcd”)C.s3=(1,2,3,4) D.s4=frozenset((3,2,1))8.设a=set([1,2,2,3,3,3,4,4,4,4]),则sum(a)的值是()。AA.10B.20C.30D.409.下列Python语句的运行结果是()。Cd={1:'a',2:'b',3:'c'}print(len(d))A.0B.1C.3D.610.下列Python语句的运行结果是()。Dnums=set([1,2,2,3,3,3,4])print(len(nums))A.1B.2C.3D.411.已知s={'a',1,'b',2},print(s['b'])的运行结果是()。AA.语法错B.'b'C.1D.2二、填空题1.字典是的集合。“关键字:值”对2.集合是一组无序排列的、的元素集,它包含两种类型,即和。不重复,可变集合,不可变集合3.Python语句print(len({}))的结果是。04.Python语句print(set([1,2,1,2,3]))的结果是。{1,2,3}5.下列语句执行后,di['fruit'][1]的值是。bananadi={'fruit':['apple','banana','orange']}di['fruit'].append('watermelon')6.{1,2,3,4}&{3,4,5}的值是,{1,2,3,4}|{3,4,5}的值是,{1,2,3,4}-{3,4,5}的值是。{3,4},{1,2,3,4,5},{1,2}7.下列语句执行后的结果是。2d={1:'x',2:'y',3:'z'}deld[1]deld[2]d[1]='A'print(len(d))8.下列语句执行后的结果是。15fruits={'apple':3,'banana':4,'pear':5}fruits['banana']=7print(sum(fruits.values()))9.下列语句执行后的结果是。食品d1={1:'food'}d2={1:'食品',2:'饮料'}d1.update(d2)print(d1[1])10.下面语句的输出结果是()。6list1={}list1[1]=1list1['1']=3list1[1]+=2sum=0forkinlist1:sum+=list1[k]print(sum)11.下面语句的输出结果是()。{1:'x',3:'c'}d={1:'a',2:'b',3:'c'}deld[1]d[1]='x'deld[2]print(d)12.在Python中,设有s1={1,2,3},s2={2,3,5},则s1.update(s2)的结果为,ersection(s2)的结果为,s1.difference(s2)的结果为。{1,2,3,5},{2,3,5},{1}三、问答题1.字典和序列有何区别?2.什么是空字典和空集合?如何创建它们?3.字典的遍历有哪些方法?4.Python支持的集合运算有哪些?集合的比较运算有哪些?集合对象的方法有哪些?5.分别写出下列两个程序的输出结果,分析结果为何不同?程序1:d1={'a':1,'b':2}d2=d1d1['a']=6sum=d1['a']+d2['a']print(sum)程序2:d1={'a':1,'b':2}d2=dict(d1)d1['a']=6sum=d1['a']+d2['a']print(sum)程序1结果为12,其中的语句d2=d1使得d1和d2指向(引用)相同的对象实例。程序2结果为7。其中的d2=dict(d1)将产生一个新的实例赋给d2。实验题1.写出程序的运行结果。a=set('ababcdabca')x={xforxinaifxnotin'ab'}print(a-x)print(a|x)print(a^x)print(a&x)2.写出程序的运行结果。d={'Jack':'jack@','Tom':'Tom@'}d['Jim']='Jim@'deld['Tom']s=list(d.keys())s=sorted(s)print(s)3.写出程序的运行结果。numbers={}numbers[(1,2,3)]=1numbers[(2,1)]=2numbers[(1,2)]=3sum=0forkinnumbers:sum+=numbers[k]print(len(numbers),sum,numbers)36{(1,2):3,(2,1):2,(1,2,3):1}4.从键盘输入整数x,判断它是否集合a,b,c的元素,若是分别输出1,2,3,若都不是输出4。要求集合a从键盘输入。请补充程序。x=int(input())a=set()foriinrange(5):a.add(int(input()))b={12,43,56,2}c={3,2,67}ifxina:y=1elifxinb:y=2elifxinc:y=3else:y=4print('y=',y)第9章函数练习题一、选择题1.下列选项中不属于函数优点的是()。DA.减少代码重复B.使程序模块化C.使程序便于阅读D.便于发挥程序员的创造力2.关于函数的说法中正确的是()。BA.函数定义时必须有形参B.函数中定义的变量只在该函数体中起作用C.函数定义时必须带return语句D.实参与形参的个数可以不相同,类型可以任意3.以下关于函数说法正确的是()。DA.函数的实际参数和形式参数必须同名B.函数的形式参数既可以是变量也可以是常量C.函数的实际参数不可以是表达式D.函数的实际参数可以是其他函数的调用4.有以下两个程序。程序1:x=[1,2,3]deff(x):x=x+[4]f(x)print(x)程序2:x=[1,2,3]deff(x):x+=[4]f(x)print(x)下列说法正确的是()。AA.两个程序均能正确运行,但结果不同B.两个程序的运行结果相同C.程序1能正确运行,程序2不能D.程序1不能正确运行,程序2能5.已知f=lambdax,y:x+y,则f([4],[1,2,3])的值是()。CA.[1,2,3,4]B.10C.[4,1,2,3]D.{1,2,3,4}6.下列语句的运行结果是()。Df1=lambdax:x*2f2=lambdax:x**2print(f1(f2(2)))A.BB.4C.6D.87.下列程序执行后,y的值是()。Bdeff(x,y):returnx**2+y**2y=f(f(1,3),5)A.100B.125C.35D.98.output.py文件和test.py文件内容如下,且output.py和test.py位于同一文件夹中,那么运行test.py的输出结果是()。A#output.pydefshow():print(__name__)#test.pyimportoutputif__name__=='__main__':output.show()A.outputB.__name__C.testD.__main__二、填空题1.函数定义以关键字开始,最后以结束。def,冒号2.没有return语句的函数将返回。None3.函数定义时确定的参数称为,而函数调用时提供的参数称为。形式参数或形参,实际参数或实参4.使用关键字可以在一个函数中设置一个全局变量。global5.下列程序的输出结果是。40counter=1num=0defTestVariable():globalcounterforiin(1,2,3):counter+=1num=10TestVariable()print(counter,num)6.设有f=lambdax,y:{x:y},则f(5,10)的值是。{5:10}7.Python包含了数量众多的模块,通过语句,可以导入模块,并使用其定义的功能。import8.设Python中有模块m,如果希望同时导入m中的所有成员,则可以采用的导入形式。frommimport*9.Python中每个模块都有一个名称,通过特殊变量可以获取模块的名称。特别地,当一个模块被用户单独运行时,模块名称为。__name__,__main__10.建立模块a.py,模块内容如下。defB():print('BBB')defA():print('AAA')为了调用模块中的A()函数,应先使用语句。fromaimportA实验题1.有函数定义:defcube(x):globalansans=x**3returnans(1)说明该函数的功能。(2)输入a的值,并调用该函数求a3,请写出完整的程序。(3)有如下主程序:ans=10y=cube(4)print(ans,y)写出程序的输出结果。(4)如果在cube()函数定义的“globalans”语句最前面加上“#”,即改为“#globalans”,程序输出结果有否变化,为什么?2.写出程序的输出结果。defrec(L):ifL==[]:returnL=L[0:len(L)-1]#L指向新产生的列表print("L:",L)rec(L)print("L:",L)returnx=['a','b','c']rec(x)print('x=',x)3.当输入为8时,请写出程序的运行结果。2deffoo(num):forjinrange(2,num//2+1):ifnum%j==0:returnFalseelse:returnTruedefmain():n=int(input("Pleaseinputaninteger:"))c=0foriinrange(2,n+1):iffoo(i):c+=1print(c)if__name__=='__main__':main()4.写出程序的运行结果。8defpower(n,k):ifk==0:return1else:returnn*power(n,k-1)defmain():print(power(2,3))if__name__=='__main__':main()5.写出下列程序的运行结果。deffunc(a,n,m):ifn==0:return1else:num=func(a,n//2,m)ifn%2==0:returnnum*num%melse:returnnum*num*a%mprint(func(5,6,7))16.写出程序的运行结果。deff1():x=10print('Inf1x=',x)deff2():x=20print('Inf2x=',x)defmain():x=30f1()f2()print('Inmainx=',x)if__name__=='__main__':main()Inf1x=10Inf2x=20Inmainx=307.写出下列程序的运行结果。deffoo(s):ifs=="":returnselse:returnfoo(s[1:])+s[0]print(foo("HappyNewYear"))raeYweNyppaH8.写出程序的运行结果。defreverse0(lista):length=len(lista)listb=listaforiinrange(length):listb[i]=lista[length-i-1]returnlistbdefmain():la=['a','b','c','d','e']lb=reverse0(la)print(la)print(lb)if__name__=='__main__':main()['e','d','c','d','e']['e','d','c','d','e']9.写出程序的运行结果。deff(lst):n=len(lst)foriinrange(1,n):flag=Falseforjinrange(n-1,i-1,-1):iflst[j-1]<lst[j]:lst[j],lst[j-1]=lst[j-1],lst[j]flag=Trueifnotflag:breakp=['whatever','is','worth','doing','is','worth','doing','well']f(p)print(p)['worth','worth','whatever','well','is','is','doing','doing']10.写出下列程序的运行结果。deffunc(s,i,j):ifi<j:func(s,i+1,j-1)s[i],s[j]=s[j],s[i]defmain():a=[10,6,23,-90,0,3]func(a,0,len(a)-1)foriinrange(6):print(a[i])main()30-902361011.写出下列程序的运行结果。deffoo(list,num):ifnum==1:list.append(0)elifnum==2:foo(list,1)list.append(1)elifnum>2:foo(list,num-1)list.append(list[-1]+list[-2])mylist=[]foo(mylist,10)print(mylist)[0,1,1,2,3,5,8,13,21,34]12.下列程序的作用是求两个正整数m,n的最大公约数,请补充程序。defgcd(m,n):ifm<n:m,n=n,mifm%n==0:①else:return②ans=gcd(84,342)print(ans)①returnn②gcd(n,m%n)13.求,请补充程序。frommathimport*f=lambdan:(1+log(n))/(2*pi)y=exp(2.0)forninrange(1,101):y+=f(n)print(y)第10章文件操作练习题一、选择题1.在读写文件之前,用于创建文件对象的函数是()。AA.openB.createC.fileD.folder2.关于语句f=open('demo.txt','r'),下列说法不正确的是()。CA.demo.txt文件必须已经存在B.只能从demo.txt文件读数据,而不能向该文件写数据。C.只能向demo.txt文件写数据,而不能从该文件读数据。D.“r”方式是默认的文件打开方式3.下列程序的输出结果是()。Cf=open('c:\\out.txt','w+')f.write('Python')f.seek(0)c

温馨提示

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

评论

0/150

提交评论