Python程序设计习题与答案.pdf
《Python程序设计习题与答案.pdf》由会员分享,可在线阅读,更多相关《Python程序设计习题与答案.pdf(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Python 程序设计习题与参考答案 第 1 章 基础知识 简单说明如何选择正确的 Python 版本;答:在选择 Python 的时候,一定要先考虑清楚自己学习 Python 的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高反复安装和卸载上;同时还应该注意,当更新的 Python 版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新;尽管如此,Python 3 毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 系列的最高版本目前是 Python;为
2、什么说 Python 采用的是基于值的内存管理模式 答:Python 采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码;x=3 idx y=3 idy y=5 idy idx 在 Python 中导入模块中的对象有哪几种方式 答:常用的有三种方式,分别为 import 模块名 as 别名 from 模块名 import 对象名 as 别名 from math import 使用 pip 命令安装 numpy、scipy 模块;答:在命令提示符环境下执行下面的命令:pip install numpy pip install
3、 scipy 编写程序,用户输入一个三位以上的整数,输出其百位以上的数字;例如用户输入 1234,则程序输出 12;提示:使用整除运算;答:x=inputPlease input an integer of more than 3 digits:try:x=intx x=x else:printx except BaseException:printYou must input an integer.import types x=inputPlease input an integer of more than 3 digits:if typex=:print You must input a
4、n integer.elif lenstrx=4:print You must input an integer of more than 3 digits.else:print xoinmapstr,result x=inputPlease input an integer less than 1000:t=x i=2 result=while True:if t=1:break if t%i=0:i t=t/i else:i+=1 print x,=,.joinmapstr,result 编写程序,至少使用 2 种不同的方法计算 100 以内所有奇数的和;x=i for i in rang
5、e1,100 if i%2=1 printsumx printsumrange1,100:2 编写程序,实现分段函数计算,如下表所示;x y x0 0 0=x5 x 5=x10 3x-5 10=x20 20=x 0 x=inputPlease input x:x=evalx if x=20:print0 elif 0=x5:printx elif 5=x10:print3x-5 elif 10=x20:printx-2 第 4 章 字符串与正则表达式 假设有一段英文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正;1 不使用正则表达式 x=i am a teacher,i am man
6、,and i am 38 years am not a businessman.x=i,I x=i,I printx 2 使用正则表达式 x=i am a teacher,i am man,and i am 38 years am not a businessman.import re pattern=r:w|bi:w while True:result=x if result:if 0=0:x=x:0+1+I+x0-1:else:x=x:0+I+x0-1:else:break printx 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正;import re x=I
7、 am a teacher,I am man,and I am 38 years am not a busInessman.printx pattern=r:wI:w while True:result=x if result:if 0=0:x=x:0+1+i+x0-1:else:x=x:0+i+x0-1:else:break printx 有一段英文文本,其中有单词连续重复了2次,编写程序检查重复的单词并只保留一个;例如文本内容为“This is is a desk.”,程序输出为“This is a desk.”1 方法一 import re x=This is a a desk.patt
8、ern=rbw+s+11,b matchResult=x x=1,x printx 2 方法二 x=This is a a desk.pattern=rPbw+bsP=f matchResult=x x=0,1 简单解释 Python 的字符串驻留机制;答:Python 支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本;这一点不适用于长字符串,即长字符串不遵守驻留机制,下面的代码演示了短字符串和长字符串在这方面的区别;a=1234 b=1234 ida=idb True a=123450 b=123450 ida=idb False 编写
9、程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词;import re x=inputPlease input a string:pattern=rba-zA-Z3b printx 第 5 章 函数设计与使用 答:原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的列表插入或删除了元素,将会得到保留,从而影响下一次调用;编写函数,判断一个整数是否为素数,并编写主程序调用该函数;import math def IsPrimev:n=intv+1 for i in range2,n:
10、if v%i=0:return No else:return Yes printIsPrime37 printIsPrime60 printIsPrime113 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果;def demov:capital=little=digit=other=0 for i in v:if A=i=Z:capital+=1 elif a=i=z:little+=1 elif 0=i def demo:a=3 print a a=5 demo 3 a 5 编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和;d
11、ef demov:printv printmaxv printsumv demo1,2,3 demo1,2,3,4 demo1,2,3,4,5 编写函数,模拟内置函数 sum;def Sumv:s=0 for i in v:s+=i return s x=1,2,3,4,5 printSumx x=1,2,3,4,5 printSumx 编写函数,模拟内置函数 sorted;def Sortedv:t=v:r=while t:tt=mint tt tt return r x=1,3,5,2,1,0,9,7 printx printSortedx 第 6 章 面向对象程序设计 继承节例2中的Pe
12、rson类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息;import types class Personobject:基类必须继承于 object,否则在派生类中将无法使用 super函数 def _init_self,name=,age=20,sex=man:name age sex def setNameself,name:if not isinstancename,str:printname must be string.return =name def setAgeself,age:if not isinstanceage,int:printage
13、must be integer.return =age def setSexself,sex:if sex=man and sex=woman:printsex must be man or woman return =sex def showself:print print print class StudentPerson:def _init_self,name=,age=30,sex=man,major=Computer:调用基类构造方法初始化基类的私有数据成员 superStudent,self._init_name,age,sex major 初始化派生类的数据成员 def setM
14、ajorself,major:if not isinstancemajor,str:printmajor must be a string.return =major def showself:superStudent,self.show print if _name_=_main_:zhangsan=PersonZhang San,19,man lisi=StudentLi Si,32,man,Math 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算;class Vecter3:def _init_self,x=0,y=0,z=0:=x =y =z def _add
15、_self,n:r=Vecter3 =+=+=+return r def _sub_self,n:r=Vecter3 =-=-=-return r def _mul_self,n:r=Vecter3 =n =n =n return r def _truediv_self,n:r=Vecter3 =/n =/n =/n return r def _floordiv_self,n:r=Vecter3 =类名_xxx”这样的特殊方式来访问;Python 中没有纯粹的 C+意义上的私有成员;与 运 算 符“”对 应 的 特 殊 方 法 名 为 _pow_ ,与 运 算 符“.except.else.语
16、句;3 在实际开发中,同一段代码可能会抛出多个异常,需要针对不同的异常类型进行相应的处理;为了支持多个异常的捕捉和处理,Python提供了带有多个except的异常处理结构,这类似于多分支选择结构,一旦某个 except 捕获了异常,则后面剩余的 except 子句将不会再执行;语法为:try:try 块 被监控的语句 except Exception1:except 块 1 处理异常 1 的语句 except Exception2:except 块 2 处理异常 2 的语句 4 将要捕获的异常写在一个元组中,可以使用一个 except 语句捕获多个异常,并且共用同一段异常处理代码,当然,除非
17、确定要捕获的多个异常可以使用同一段代码来处理,并不建议这样做;5 最后一种常用的异常处理结构是 try.except.finally.结构;在该结构中,finally 子句中的内存无论是否发生异常都会执行,常用来做一些清理工作以释放 try 子句中申请的资源;语法如下:try:finally:.无论如何都会执行的代码 异常和错误有什么区别 答:异常是指因为程序执行过程中出错而在正常控制流以外采取的行为;严格来说,语法错误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访问不存在的对象,或者试图访问不存在的文件,等等;使用 pdb 模块进行 Python 程序调试主要
18、有哪几种用法 答:主要有三种方式,1 在交互模式下使用 pdb 模块提供的功能可以直接调试语句块、表达式、函数等多种脚本;2 在程序中嵌入断点来实现调试功能 在程序中首先导入 pdb 模块,然后使用在需要的位置设置断点;如果程序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序或双击执行程序时将自动打开 pdb 调试环境,即使该程序当前不处于调试状态;3 使用命令行调试程序 在命令行提示符下执行“python m pdb 脚本文件名”,则直接进入调试环境;当调试结束或程序正常结束以后,pdb 将重启该程序;Python 内建异常类的基类是 BaseException ;断言语
19、句的语法为 assert ;Python 上下文管理语句是 with ;第 9 章 GUI 编程 设计一个窗体,并放置一个按钮,单击按钮后弹出颜色对话框,关闭颜色对话框后提示选中的颜色;import wx class wxGUI:def OnInitself:frame=parent=None,title=wxGUI,size=160,140 panel=frame,-1 buttonOK=panel,-1,OK,pos=0,0 ,buttonOK return True def OnButtonOKself,event:colorDlg=None color=.Colour strcolor
20、 app=wxGUI 设计一个窗体,并放置一个按钮,按钮默认文本为“开始”,单击按钮后文本变为“结束”,再次单击后变为“开始”,循环切换;import wx class wxGUI:def OnInitself:frame=parent=None,title=wxGUI,size=160,140 panel=frame,-1 =panel,-1,Start,pos=0,0 ,return True def OnButtonOKself,event:if text=Start:elif text=End:app=wxGUI 设计一个窗体,模拟登录界面,当用户输入号码 123456 和密码 654
21、321 时提示正确,否则提示错误;import wx class wxGUI:def OnInitself:frame=parent=None,title=Login,size=250,150,pos=350,350 panel=frame,-1 label1=panel,-1,UserName:,pos=0,10,style=label2=panel,-1,Password:,pos=0,30,style=panel,-1,pos=70,10,size=160,20 =panel,-1,pos=70,30,size=160,20,style=buttonOK=panel,-1,OK,pos=
22、30,60 ,buttonOK buttonCancel=panel,-1,Cancel,pos=120,60 ,buttonCancel return True def OnButtonOKself,event:if usrName=123456 and usrPwd=654321:Right else:Wrong def OnButtonCancelself,event:pass app=wxGUI 第 10 章 网络程序设计 简单解释 TCP 和 UDP 协议的区别;答:TCP 协议是面向连接的、具有质量保证的可靠传输协议,但开销较大;UDP 协议是尽最大能力传输的无连接协议,开销小,常
23、用于视频在线点播 Video On Demand,VOD 之类的应用;TCP 协议和 UDP 协议并没有优劣之分,仅仅是适用场合有所不同;同学之间合作编写UDP通信程序,分别编写发送端和接收端代码,发送端发送一个字符串“Hello world”;假设接收端在计算机的 5000 端口进行接收,并显示接收内容;答:首先使用 ipconfig/all 命令查看本机 IP 地址,然后分别编写下面的代码,并将其中的 IP 地址替换为相应的 IP 地址;接收端代码:import socket s=,5000 空字符串表示本机任何可用 IP 地址 data,addr=1024 缓冲区大小为 1024 字节
24、print received message:%s%data 显示接收到的内容 发送端代码:import socket s=,0 主机的 IP 地址 简单介绍 socket 模块中用于 TCP 编程的常用方法;TCP 一般用于要求可靠数据传输的场合;编写 TCP 程序时经常需要用到的socket模块方法主要有:connectaddress:连接远程计算机 sendbytes,flags:发送数据 recvbufsize,flags:接收数据 bindaddress:绑定地址 listenbacklog:开始监听,等待客户端连接 accept:响应客户端的请求 编写代码读取搜狐网页首页内容;答:
25、import dir dirfp print100 在自己的机器上配置 IIS 以支持 Python 脚本的运行,然后使用 Python 编写脚本,运行后在网页上显示“Hello world”;答:核心代码为 print print Status:200 OK print Content-type:text/html print print Python Sample CGI print print This is a header print Hello world print print 第 11 章 大数据处理 简单介绍常见的大数据处理框架;答:主要有三种,MapReduce:分布式计算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 习题 答案
限制150内