Python语言程序设计(刘卫国第2版)(含视频教学)-课后习题及答案汇 习题1-13_第1页
Python语言程序设计(刘卫国第2版)(含视频教学)-课后习题及答案汇 习题1-13_第2页
Python语言程序设计(刘卫国第2版)(含视频教学)-课后习题及答案汇 习题1-13_第3页
Python语言程序设计(刘卫国第2版)(含视频教学)-课后习题及答案汇 习题1-13_第4页
Python语言程序设计(刘卫国第2版)(含视频教学)-课后习题及答案汇 习题1-13_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

PAGE3PAGE2习题1一、选择题1.Python语言属于()。CA.机器语言B.汇编语言C.高级语言D.科学计算语言2.下列选项中,不属于Python特点的是()。BA.面向对象B.运行效率高C.可读性好D.开源3.Python程序文件的扩展名是()。DA..pythonB..pytC..ptD..py4.以下叙述中正确的是()。CA.Python3.x与Python2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点5.下列选项中合法的标识符是()。AA._7a_bB.breakC._a$bD.7ab6.下列标识符中合法的是()。BA.i'mB._C.3QD.for7.Python不支持的数据类型有()。AA.char B.int C.float D.list8.关于Python中的复数,下列说法错误的是()。BCA.表示复数的语法形式是a+bjB.实部和虚部都必须是浮点数C.虚部必须加后缀j,且必须是小写D.函数abs()可以求复数的模9.函数type(1+0xf*3.14)的返回结果是()。DA.<class'int'>B.<class'long'>C.<class'str'>D.<class'float'>10.字符串s='a\nb\tc',则len(s)的值是()。CA.7B.6C.5D.411.Python语句print(0xA+0xB)的输出结果是()。DA.0xA+0xBB.A+BC.0xA0xBD.2112.下列属于math库中的数学函数的是()。CA.time() B.round()C.sqrt()D.random()13.Python表达式中,可以使用()控制运算的优先顺序。AA.圆括号()B.方括号[]C.大括号{}D.尖括号<>14.下列表达式中,值不是1的是()。DA.4//3B.15%2C.1^0D.~115.Python语句print(r"\nGood")的运行结果是()。CA.新行和字符串GoodB.r"\nGood"C.\nGoodD.字符r、新行和字符串Good16.语句eval('2+4/5')执行后的输出结果是()。AA.2.8 B.2C.2+4/5 D.'2+4/5'17.整型变量x中存放了一个两位数,要将这个两位数的个位数字和十位数字交换位置,例如,13变成31,正确的Python表达式是()。AA.(x%10)*10+x//10B.(x%10)//10+x//10C.(x/10)%10+x//10D.(x%10)*10+x%1018.与数学表达式对应的Python表达式中,不正确的是()。CA.c*d/(2*a*b)B.c/2*d/a/bC.c*d/2*a*bD.c*d/2/a/b二、填空题1.Python语句既可以采用交互式的执行方式,又可以采用执行方式。命令,程序2.在Python集成开发环境中,可使用快捷键运行程序。F53.使用math模块库中的函数时,必须要使用语句导入该模块。importmath4.Python表达式1/2的值为,1//3+1//3+1//3的值为,5%3的值为。0.5,0,25.Python表达式0x66&0o66的值为。386.设m,n为整型,则与m%n等价的表达式为。m-m//n*n7.计算231-1的Python表达式是。2**31-1或(1<<31)-18.数学表达式的Python表达式为。math.exp(abs(x-y))/(pow(3,x)+math.sqrt(6)*math.sin(y))三、问答题1.Python语言有何特点?语法结构简洁;程序可读性好;具有丰富的数据类型;开源的语言;解释性执行方式;面向对象语言。2.简述Python的主要应用领域及常用的函数模块。(1)系统维护与管理。通过使用pywin32模块提供的WindowsAPI函数接口可以编写与Windows系统底层功能相关的Python程序;利用py2exe模块可以将Python程序转换为.exe可执行程序,使得Python程序可以脱离Python系统环境来运行。(2)科学计算与数据可视化。Python中用于科学计算与数据可视化的模块有很多。例如,支持多维数组运算与矩阵运算的NumPy、支持高级科学计算功能的SciPy、支持二维、三维绘图功能的Matplotlib等。(3)数据库应用。Python数据库模块有很多,例如,可以通过内置的sqlite3模块访问SQLite数据库,使用pywin32模块访问Access数据库,使用pymysql模块访问MySQL数据库,使用pywin32和pymssql模块来访问SQLSever数据库。(4)多媒体应用。PyMedia模块可以对WAV、MP3、AVI等多媒体格式文件进行编码、解码和播放;PyOpenGL模块封装了OpenGL应用程序编程接口,通过该模块可在Python程序中集成二维或三维图形;PIL(PythonImagingLibrary,Python图形库)为Python提供了强大的图像处理功能,并提供广泛的图像文件格式支持。(5)网络应用。Python语言提供了socket模块,对Socket接口进行了二次封装,支持Socket接口的访问;Python语言还提供了urllib、requests、BeautifulSoap4、Scrapy等大量模块和框架,用于对网页内容进行读取和处理,并结合多线程编程以及其他有关模块可以快速开发网页爬虫之类的应用程序;Python语言还支持Web网站开发,比较流行的开发框架有web2py、Django、Flask等。(6)电子游戏应用。Pygame就是用来开发电子游戏软件的Python模块,它在SDL多媒体开发库的基础上开发,能在Python程序中创建功能丰富的游戏和多媒体程序。(7)数据科学和人工智能应用。Python是数据科学和人工智能领域的主流编程语言,在数据处理、文本分析、机器学习、深度学习等领域得到广泛应用。Pandas是基于NumPy的数据处理和分析工具,NLTK用于自然语言处理,jieba用于中文分词,Wordcloud可以生成词云图;Scikit-learn是常用的机器学习模块,提供了各种分类、回归、聚类等算法;TensorFlow、PyTorch则是常见的深度学习框架,提供了构建神经网络的功能。Keras是一个用Python编写的开源人工神经网络库。3.Python语言有哪些数据类型?Python数据类型包括数值型、字符串型、布尔型等基本数据类型,这是一般程序设计语言都有的数据类型。此外,Python还有列表、元组、字典和集合等复合数据类型,这是Python中具有特色的数据类型。4.写出下列数学式对应的Python表达式。(1) (2)(1)(math.sin(a)+math.sin(b))/(a+b)(2)(a**3+b**3+c**3)**(1/3)/35.按要求写出Python表达式。(1)将整数k转换成实数。(2)求实数x的小数部分。(3)求正整数m的百位数字。(4)随机产生一个8位数,每位数字可以是1到6中的任意一个整数。(1)float(k)(2)x-int(x)(3)m//100%10(4)int(random.randint(1,6)*1e7+random.randint(1,6)*1e6+random.randint(1,6)*1e5+random.randint(1,6)*1e4+random.randint(1,6)*1e3+random.randint(1,6)*100+random.randint(1,6)*10+random.randint(1,6))或:int(str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6))+str(random.randint(1,6)))6.下列语句的执行结果是False,分析其原因。>>>frommathimportsqrt>>>print(sqrt(3)*sqrt(3)==3)False主要是由于数值计算算法的计算误差造成的。习题2一、选择题1.流程图中表示判断框的是()。BA.矩形框B.菱形框C.平行四边形框D.椭圆形框2.下面不属于程序的基本控制结构的是()。DA.顺序结构B.选择结构C.循环结构D.输入输出结构3.以下关于Python语句的叙述中,正确的是()。AA.同一层次的Python语句必须对齐B.Python语句可以从一行的任意一列开始C.在执行Python语句时,可发现注释中的拼写错误D.Python程序的每行只能写一条语句4.下列语句中,在Python中非法的是()。CA.x=y=z=1 B.x,y=y,xC.x=(y=z+1) D.x+=y5.已知x=2,语句x*=x+1执行后,x的值是()。DA.2 B.3C.5 D.66.在Python中,正确的赋值语句为()。CA.x+y=10B.x=2yC.x=y=30D.3y=x+17.为了给整型变量x,y,z赋初值10,下面正确的Python赋值语句是()。CA.xyz=10B.x=10y=10z=10C.x=y=z=10D.x=10,y=10,z=108.语句x=input()执行时,如果从键盘输入12并按回车键,则x的值是()。DA.12 B.12.0C.1e2 D.'12'9.语句x,y=eval(input())执行时,输入数据格式错误的是()。AA.34B.(3,4)C.3,4D.[3,4]10.语句print('x=${:7.2f}'.format(123.5678))执行后的输出结果是()。选项中的□代表空格。CA.x=□123.56 B.$□123.57C.x=$□123.57 D.x=$□123.5611.print(f'{101/7:7.2f}{101%8:2d}')的运行结果是()的运行结果是()。BA.{:7.2f}{:2d}B.□□14.43□5(□代表空格)C.□14.43□□5(□代表空格)D.□□101/7□101%8(□代表空格)12.下列程序的运行结果是()。Dx=y=10x,y,z=6,x+1,x+2print(x,y,z)A.10106B.61010C.678D.61112二、填空题1.流程图是描述的常用工具。算法2.在Python语句行中使用多条语句,语句之间使用分隔;如果语句太长,可以使用作为续行符。分号,反斜杠3.Python语言通过来区分不同的语句块。缩进对齐4.在Python中,赋值的含义是使变量一个数据对象,该变量是该数据对象的。指向,别名5.和x/=x*y+z等价的语句是。x=x/(x*y+z)6.语句print('AAA',"BBB",sep='-',end='!')执行的结果是。AAA-BBB!7.下列Python语句的输出结果是。print("数量{0},单价{1}".format(100,285.6))print(f"数量{100},单价{285.6:3.2f}")print("数量{100:<4d},单价{285.6:3.3f}")数量100,单价285.6数量100,单价285.60数量{100:<4d},单价{285.6:3.3f}8.下列Python语句的输出结果是。print("121",f">{20:>5d}",sep='*')print("12321\ta={a:},b={b:}".format(b=20,a=30))121*>2012321 a=30,b=20三、问答题1.简述程序设计的基本步骤。程序设计(programming)要经过以下四个基本步骤:分析问题,确定数学模型或方法;设计算法,画出流程图;选择编程工具,按算法编写程序;调试程序,分析输出结果。2.简述Python程序中语句的缩进规则。Python通过语句缩进对齐反映语句之间的逻辑关系,从而区分不同的语句块。缩进可以由任意的空格或制表符组成,缩进的宽度不受限制,一般为四个空格或一个制表符,但在同一程序中不建议混合使用空格和制表符。就一个语句块来讲,需要保持一致的缩进量。这是Python语言区别于其他语言的重要特点。3.为什么要在程序中加注释?怎样在程序中加注释?加入注释对程序的执行有没有影响?注释对程序的执行没有任何影响,目的是对程序作补充解释,以增强程序的可读性。此外,在程序调试阶段,有时需要某些语句暂时不执行,这时可以给这些语句加注释符号,相当于对这些语句作逻辑删除,需要执行时,再去掉注释符号即可。程序中的单行注释采用#开头,注释可以从任意位置开始,可以在语句行末尾,也可以独立成行。Python没有块注释,所以现在推荐的多行注释也是采用#。4.用Python语句完成下列操作:(1)将变量i的值增加1。(2)i的立方加上j,并将其结果保存到i中。(3)将232-1的值存放到g中。(4)将两位自然数的个位与十位互换,得到一个新的数(不考虑个位为0的情况)。(1)i=i+1或i+=1(2)i=i**3+j(3)g=2**32-1或g=(1<<32)-1(4)m%10*10+m//105.设a=10,分别独立执行下列语句后a的值是多少?208503.021(1)a+=a(2)a*=2(3)a<<2(4)a,a=5,2*a(5)a*=1<<1(6)x=a;a+=x6.Python基本输入输出通过哪些语句来实现?基本输入输出是指通过键盘和屏幕的输入输出。Python用内置函数input()实现标准输入,Python两种标准输出值的方式是使用表达式语句和使用print()函数。7.格式化输出中有哪些常用的格式说明符?其含义是什么?常用格式控制符格式说明符格式化结果%%百分号%c字符%s字符串%d带符号整数(十进制)%o带符号整数(八进制)%x或%X带符号整数(十六进制,用小写字母或大写字母)%e或%E浮点数字(科学计数法,用小写e或大写E)%f或%F浮点数字(用小数点符号)%g或%G浮点数字(根据值的大小,采用%e、%f或%E、%F)8.从功能上讲,一个程序通常包括那些组成部分?程序功能一般包括3个部分:输入原始数据;对原始数据进行处理;输出处理结果。习题3一、选择题1.以下不合法的表达式是()。DA.xin[1,2,3,4,5]B.x-6>5C.e>5and4==fD.3=a2.将数学式2<x≤10表示成正确的Python表达式为()。BA.2<x≤10B.2<xandx<=10C.2<x&&x<=10D.x>2orx<=103.与关系表达式x==0等价的表达式是()。BA.x=0 B.notxC.xD.x!=14.下列表达式的值为True的是()。AA.2!=5or0 B.3>2>2C.5+4j>2-3jD.1and5==05.下面if语句统计“成绩(mark)优秀的男生以及不及格的男生”的人数,正确的语句为()。CA.ifgender=="男"andmark<60ormark>=90:n+=1B.ifgender=="男"andmark<60andmark>=90:n+=1C.ifgender=="男"and(mark<60ormark>=90):n+=1D.ifgender=="男"ormark<60ormark>=90:n+=16.以下if语句语法错误的是()。DA.ifa>0:x=20else:x=200B.ifa>0:x=20else:x=200C.ifa>0:x=20else:x=200D.ifa>0x=20elsex=2007.在Python中,实现多分支选择结构的较好方法是()。CA.if B.if-elseC.if-elif-elseD.if嵌套8.下列语句执行后的输出是()。Cif2:print(5)else:print(6)A.0 B.2C.5D.69.下面程序段求x和y中的较大数,不正确的是()。DA.maxNum=xifx>yelseyB.ifx>y:maxNum=xelse:maxNum=yC.maxNum=yifx>y:maxNum=xD.ify>=x:maxNum=ymaxNum=x10.下列Python程序的运行结果是()。Bx=0y=Trueprint(x>yand'A'<'B')A.TrueB.FalseC.trueD.false二、填空题1.表达式2<=1and0ornot0的值是。True2.已知ans='n',则表达式ans=='y'or'Y'的值为。'Y'3.Python提供了两个对象身份比较运算符和来测试两个变量是否指向同一个对象。is,isnot4.在直角坐标中,x、y是坐标系中任意点的位置,用x和y表示第一象限或第二象限的Python表达式为。x>0andy>0orx<0andy>05.已知a=3,b=5,c=6,d=True,则表达式notdora>=0anda+c>b+3的值是。True6.Python表达式16-2*5>7*8/2or"XYZ"!="xyz"andnot(10-6>18/2)的值为。True7.下列Python语句的运行结果是。Truex=Truey=Falsez=Falseprint(xoryandz)8.执行下列Python语句将产生的结果是。TrueFalsem=Truen=Falsep=Trueb1=m|n^p;b2=n|m^pprint(b1,b2)9.对于if语句中的语句块,应将它们。缩进对齐10.当x=0,y=50时,语句z=xifxelsey执行后,z的值是。50三、问答题1.写出条件“20<x<30或x<-100”的Python表达式。20<x<30orx<-100或x>20andx<30orx<-1002.Python实现选择结构的语句有哪些?各种语句的格式是十么?Python用if语句实现选择结构,可分为单分支、双分支和多分支选择结构。单分支if选择结构的一般格式为:if条件表达式:语句块双分支if选择结构的一般格式为:if条件表达式:语句块1else:语句块2多分支if选择结构的一般格式为:if条件表达式1:语句块1elif条件表达式2:语句块2elif条件表达式3:语句块3…elif条件表达式m:语句块m[else:语句块n]3.下列两个语句各自执行后,x和y的值是多少?它们的作用是什么?x=y=5x=y==54.下列Python语句的运行结果为。nox=Falsey=Truez=Falseifxoryandz:print("yes")else:print("no")5.下列Python语句的运行结果为。2x=Truey=Falsez=Trueifnotxory:print(1)elifnotxornotyandz:print(2)elifnotxoryornotyandx:print(3)else:print(4)6.说明以下三个if语句的区别。语句一:ifi>0:ifj>0:n=1else:n=2语句二:ifi>0:ifj>0:n=1else:n=2语句三:ifi>0:n=1else:ifj>0:n=2语句一相当于:语句二相当于:语句三相当于:习题4一、选择题1.关于while循环和for循环的区别,下列叙述中正确的是()。CA.while语句的循环体至少无条件执行一次,for语句的循环体有可能一次都不执行B.while语句只能用于循环次数未知的循环,for语句只能用于循环次数已知的循环C.在很多情况下,while语句和for语句可以等价使用D.while语句只能用于可迭代变量,for语句可以用任意表达式表示条件2.设有程序段:k=10whilek:k=k-1print(k)则下面描述中正确的是()。AA.while循环执行10次 B.循环是无限循环C.循环体语句一次也不执行 D.循环体语句执行一次3.以下while语句中的表达式“notE”等价于()。AwhilenotE:passA.E==0B.E!=1C.E!=0 D.E==14.有以下程序段:n=0p=0whilep!=100andn<3:p=int(input())n+=1while循环结束的条件是()。DA.p的值不等于100并且n的值小于3B.p的值等于100并且n的值大于等于3C.p的值不等于100或者n的值小于3D.p的值等于100或者n的值大于等于35.以下for语句中,不能完成1~10的累加功能的是()。AA.Sum=0B.Sum=0foriinrange(10,0):foriinrange(1,11):Sum+=i Sum+=iC.Sum=0D.Sum=0foriinrange(10,0,-1):foriin(10,9,8,7,6,5,4,3,2,1):Sum+=i Sum+=i6.对下列语句不符合语法要求的表达式是()。Dforvarin:print(var)A.range(0,10)B."Hello"C.(1,2,3)D.{1,2,3,4,5}7.下面Python循环体执行的次数与其他不同的是()。AA.i=0B.i=10whilei<=10:whilei>0:print(i)print(i)i+=1i-=1C.foriinrange(10):D.foriinrange(10,0,-1):print(i)print(i)8.下列for循环执行后,输出结果的最后一行是()。Cforiinrange(1,3):forjinrange(2,5):print(i*j)A.2 B.6C.8 D.159.关于下列for循环,叙述正确的是()。Dfortinrange(1,11):x=int(input())ifx<0:continueprint(x)A.当x<0时整个循环结束 B.x>=0时什么也不输出C.print()函数永远也不执行 D.最多允许输出10个非负整数10.下列说法中正确的是()。DA.break用在for语句中,而continue用在while语句中B.break用在while语句中,而continue用在for语句中C.continue能结束循环,而break只能结束本次循环D.break能结束循环,而continue只能结束本次循环二、填空题1.当循环结构的循环体由多个语句构成时,必须用的方式组成一个语句块。缩进对齐2.执行下列程序后的输出结果是,其中while循环执行了次。1,1i=-1whilei<0:i*=iprint(i)3.以下while循环的循环次数是()。无限次i=0whilei<10:ifi<1:continueifi==5:breaki+=14.执行下列程序后,k的值是()。36k=1n=263whilen:k*=n%10n//=105.执行循环语句foriinrange(1,5,2):print(i),循环体执行的次数是。26.循环语句foriinrange(-3,21,4)的循环次数为。67.要使语句foriinrang(,-4,-2)循环执行15次,则循环变量i的初值应当为。25或268.执行循环语句foriinrange(1,5):pass后,变量i的值是。49.下列程序的输出结果是()。8s=10foriinrange(1,6):whileTrue:ifi%2==1:breakelse:s-=1breakprint(s)10.下列程序的输出结果是()。55importnumpyasnpa=np.arange(11)s=sum(a[-10:])print(s)三、问答题1.什么叫循环结构?举例说明其应用。循环是指重复执行某些语句。例如,求多个数据之和可以分解为求两个数据之和的重复,即重复做当前的累加和与新的累加数之和。2.下列程序的输出结果是什么?如果将语句“print(s)”与语句“pass”缩进对齐,则输出结果是什么?通过比较两次输出结果,可以得到什么结论?s=10foriinrange(1,6):passprint(s)程序的输出结果是:10如果将语句“print(s)”与语句“pass”缩进对齐,则输出结果是:1010101010通过比较两次输出结果,可以看出同时缩进对齐的语句构成一个语句块。3.break语句和continue语句的区别是什么?break语句用在循环体内,迫使所在循环立即终止,即跳出所在循环体,继续执行循环结构后面的语句。与break语句不同,当在循环结构中执行continue语句时,并不会退出循环结构,而是立即结束本次循环,重新开始下一轮循环,也就是说,跳过循环体中在continue语句之后的所有语句,继续下一轮循环。对于while语句,执行continue语句后将使控制直接转向条件判断部分,从而决定是否继续执行循环。对于for语句,执行continue语句后并没有立即测试循环条件,而是先将序列的下一个元素赋给目标变量,根据赋值情况来决定是否继续执行for循环。4.对于累加求和问题一定要设置累加变量的初值,而且初值都为0,这种说法对吗?用具体程序说明自己的判断。不对,累加求和时累加变量的初值一般为0,但也可以不为0,视情况而定。看下面的程序:功能一样,但初值不同。程序1:s=0foriinrange(101):s+=iprint(s)程序2:s=1foriinrange(2,101):s+=iprint(s)5.用while语句改写下列程序。s=0foriinrange(2,101,2):s+=iprint(s)改写后的程序如下:s,i=0,2whilei<101:s+=ii+=2print(s)习题5一、选择题1.下列关于字符串的描述错误的是()。BA.字符串s的首字符是s[0]B.在字符串中,同一个字母的大小是等价的。C.字符串中的字符都是以某种二进制编码的方式进行存储和处理的D.字符串也能进行关系比较操作2.执行下列语句后的显示结果是()。Aworld="world"print("hello"+world)A.helloworldB."hello"worldC.helloworldD."hello"+world3.下列表达式中,有3个表达式的值相同,另一个不相同,与其他3个表达式不同的是()。CA."ABC"+"DEF"B.''.join(("ABC","DEF"))C."ABC"-"DEF"D.'ABCDEF'*14.设s="PythonProgramming",那么print(s[-5:])的结果是()。AA.mmingB.PythonC.mminD.Pytho5.设s="HappyNewYear",则s[3:8]的值为()。BA.'ppyNe'B.'pyNe'C.'ppyN'D.'pyNew'6.将字符串中全部字母转换为大写字母的字符串方法是()。DA.swapcaseB.capitalizeC.uppercaseD.upper7.下列表达式中,能用于判断字符串s1是否属于字符串s(即s1是否s的子串)的是()。D①s1ins;②s.find(s1)>0;③s.index(s1)>0;④s.rfind(s1);⑤s.rindex(s1)>0A.①B.①②C.①②③D.①②③④⑤8.re.findall('to','Tomlikestoplayfootballtoo.',re.I)的值是()。AA.['To','to','to']B.['to','to','to']C.['To','to']D.['to','to']9.下列程序执行后,得到的输出结果是()。Cimportrep=pile(r'\bb\w*\b')str="Boysmaybeabletogetabetteridea."print(p.sub('**',str,1))A.**maybeabletogetabetteridea.B.Boysmaybeabletogeta**idea.C.Boysmay**abletogetabetteridea.D.Boysmay**abletogeta**idea.10.以下能获取网页的库是()。CA.response B.reC.requests D.jieba二、填空题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.下面语句的执行结果是。['A','A','A']s='A'print(3*s.split())6.已知s1='redhat',print(s1.upper())的结果是,s1.swapcase()的结果是,s1.title()的结果是,s1.replace('hat','cat')的结果是。REDHAT,'REDHAT','RedHat','redcat'7.设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'8.re.sub('hard','easy','Pythonishardtolearn.')的值是。'Pythoniseasytolearn.'9.下列程序执行后,得到的输出结果是。['An','elite','university']importrestr="Aneliteuniversitydevotedtocomputersoftware"print(re.findall(r'\b[aeiouAEIOU]\w+?\b',str))三、问答题1.什么叫字符串?有哪些常用的字符编码方案?字符串是一个字符序列。在Python中,字符串常量是用单引号、双引号或三引号括起来的若干个字符,字符串变量是用来存放字符串常量的变量。有许多不同的字符编码方案,有一些是为特定的语言(如英语、中文、俄语等)设计的,有一些则可以用于多种语言。例如,Unicode编码标准为表达全世界所有语言的任意字符而设计,它使用4字节的数字编码来表达每个字母、符号或文字。2.数字字符和数字值(如'5'和5)有何不同?如何转换?一个是字符,一个是数值,数据类型不同,值也不同。数值d所对应的字符是chr(ord('0')+d)设d=5,则chr(ord('0')+d)的值是'5'。3.为什么print('IlikePython'*5)可以正常执行,而print('IlikePython'+5)却运行时出错?Python提供乘法运算符(*)来构建一个由其自身字符串重复连接而成的字符串。“+”是数值加法运算,要求运算对象为数值。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.re.match("back","text.back")与re.search("back","text.back")的执行结果有何不同?match()函数从字符串的开始位置尝试匹配正则表达式,若匹配成功,则返回match对象,否则返回None。match()函数只在字符串的开始位置尝试匹配正则表达式,也就是只报告从位置0开始的匹配情况。如果想要搜索整个字符串来寻找匹配,应当用search()函数。re.match("back","text.back")返回None,re.search("back","text.back")返回一个match对象。6.对一个字符串进行分词处理并制作词云图,请写出相关命令。参见下面的程序:importreimportjiebaimportnumpyasnpfromPILimportImagefromwordcloudimportWordCloudtxt="中南大学坐落在中国历史文化名城湖南省长沙市"words=jieba.lcut(txt)#分词,返回一个列表text="".join(words)#将列表组合成字符串,""中有一个空格imObj=Image.open('background.png')#通过导入背景图片创建Image对象background=np.array(imObj)#将背景图片转换为ndarray多维数组wcObj=WordCloud(mask=background,background_color="white",\collocations=False,font_path="msyh.ttc")#创建WordCloud对象wcObj.generate(text)#生成词云图wcObj.to_file('Wordcloud.png')#存储词云图片imObj=Image.open("Wordcloud.png")#导入词云图imObj.show()#显示词云图习题6一、选择题1.下列Python数据中,其元素可以改变的是()。AA.列表B.元组C.字符串D.数组2.表达式“[2]in[1,2,3,4]”的值是()。DA.YesB.NoC.TrueD.False3.max((1,2,3)*2)的值是()。AA.3B.4C.5D.64.下列选项中与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程序的运行结果是()。Cs=[1,2,3,4]s.append([5,6])print(len(s))A.2B.4C.5D.610.下列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)等价于(用insert方法)。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.Python语句print(tuple(range(2)),list(range(2)))的运行结果是。(0,1)[0,1]5.Python表达式[iforiinrange(5)ifi%2!=0]的值为,[i**2foriinrange(3)]的值为。[1,3],[0,1,4]6.Python语句first,*middles,last=range(6)执行后,middles的值为,sum(middles)/len(middles)的值为。[1,2,3,4],2.57.已知fruits=['apple','banana','pear'],print(fruits[-1][-1])的结果是,print(fruits.index('apple'))的结果是,print('Apple'infruits)的结果是。r,0,False8.下列程序的运行结果是。7s1=[1,2,3,4]s2=[5,6,7]print(len(s1+s2))9.下列语句执行后,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]10.下列语句执行后,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.什么叫序列?它有哪些类型?各有什么特点?序列的元素是按照位置编号来顺序存取的。Python中的字符串、列表和元组数据类型均属于序列类型。列表和元组则可以存储不同类型的元素。2.设有列表a,要求从列表a中每三个元素取一个,并且将取到的元素组成新的列表b,请写出语句。b=a[0:len(a):3]3.用列表解析式生成包含10个数字5的列表,请写出语句。如果要生成包含10个数字5的元组,请写出语句。[5foriinrange(10)],tuple(5foriinrange(10))4.分析下列语句的执行结果,总结语句y=x和y=x[:]的区别。>>>x=[1,2,3,4,5]>>>y=x>>>id(x),id(y)(36312688,36312688)>>>x=[1,2,3,4,5]>>>y=x[:]>>>id(x),id(y)(36313288,36312728)x[:]将产生一个新的列表,所以x和y代表不同的对象。而语句y=x则是给x的内容再取一个名字y,也就是x和y都指向相同的存储内容,并没有实现存储内容的真正的复制。5.分析下列语句的执行结果,总结语句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])m+=[4,5]对列表m进行扩展,等同于m.extend([4,5])。m=m+[4,5]创建一个新的对象,m指向这个新的对象。6.写出下列程序的运行结果。n=tuple([[1]*5foriinrange(4)])foriinrange(len(n)):forjinrange(i,len(n[0])):n[i][j]=i+jprint(sum(n[i]))10151716习题7一、选择题1.Python语句print(type({1:1,2:2,3:3,4:4}))的输出结果是()。BA.<class'tuple'>B.<class'dict'>C.<class'set'>D.<class'frozenset'>2.以下不能创建字典的语句是()。CA.dict1={} B.dict2={3:5} C.dict3=dict([2,5],[3,4])D.dict4=dict(([1,2],[3,4]))3.对于字典D={'A':10,'B':20,'C':30,'D':40},对第4个字典元素的访问形式是()。DA.D[3]B.D[4]C.D[D]D.D['D']4.对于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是()。AA.4B.8C.10D.125.对于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是()。BA.10B.100C.40D.2006.以下不能创建集合的语句是()。CA.s1=set() B.s2=set(“abcd”)C.s3={} D.s4=frozenset((3,2,1))7.设a=set([1,2,2,3,3,3,4,4,4,4]),则a.remove(4)的值是()。AA.{1,2,3}B.{1,2,2,3,3,3,4,4,4}C.{1,2,2,3,3,3}D.[1,2,2,3,3,3,4,4,4]8.下列语句执行后的结果是()。Dfruits={'apple':3,'banana':4,'pear':5}fruits['banana']=7print(sum(fruits.values()))A.7B.19C.12D.159.下列语句执行后的结果是()。Cd1={1:'food'}d2={1:'食品',2:'饮料'}d1.update(d2)print(d1[1])A.1B.2C.食品D.饮料10.下列Python程序的运行结果是()。Bs1=set([1,2,2,3,3,3,4])s2={1,2,5,6,4}print(s1&ersection(s2))A.{1,2,4}B.set()C.[1,2,2,3,3,3,4]D.{1,2,5,6,4}二、填空题1.在Python中,字典和集合都使用作为定界符。字典的每个元素由两部分组成,即和,其中不允许重复。大括号,关键字,值,关键字2.集合是一个无序、的数据集,它包括和两种类型,前者可以通过大括号或函数创建,后者需要通过函数创建。不重复,可变集合,不可变集合,set(),frozenset()3.下列语句执行后,di['fruit'][1]的值是。bananadi={'fruit':['apple','banana','orange']}di['fruit'].append('watermelon')4.语句print(len({}))的执行结果是。05.设a=set([1,2,2,3,3,3,4,4,4,4]),则sum(a)的值是。106.{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.设有s1={1,2,3},s2={2,3,5},则s1.update(s2)执行后,s1的值为,ersection(s2)的执行结果为,s1.difference(s2)的执行结果为。{1,2,3,5},{2,3,5},{1}8.下列程序的运行结果是。2d={1:'x',2:'y',3:'z'}deld[1]deld[2]d[1]='A'print(len(d))9.下面程序的运行结果是。6list1={}list1[1]=1list1['1']=3list1[1]+=2sum=0forkinlist1:sum+=list1[k]print(sum)10.下面程序的运行结果是。9s=set()foriinrange(1,10):s.add(i)print(len(s))三、问答题1.什么是空字典和空集合?如何创建?空字典和空集合即没有任何元素的字典或集合;{}表示空字典,空集合用set()表示。2.设有列表a=['number','name','score'],b=['21001','denmer',90],写一个语句将这两个列表的内容转换为字典,且以列表a中的元素为关键字,以列表b中的元素为值。dict(zip(a,b))3.字典的遍历有哪些方法?字典的遍历有多种方式:遍历字典的关键字,遍历字典的值,遍历字典的元素。4.集合有哪两种类型?分别如何创建?Python集合包含两种类型:可变集合(set)和不可变集合(frozenset)。创建可变集合有两种方式:一种是用一对大括号将多个用逗号分隔的数据括起来;另一种是使用set()函数,该函数可以将字符串、列表、元组等类型的数据转换成集合类型的数据。Python提供frozenset()函数来创建不可变集合,不可变集合是不能修改的,因此能作为其他集合的元素,也能作为字典的关键字。例如:5.Python支持的集合运算有哪些?集合的比较运算有哪些?集合对象的方法有哪些?集合运算包括传统的集合运算:并集,交集,差集,对称差集。集合的比较有:判断两个集合是否相等、不相等、小于、小于等于、大于、大于等于。适用于可变集合和不可变集合的方法:s1.issubset(s2)、s1.issuperset(s2)、s1.isdisjoint(s2)、s1.union(s2,……,sn)、ersection(s2,……,sn)、s1.difference(s2,……,sn)、s1.symmetric_difference(s2)、s.copy();适用于可变集合的方法:s.add(x)、s.update(s1,s2,……,sn)、ersection_update(s1,s2,……,sn)、s.difference_update(s1,s2,……,sn)、s.symmetric_difference_update(s1)、s.remove(x)、s.discard(x)、s.pop()、s.clear()。6.分别写出下列两个程序的输出结果,输出结果为何不同?程序一:d1={'a':1,'b':2}d2=d1d1['a']=6sum=d1['a']+d2['a']print(sum)程序二:d1={'a':1,'b':2}d2=dict(d1)d1['a']=6sum=d1['a']+d2['a']print(sum)程序一结果为12,其中的语句d2=d1使得d1和d2指向(引用)相同的对象实例。程序二结果为7。其中的d2=dict(d1)将产生一个新的实例赋给d2。习题8一、选择题1.下列选项中不属于函数优点的是()。DA.减少代码重复B.使程序模块化C.使程序便于阅读D.便于发挥程序员的创造力2.关于函数的说法中正确的是()。BA.函数定义时必须有形参B.函数中定义的变量只在该函数体中起作用C.函数定义时必须带return语句D.实参与形参的个数可以不相同,类型可以任意3.以下关于函数说法正确的是()。DA.函数的实际参数和形式参数必须同名B.函数的形式参数既可以是变量也可以是常量C.函数的实际参数不可以是表达式D.函数的实际参数可以是其他函数的调用4.有return语句的函数将返回()。BA.0B.其参数值C.NoneD.其名字5.下列程序的输出结果是()。Bdefswap(x):x[0],x[1]=x[1],x[0]a=[10,20]swap(a)print(a[0],a[1])A.1020B.2010C.[2010]D.[1020]6.有以下两个程序。程序一:x=[1,2,3]deff(x):x=x+[4]f(x)print(x)程序二:x=[1,2,3]deff(x):x+=[4]f(x)print(x)下列说法正确的是()。AA.两个程序均能正确运行,但结果不同B.两个程序的运行结果相同C.程序一能正确运行,程序二不能D.程序一不能正确运行,程序二能7.已知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}8.下列程序的运行结果是()。Df=[lambdax=1:x*2,lambdax:x**2]print(f[1](f[0](3)))A.1B.6C.9D.369.下列程序的运行结果是()。Bdeff(x=2,y=0):returnx-yy=f(y=f(),x=5)print(y)A.-3B.3C.2D.510.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[1,2,3],4”后,返回值是;没有return语句的函数将返回。([1,2,3],4),None3.使用关键字可以在一个函数中设置一个全局变量。global4.下列程序的输出结果是。defrecp(n):ifn==1:return0elifn==2:return1elifn>2:returnrecp(n-1)*2+recp(n-2)print(recp(5))125.下列程序的输出结果是。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.什么叫递归函数?举例说明。递归(recursion)调用是指在一个程序中存在程序自己调用自己的现象。例如,求n!的递归函数。根据n!的递归表示形式,用递归函数描述如下:deffac(n):ifn<=1:return1else:returnn*fac(n-1)m=fac(3)print(m)2.什么叫lambda函数?举例说明。在Python中,可以使用lambda关键字来在同一行内定义函数,因为不用指定函数名,所以这个函数被称为匿名函数,也称为lambda函数,定义格式为:lambda[参数1[,参数2,……,参数n]]:表达式例如:>>>f=lambdax,y:x+y>>>f(5,10)3.什么叫模块?如何导入模块?Python模块是比函数更高级别的程序组织单元,一个模块可以包含若干个函数。与函数相似,模块也分标准库模块和用户自定义模块。可以通过执行import语句来导入Python模块,语句格式如下:import模块名1[,模块名2[,……,模块名n]4.写出下列程序的输出结果。defff(x,y=100):return{x:y}print(ff(y=10,x=20)){20:10}5.分析下面的程序。x=10deff():#y=xx=0print(x)print(x)f()(1)函数f()中的x和程序中的x是同一个变量吗?程序的输出结果是什么?(2)删除函数f()中第一个语句前面的“#”,此时运行程序会出错,为什么?(3

温馨提示

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

评论

0/150

提交评论