《Python程序设计(微课版)》课后习题答案_第1页
《Python程序设计(微课版)》课后习题答案_第2页
《Python程序设计(微课版)》课后习题答案_第3页
《Python程序设计(微课版)》课后习题答案_第4页
《Python程序设计(微课版)》课后习题答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

《Python程序设计(微课版)》课后习题答案单元1认识Python一、 填空题Python是一种面向对象的解释型 计算机程序设计语言。Python3.x自带官方集成开发环境是IDLE°Python程序源文件的扩展名是 -py二、 思考题列举三个常用的Python集成开发环境。答:PyCharm、Eclipse(withPyDev)、VisualStudioCode思考并理解Python语言的特性。答:Python是一种面向对象的解释型程序设计语言,语法简涪、可读性强。Python提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容。用Python开发,许多功能不必从零编写,直接使用现成的即可。除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。Python是跨平台的,它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序,放到Linux上也是能够运行的。 单元2变量和简单数据类型一、 填空题布尔值是整型的子类,用数值1和0代表常量 JTruj和一False,。表达式由运算符、操作数和圆括号组成。二、 如果a=l、b=2、c=0,写出下列表达式的逻辑值:a>bora+b<cFalsenot(a>b)Truea-b<candnotcTrue三、 编程题输入矩形的长与宽,计算矩形面积。length=int(input("in输入矩形的长:”))width=int(input("请输入矩形的宽:"))area=length*widthprint("矩形面积为:”,area)单元3流程控制一、 填空题Python中的流程控制语句有—顺序结构一、_分支结构_和_循环结构continue,语句用于跳出本次循环,进入下一次循环。二、 写出下列程序的运行结果请使用字符串格式化的方式写一个新年问候语模板。a=0ifa:print("Hello")else:print("World”)结果:World将一串字符串中以.com或.cn为域名后缀的URL网址匹配出来,过滤掉其他无关信息,如:<ahref=''>百度</a>。i=sum=0whilei<=4:sum+=ii=i+1print(sum)结果:10三、编程题编程输出九九乘法表。1x2=22x2=41x3=32x3=63x3=91x4=42x4=83x4=124x4=161x5=52x5=103x5=154x5=205x5=251x6=62x6=123x6=184x6=245x6=306x6=361x7=72x7=143x7=214x7=285x7=356x7=421x8=82x8=163x8=244x8=325x8=406x8=481x9=92x9=183x9=274x9=365x9=456x9=541x1=17x7=497x8=568x8=647x9=638x9=729x9=81fbriinrange(1,10):forjinrange。,i+1):print(str(i)+V+str(j)+”=”+str(i*j),end=””)print。单元4字符串与正则表达式一、 填空题使用lenQ函数可以查看字符串的长度。字符串中从左往右的第一个字符索引为 表达式"helloworld"[-5:]的结果为 world_。表达式"hclloworld"[-5]^结果为,w一。正则表达式模块rc的 search。-方法用来在整个字符串中进行指定模式的匹配。二、 编程题1.请使用字符串格式化的方式写一个新年问候语模板。template=”--*”*7+"\n\t节日快乐\t\n{0}:\n\t祝您{1}快乐!\n\t\t\t2}\n”+”—*”*7print(template.fbrmat(M李老师”,”春节”,”李梅”))节日快乐李老师:祝您春节快乐!李梅将一串字符串里面以.com或.cn为域名后缀的URL网址匹配出来,过滤掉其他无关信息。如:<ahrcf=''>百度</a>importrestrl="<ahre仁‘’>百度</a>"partem="(http://){0,1}[a-zA-Z0-9.]*(com|cn)"result=re.search(pattem,str1)ifresult:print(rcsult.groupO)else:print(Mnotmatched")单元5组合数据类型一、 简单题能否直接修改字符串的某个字符?例如s="abc”,s[0]=”l”可以吗?答:在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符。元组和列表有什么不同?答:list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明5261一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这和类型是可以被改变的元祖和列表十分相似,不过元组是不可变的。即你不能修改元组。元组通过圆括号中用逗号分隔的项目定义。元组通常用在使语句或用户定义的函数能够1653安全的采用一组值的时候,即被使用的元组的值不会改变。二、 编程题1.设计一个字符串函数reverse(s),返回字符串s的反串,例如reverse(”abc”)返回”cba”。defrcvcrsc(s):iflen(s)<l:returnsreturnreverse(s[l:])+s[0]r=reverse(s)print(r)用一个字典描述一个日期,包含年(year)、月(month)、日(day)的键字。today_time=datetime.datetime.now。todaytimedict={'year':today_time.year,'month':today_time.month,'day':today_time.day}写出下列程序执行的结果Traceback(mostrecentcalllast):File"C:/Users/Everdeen/Desktop/123.py",line4,in<module>fork3ind2.keys():NameError:name'd2'isnotdefined单元6Python函数与模块1.编程计算1+2+4+...+100。sum=0foriinrange(1,101):sum=sum+iprint(sum)从键盘输入一个字符串,直到按Enter键结束,编程统计字符串中的大小写英文字母各有多少个。#python中输入字符串复,统计字符串中制大小写2113英文字母5261各有多少4102个?classcountNum(object):def init (self):s=input("inputastring")self.s=sdefjudge(self):bigger=0smaller=0fbriinselfs:ifi<'A'ori>'z':continueclif,A,<i<Z:bigger+=1elif'a'<i<'z':smaller+=1returnbigger,smallerifname==*mainp=countNum()big,small=p.judgc()print(”大写字母1653%d个”%big)print("小写字母%<1个”%small)小华今年12岁,她妈妈比她大20岁,编写程序计算多少年后她妈妈年龄比她大一倍。y=>whiley<150:if32+y=2*(12+y):print(y)y+=l假设世界人口是60亿,如果每年按1.5%的比例增长,编写程序计算经过多少年后世界人口可以达到80亿。x=60year=1while1:x*=1.015ifx>=80:print(x,year)breakelse:year+=1一个小球从80米高空自由下落,每次落地后返回原高度的一半,再落下。编写程序计算小球在第10次落地时共经过多少米,以及第10次反弹有多高。high=80n=10high_all=0#第n次落地时走过的长度high_cach=0#每次落地的高度内defball_lands(n):globalhighall,higheach,high#小球第一次落地时ifn=0:higheach=highhighall+=high_each#print(T,higli_each,high_all)returnhigheach#从小球第n次落地往前容推higheach=high*(1/2)**nprint(u^%d次小球弹起的高度为:%.2f%(n,high_each))highall+=high_each*2#print(2,high_each,high_all)ball_lands(n-1)balllands(n)print(u'小球落地%d次,共经过%.2f米o'%(n,high_all))单元7Python面向对象定义一个数学中的复数类Complex,该类有一个构造函数和一个显示函数,建立一个Complex对象,调用设计的显示函数并显示。classComplex:definit(self,a):selfa=adefdisplay(self):print(sel£a)com=Complex("aaa")com.display()定义一个计算机类MYComputcr,该类包含CPU类型(String类型)、RAM内存大小(Integer类型)、HD硬盘大小(Integer类型),设计它的构造函数,再设计一个显示函数,建立一个Complex对象,调用设计的显示函数并显示。classMyComputer:dcf_init_(sclf,CPU,RAM,HD):self.CPU=CPUself.RAM=RAMself.HD=HDdefshow(sclf):strl=”cpu是{},RAM内存大小是(}G,HD硬盘大小是{}G”.fbrmat(self.CPU,self.RAM,self.HD)print(strl)cpu=”8核32线程”RAM=8HD=500me=MyComputer(cpu,RAM,HD)mc.show()设计一个整数类MYInteger,该类有一个整数变量,并有一个Value属性,可以通过Value存取该变量的值,还有一个转二进制字符串的成员函数toBin和一个转十六进制字符串的成员函数toHexoclassMylntcgcr:definit(self,num):selfnum=numdefValue(self):print(sclfnum)deftoBin(sclf):print("转换为二进制为:",bin(self.num))deftollex(self):print(”转换为十六进制为:”,hex(self.num))deftootc(self):print(”转换为八进制为:",oct(self.num))num=789mi=Mylnteger(num)mi.Valuc()mi.toBin()mi.toHcx()mi.tootc()建立一个普通人员类Person,该类包含姓名(m_name)、性别(m_gender)、年龄(m_age)成员变量。(1)建立Person类,包含mname、msex、mage成员变量。建立Person的构造函数。建立一个显示函数Show(),并显示该对象的数据。派生一个学生类Student,増加班级(m_class)、专业(m_major),并设计这些类的构造函数。建立mclassxmmajor对应的属性函数sClass。、sMajor()。建立显示成员函数Show(),显示该学生对象的所有成员数据。classPerson:definit(selfmname,msex,m_age):self. mname=mnameself,msex=msexself mage=magedefShow(sclf):print(self. mname,self m_sex,self m_age,end="")classStudent(Person):def init (selfmname,msex,mage,m_class,mmajor):Person. init(self,mname,m_sex,mage)#普通方法调用super(Student,self). init (m_name,m_sex,mage)#使用s叩er方法调用父类 init self mclass,self mmajor=m_class,mmajordefsClass(self):print(sclf. m_class)defsMajor(self):print(sclf. mmajor)defShow(sclf):Person.Show(self)#普通方法调用super(Student,self).Show。 #使用super方法调用父类 Show方法 print(sclf. m_class,self. mmajor)stu=Student(”张三”,”男”,”18”,”高三”理科”)stu.Show()5.建立一个时间类Time,该类包含时(hour)、分(minute)、秒(second)的实例属性。设计时间显示函数show(sclf)。设计一个时间大小比较函数compare(self,t),其中t是另外一个时间变量。classTime:definit(sclthour.minute,second):self.hour=hourself.minute=minutesclf.sccond=seconddefshow(sclf):fbrmattime="{}:{}:{}".fbrmat(self.hour,self.minute,selfsecond)print(fbnnat_time)defcompare(self):t="23:45:07"t_time=t.split(":n)thour=t_timc[0]tminute=t_time[1]tsecond=t_time[2]tseconds=int(thour)*3600+int(tminute)*60+int(tsecond)comparesec=abs(t_seconds-(selfhour*3600+sel£minute*60+sel£second))comparchour=comparc_sec//3600compareminute=(compare_sec%3600)//60comparesecond=(compare_sec%3600)%60print("{}:{}:{}".fbnnat(compare_hour,compare_minute,compare_second))time=Time(12,30,1)timc.show()pare()单元8异常与异常处理一、 单选题下列程序运行以后,会产生如下(B)异常。deftest:prinl(123)A.SyntaxErrorB.NameErrorC.IndexErrorD.KeyError下列选项中,(C)是唯一不在运行时发生的异常。A.ZeroDivisionErrorB.NameErrorC.SyntaxErrorD.KeyError当try语句中没有任何错误信息时,一定不会执行(D)语句。A.tryB.elseC.finallyD.except在完整的异常语句中,语句出现的顺序正确的是(A)。A.try——>except >else——>finally B.try——>else——>except >finallyC.try---->except >finally--->else D.try >else---->else >except下列选项中,用于触发异常的是(C)°A.tryB.catchC.raiseD.except二、 填空题Python中自定义异常时,用于主动抛出异常的关键字是 raise.o一个try语句对应一个_exceDt_子句。当使用序列中不存在 索引时,会引发IndexError异常。Python中所有的异常类都是 BaseException_子类。三、 简答题1.请简述什么是异常。程序在运行时,如果python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常。异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行,一般情况下,在python中无法处理程序时就会发生异常,异常是Python的一个

对象,表示一个错误,当Python脚本发生异常时,我们需要捕获并处理异常,否则程序就会终止执行。常见的异常类型有哪些?NamcError未声明/初始化对象(没有属性)ZcroDivisionErro除(或取模)零(所有数据类型)SyntaxError语法错误IndexError序列中没有没有此索引(index)KeyError映射中没有此键lOError输入/输出操作失败AttributcError未知的对象属性ValueError传入无效的参数四、编程题编写一个计算减法的方法,当被减数小于减数时,抛出“被减数不能小于减数”的异常。defjianfa(a,b):#定义一个函数tiy:#尝试ifa<b:#如果a小于braiseBaseException(,被减数{}不能小于减数{}'.format(b,a))else:#否则print(a-b)#输岀a-bexceptBascExccptionasf:#print(f)#触发,抛出异常jianfa(4,5)#第一个数4,第二个数是5单元9单元9Python文件操作一、单选题打开一个已有文件,然后在文件末尾添加信息,正确的打开方式为(c)。A.'r'C.'a'D.'w+‘A.'r'C.'a'D.'w+‘假设文件不存在,如果使用open方法打开文件会报错,那么该文件的打开方式是下列哪种模式?(A)A.'r*B.W C.'a'D.,w+,假设file是文本文件对象,下列选项中,哪个用于读取一行内容?(C)A.file.read()C.file.readline()A.file.read()C.file.readline()B.file.read(200)D.file.readlines()4.下列方法中,用于向文件中写出内容的是(B)。A.open5.下列方法中,4.下列方法中,用于向文件中写出内容的是(B)。A.open5.下列方法中,B.writeC.closeD.read用于获取当前目录的是(C)。A.openB.writeC.getcwdD.read二、填空题打开文件对文件进行读写,操作完成后应该调用「C1OS也方法关闭文件,以释放资源。使用readlines方法把整个文件中的内容进行一次性读取,返回的是一个 列表°3.os模块中的mkdir方法用于创建 目录。三、简答题1.二进制文件与文本文件有什么区别?(1)存储数据类型不同文本文件只能存储char型字符变量。二进制文件可以存储char/int/short/long/float/等各种变量值。(2)数据长度不同文本文件每条数据通常是固定长度的。以ASCII为例,每条数据(每个字符)都是1个字节。进制文件每条数据不固定。如short占两个字节,int占四个字节,float占8个字节。(3)读取的软件不同文本文件编辑器就可以读写,比如记事本、NotePad++、Vim等。二进制文件需要特别的解码器,比如bmp文件需要图像査看器,rmvb需要播放器。2.解释一下以下三个参数的分别作用open(Lname;r\encoding="utf-8,')[name文件名r模式encoding编码方式

四、编程题现有一个文本文件,文件内容全为英文,编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。withopen(MD:\\english.txt",‘什‘)asf:s=f.rcad()ss=[i.swapcase()fbriins]f.seek(O)f.writelines(ss)print(s)单元10项目综合实训一、编程题电影《无双》上映后,发行商和导演为了了解用户对电影的反馈,现需要爬取猫眼平台的电影影评数据。数据爬取URL地址为u/mmdb/comments/movie/342166.json?_v_=yes&ofTset=0”,筛选出从影片上映日期到当前时间的影评数据,将其保存在“d:\\comments.csv”文件中,最终部分数据展示效果如下图所示。可以看下一般和对象看的第-太好看了,遊*手法比较独特。发哥太帅了,-还好,开头有#2019/8/168:332019/8/161:572019/8/161:232019/8/1523:02可以看下一般和对象看的第-太好看了,遊*手法比较独特。发哥太帅了,-还好,开头有#2019/8/168:332019/8/161:572019/8/161:232019/8/1523:022019/8/1523:012019/8/1522:341078600781zqiuqi0071078604026AloneFAloneJI10785911270If2797215271078592148QJD8713024831078577373Bx西西importrequestsimportjsonimporttimeimportrandomimportcsvfromdatetimeimportdatetime,timcdcltadefgct_hcadcrs():useragentlist=["Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.1(KHTML,likeGecko)Chromc/22.0.1207.1Safari/537.1","Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/536.6(KHTML,likeGecko)Chromc/20.0.1092.0Safari/536.6M,"Mozilla/5.0(WindowsNT6.2)AppleWebKit/536.6(KHTML,likeGecko)Chrome/20.0.1090.0Safhri/536.6”,"Mozilla/5.0(WindowsNT6.2;WOW64)AppleWebKit/537.1(KHTML,likeGecko)Chrome/Safari/537.”Mozilla/5.0(XI1;Linuxx86_64)AppleWebKit/536.5(KHTML,likeGecko)Chrome/19.0.1084.9Safhri/536.5”,"Mozilla/5.0(WindowsNT6.0)AppleWebKit/536.5(KHTML,likeGecko)Chrome/19.0.1084.36Safari/536.5",”Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/536.3(KHTML,likeGecko)Chrome/19.0.1063.0Safari/536.3",”Mozilla/5.0(WindowsNT5.1)AppleWebKit/536.3(KHTML,likeGecko)Chrome/19.0.1063.0Safhri/536.3”,”Mozilla/5.0(WindowsNT6.2)AppleWebKit/536.3(KHTML,likeGecko)Chrome/19.0.1062.0Safhri/536.3”,”Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/536.3(KHTML,likeGecko)Chrome/19.0.1062.0Safari/536.3","Mozilla/5.0(WindowsNT6.2)ApplcWcbKit/536.3(KHTML,likeGecko)Chrome/19.0.1061.1Safari/536.3n,”Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/536.3(KHTML,likeGecko)Chrome/19.0.1061.1Safari/536.3\"Mozilla/5.0(WindowsNT6.1)ApplcWcbKit/536.3(KHTML,likeGecko)Chrome/19.0.1061.1Safari/536.3n,"Mozilla/5.0(WindowsNT6.2)ApplcWcbKit/536.3(KHTML,likeGecko)Chrome/19.0.1061.0Safari/5363","Mozilla/5.0(Xll;Linuxx86_64)AppleWebKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safhri/535.24”,"Mozilla/5.0(WindowsNT6.2;WOW64)ApplcWcbKit/535.24(KHTML,likeGecko)Chrome/19.0.1055.1Safhri/535.24”useragent=random.choice(user_agent_list)headers={'User-Agent':uscragcnt}returnheadersdefget_data(url):headers=gct_hcadcrs()try:withrequests.Session()ass:response=s.gct(url,hcadcrs=hcadcrs,timcout=3)content=response.textreturnconten

温馨提示

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

评论

0/150

提交评论