《Python程序设计案例教程》巩固和素质拓展练习答案.docx
一'选择麴1-6DDDDCA二、选择题1、J2、X3、X4、X5、X能用作标或将的有:A:kcyBioneCarC:-辆车E:ICockcG:iJ:init_KrwithYouM:int2bool不能用作标IR符的有IDzclassF:forN:print0:PaSS这几个为保留字I:x-yH:Thevar这几个不符合标识符命名规范1 .使用Prinl方法分别输出整数、浮点数、复数。print(10)学发出整数print(0x12)print(789.3434)S愉出宗数print(3.6e4)print(3+4j)。输出复数2 .分别使用浮点数和Decimal类型来计算0.1+0.2。fromdecimalimportDecimalR实数方式a=0.1+0.2print(八)print(type(八))着实效方式b=Decimal("0.1")+Decimal("0.2")print(b)print(type(b)3 .查看PythOn的浮点数信息。importsysprint(sys.float_info)1 .使用input的数取得输入的字符串.并使用print函数打印出来.Print(input请入,')2 .编写简短的程序,打印如下内容:你的姓名、生日、以及再欢的颜色等格式如*w*.*你的姓名你的生日以及喜欢的颜色>M<MoM<>U<*>H<>M<>M<*»*Printr张一,)print('2001-09-27')Printr缭色VPrint(«育育)1. 'true'是布尔类型吗,为什么?不是,TrUe才是2. FaISe是布尔类型吗.为什么?是的3. 表达式100>50结果的类型的是(八):A.布尔型B.字符中C.数值类型D.整型1 .浮点数字面常量的写法是什么?十进制和科学计数法如:789.78或1.897加22 .布尔里字面常肽的写法是什么?True和Palse3 .整里字面常业的写法是什么?十进制.二进制、八进制和十六进制如:10、OblOOkOXOa2、0ol24 .字符申常量的写法是什么?单引号、双引号、三单或三双引起来的符号序列1 .如何定义变量?赋值的方式即可,如a=6.定义了整理变量Il2 .在Python变诚是否可以不经过定义宜接使用,为什么?不能.会撤出异常3 .PythOn中决定了变鼠的类型后,变破的类型就不能改变了.这样的说法是否正确,为什么?说法惜误,因为Python作为动态类型语吉.变加的类型会根据值改变三、选择题1-7DDCDDD四、填空也1、None2,type()3、id()I,3+4j,3+4J5、96、437、1238、True9、1:2:310、True1,输入圆柱体的半径和海,计算圆柱体的体枳(底面圆面积乘以高)。流程图,;I/-31=3Hl加附rrH三t7/藏/I(缄)代码实现I-11oat(input(,谙输入网柱底面网半径:);h=float(input('请输入圆柱的而:'):v=3.1115926*r*h;Prinx圆柱体枳为:',v):运行结果,请输入网柱底面圆半径:2清输入阴柱的高:3圆柱体枳为:37.6991112000000012,已知x-1、y=2,实现x、y值的交换.即交换后x=2、y-l.程图:(,倘)/输出交换7/机、y值/t=xv三yy=t/出交换/X、y/I(给一)代码实现Ix=ly=2Drinte交换前X=*,x,',y=',y)t=xx=yy=tprintC交换后x三,×,y-,y)运行结果,交换前X=1.)=2交换后X=2,y=13、给定一个3位整数,输出其十位、百位和个位上的数,如346,其个位为6、十位为4、仃位为3.流程图:代码实现,X-int(input('请输入一个三位整数:'):请输入一个整数:88不是奇数12、某快递公司托运物品规定:无龈不超过50公斤的,托运费按年公斤0.15元计我,如超过50公斤,超过部分每公斤加收0.IO元.娘一程序完成自动计费工作.源程图,代码实现,x=flont(input('请输入物品的重量(公斤):')ifx<=50:y=x*0.15else:y=x*0.15+(x-50)*0.1PrinMX.'公斤的托运费用为:.y)运行结果t请输入物品的重量1公斤):5959.0公斤的托运费用为9.753、程序员考试分理论知识和案例分析两个科目,在一次程序员考试中,只有两个科目分数均达到45分及以上,才Jr通过考试,编一程序对考生是否通过程序员考试迸行自动计算。流程图:print(*)2、实现上SS功能.添加学生时,需要判断新学生是否在列入中:删除学生也需要判断.,2、荣写程序.生成一个包含2。个随机馅数的列表.然后对其中娟数下标的元素迸行海济排列,全数下标的元素不变.deff(>:print(*)printC*1、浮加学生*,)Print(«*«*«*,)print('2、杳找学生*,)print(*)print('*3、Jt示列表*,)PriCt(«*«*,)print('4、*除学生*,)print(*)print(5、退出*'>Print(«*«*«*»)x=int(input('*入1-5的一7NHfct,)ifx-1:prIncr浑加学生”elifx=2:Printr查找学生,elifx-3:prIncrJl示列表”elifx=4:PrinJ,除学生,)elifX-5:prince退出,)f01、编写程序完成取得用户输入的英文字符小佶息,先将信息原样输出.在将字符由中大写转小耳、小写忖大写输出。s-input('入英文串,'Jns-)foriins:if'a,<=i<=z:nsappend(str.upper(i)elif'A,<-i<-z:ns.append(str.lower(i>)ifret!-None:prlnC<,)else:Print不是')2,拥耳一个程序,从以下文本中提取标签之间的信刖:<a>网页连接<a>3>网页文字<b><hl>段落标翘<hl>importres=''<a>网页连接<a><b>网页文字<b><hl>段落标JB<hl>(Itret=re.findall(r,>(.?)<*,sprint(ret)1、编写一个程序,找出一段英文文本中的所有单闻,importreSw,iamlily*ret=re.findall(rM(a-zA-Z0-9+,s)print(ret)2、摭写一个程序,上配年月日日期.日期格式20191226.importrex=,hello2020kk12021-10-29,ret-re.findallrd4-dlz2)-dl,2x)print(ret)六、填空题1,False2.,c:test.ht11>'3、'N4、'1.2,3,5,'65.A,6、'Thefirst:97,thesecondis65'7»'65,0x41,0ol08,abcfg,9、-110、3H,112、-I13、'nbc'.'efg'14、'1:2:3:4:5'15,a,b,ccc,d(id,16.,HE1.1.OTOR1.R'17»,assfff'18.,afff,19、,3,1,20,None1查看文件属性f=oen('9:/lines.txt,r,encoding三,utf-8,)print(f.name).i'f-Wprint(f.mode)W打开校式print(f.encoding”,;:print(f.closed)t.close。#关闭文件print(f.closed)U足i,'矣用2,读写文件withopen(*e:/a.txt,w,enc<x!ing三,utf-8,)asf:f.ritc(,hllo,)Vf.vriteli11es(,hello,.,python,),.withopen(,e:/a.txt,.,r,.encoding='utf-8,)asf:Diin(f.readO)读所玄学Wl三lprint(f.rcadline()Ii读一行字符print<f.readlinesO)=/所田行也网外衣1、 importcsvheads=学号,J姓名,,'年rows=('01,Jfc=,35,1.02J里斯,35),03,J王五145withopen('e:/hello.csv','w'rnwli11e=,')asf:f_csv=csv.writer(f)f_csv.writerow(heads)f_csv.writerows(rows)2、 importcsvwithopen(,e:/hello.csv,#,r,)asf:f_csv-csv.reader(f)forrowinfcsv:print<row)importjsons-t,(,trans-result,:"data*:("你好","prefixwrap":0,"result":0,“你好”,"05"】,b"05","06"】,"src":"hello")】,,from":',en","status":0,"to":'zh","type":2,"phonetic*:("src_str":"你","trg-str,:"nl"J,("src_str":"jf",'trg-str,:,hdo”p-json.loads(s>print(p,transresult,data)(0)(,dst,)、importjson三-("name":“张三”,"sex"J''/"age":25,("name":"李四”,'sex':"A,"age”:361withopen<,e:/hello.json,z,w'rencoding-,utf-81)asfjson-dump(szf)七、选择JS1-8CADDDBB1、定义一个学牛类,为学牛类添加学号姓名、性别、年级、课程等礴性。classstudent:def_in-1(sezid,namersex,njrcourse):self.name=nameself.se×=sexself,course-courseself.id-idself.nj=njdefstudy(self):print<,canstudy,)deff(self):print<ell.name,GCd:.sexrse_:.age>1、classstudent:def_ini,<,",name,sex,nj,course):self.name=nameself.sex=sexself.course-courseself.id-idself.nj=njdefstudy(self):print<,canstudy*)deff(self):print(self.namerself.ae×zt.idtclf.njrend=,frsep=,t)foriinself.course:print(irsep="t'rend=,)print()ifname-,main:a三BM三StUS=Stul=Student(,OOl,唾三,男I一年,r语文,J数学:英语I)stu2-student<'002',,李四I,男1.'二年薮',语文I,数学I,英语')StU3=studentr003l,三三'J男五年r,语文,J数学',英语J信息技术1)stus.append(stul)sts.append(SCU2)stus.append(stu3)forstuinstus:stu.f()classprofession:def_init_(selfridcard,name,se×,birthzphone):self.idcard-idcard身份证号self.name=name#姓名self.sex=sex#性别self.phone-phone4手机号self.birth-birthA出生年月defgo-towork(self):上班print(*gotowork!,)defgo_off_work(self):,卜班print(tgooffwork!,)classengineer(profession):def_init_<selfridzidcardzname,se×rbirth,phone):super()._init_(idcardznamexsex,birth,phone)SeIf.一id-idUJ:号#工号设置器疝访问器propertydefid(self):returnself,id三三三三id.setterdefid(selfzid):selfdefdesign(self>:工程设计Prin1.,工程师在工程设计!,)classpolice(profession):definitself,id,Idcard,name,sex,birth,phone>:super<)._init_(idcardzname/sex,birth,phone)self._id=id刊警号Q警号设史旃】访问涔epropertydefid(slf):returnself._id0id.setterdefid-id):self._id=iddefhelp(self):Print(普察在H;警”)#出警defcatch(self):Prinj警察在抓捕罪犯,)3抓捕罪犯classdoctorprofession):def_init_<self,ksld,idcard,name,sex,birth,phone):super()._init_(idcard,name,sex,birth,phone)self._ksid=ksid骨科室#科室设置森疝访问涔©propertydefksid(self):returnself.ksid0ksid.setterdefksid(self,ksid):self._ksid=ksiddefreception(self):#接诊PrinJ,医生在接诊!)defoperation(Self):0手术PrinJ医生在做手术,)-X简答题1,面向对象的.:大特性:/继承:解决代码的或用性问璃/封装:对数据属性严格控制,隔离处朵度/多态性:增加程序的灵活性与可扩展性2、(1)面向过程的程序设计“面向过程”(ProcedureOriented)是一种以过程为中心的编程思想.“面向过程”也可称之为“面向记录”编程思想,不支持丰富的“面向对象”特性(比如继承、多态),并且它们不允许混合持久化状态和域龙轮。特点:分析出解决何题所需要的步骤.然后用函数把这些步骤一步一步实现.使用的时候一个一个依次调用就可以了优点:班杂的问题流程化,进而简单化(一个发杂的何烟,分成一个个小的步骤去实现,实现小的步骤将会非常陆单) 缺点:可扩展性差应用场景:面向过程的程序设计刖想一般用于那些功能一旦实现之后就很少需要改变的场景,如果你只是写一些简单的脚本,去做一些一次性任务,用面向过程的方式是极好的,含2的例子有1.inUX内核,it.以及APaChCHTTPsCrVCr等”但如果你要处理的什务是更杂的,且需要不阍迭代和维护的,那还是用面向对象最方便了(2)面向对象的程序设计“面向对象程序设计”(Object-orientedprograming,缩写;00l,是一种程序设计范S.同时也是一种程序开发的方法。对象指的是类的实例,它将对象作为程序的基本单元将程序和数据封装其中.以提高软件的重用性、灵活性和扩展性“面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好和反:传统的程序设计主张将程序看作系列函数的集合,或者直接就是系列对电脑下达的指令。面向时象程序设计中的年一个对象都应该能桀接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机渊”.即对象. 优点:可扩展性高 缺点:编程的现杂度远离于面向过程,不了解面向对象而立即上手井班于它设计程序,极容易出现过度设计的何胞,而I1.在一叫扩展性要求低的场景使用面向对象会徒增编程雉度比如管理IinUX系统的Shen脚本程序就不适合用面向对象去设计面向过程反而更加适合.