收藏 分销(赏)

《python程序设计基础》习题答案与分析.pdf

上传人:曲**** 文档编号:226585 上传时间:2023-03-09 格式:PDF 页数:27 大小:730.48KB
下载 相关 举报
《python程序设计基础》习题答案与分析.pdf_第1页
第1页 / 共27页
《python程序设计基础》习题答案与分析.pdf_第2页
第2页 / 共27页
《python程序设计基础》习题答案与分析.pdf_第3页
第3页 / 共27页
《python程序设计基础》习题答案与分析.pdf_第4页
第4页 / 共27页
《python程序设计基础》习题答案与分析.pdf_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、Python程序设计基础 习题答案与分析第1章基础知识1.1 简单说明如何选择正确的Python版本。答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方 面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python2.x还是 Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。这些问题都确定以后,再做出自己 的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。同 时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必 须使用的扩展库也推出

2、了较新版本之后再进行更新。尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开 发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的 最高版本(目前是Python 3.4.3)。1.2 为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只 有一份该值,多个变量指向同一块内存地址,例如下面的代码。x=3 id(x)10417624 y=3 id(y)10417624 y=5 id(y)10417600 id(x)10417624x=l,2,3,1,1

3、,2 id(x0)=id(x3)=id(x4)True1.3 解释Python中的运算符“/”和“/”的区别。答:在Python2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精 度与操作数中精度最高的一致;在Python 3.x中,“/”为真除法,与除法的数学含义一致。在Python 2.x和Python 3.x中,“/”表示整除,对整数或浮点数进行该运算时,结果 为数学除法的整数部分。1.4 在Python中导入模块中的对象有哪几种方式?答:常用的有三种方式,分别为 import模块名as别名 from模块名import对象名as别名 from math import*

4、1.5 pip 是目前比较常用的Python扩展库管理工具。1.6 解释Python脚本程序的“_name_”变量及其作用。答:每个Python脚本在运行时都有一个“_name_属性。如果脚本作为模块被导入,则 其_name_”属性的值被自动设置为模块名;如果脚本独立运行,则其“_name_”属 性值被自动设置为“_main_。利用“_name_”属性即可控制Python程序的运行方式。1.7 运算符“”可以(可以、不可以)对浮点数进行求余数操作。1.8 一个数字“5”是(是、不是)合法的Python表达式。1.9 在Python 2.x中,input。函数接收到的数据类型由 界定符 确定,而

5、在Python3.x中该函数则认为接收到的用户输入数据一律为 字符串。1.10编写程序,用户输入一个三位以上的整数,输出其百位以上的数字。例如用户输 入1234,则程序输出12。(提示:使用整除运算。)答:1)Python 3.4.2 代石马:x=input(Please input an integer of more than 3 digits:)try:x=int(x)x=x/100if x=0:print(You must input an integer of more than 3 digits.)else:print(x)except BaseException:print(Yo

6、u must input an integer.)2)Python 2.7.8 代码:import typesx=input(Please input an integer of more than 3 digits:)if type(x)!=types.IntType:print You must input an integer.,elif len(str(x)!=4:print You must input an integer of more than 3 digits.,else:print x/100第2章Python序歹U2.1 为什么应尽量从列表的尾部进行元素的增加与删除操作?

7、答:当列表增加或删除元素时,列表对象自动进行内存扩展或收缩,从而保证元素之间没有 缝隙,但这涉及到列表元素的移动,效率较低,应尽量从列表尾部进行元素的增加与删除操 作以提高处理速度。2.2 range。函数在Python 2.x中返回一个 包含整数的列表,而Python 3.x的range()函数返回一个 可迭代的range对象。2.3 编写程序,生成包含1000个0至U 100之间的随机整数,并统计每个元素的出现次 数。答:可以使用集合来实现该功能。1)Python 3.4.2 代力马import randomx=random.randint(0,100)for i in range(lOO

8、O)d=set(x)for v in d:print(v,x.count(v)2)Python 2.7.8 代码import randomx=random.randint(0,100)for i in range(lOOO)d=set(x)fbr v in d:print v,x.count(v)也可以直接使用字典来实现该功能,并且获得更高的执行效率,例如下面的Python 3.4.2 代码:listRandom=random.randint(1,100)for i in range(1000000)d=dict()start=time.time()fbr i in listRandom:#对

9、随机数列表扫描一次,即可得到结果di=d.get(i,O)+lprint(time.time()-start)2.4 表达式“3 inl,2,3,4”的值为 False。2.5 编写程序,用户输入一个列表和2个整数作为下标,然后输出列表中介于2个下标 之间的元素组成的子列表。例如用户输入1,2,3,4,5,6和2,5,程序输出3,4,5,6。答:1)Python 3.4.2 代码x=input(Please input a list:)x=eval(x)start,end=eval(input(Please input the start position and the end positi

10、on:)print(xstart:end)2)Python 2.7.8 代码x=input(Please input a list:)start,end=input(Please input the start position and the end position:)print xstart:end2.6 列表对象的sort。方法用来对列表元素进行原地排序,该函数返回值为None。2.7 列表对象的remove。方法删除首次出现的指定元素,如果列表中不存在要删除 的元素,则抛出异常。2.8 假设列表对象aList的值为3,4,5,6,7,9,11,13,15,17,那么切片aList3:

11、7得到的 值是6,7,9111。2.9 设计一个字典,并编写程序,用户输入内容作为“键”,然后输出字典中对应的“值”,如果用户输入的“键”不存在,则输出“您输入的键不存在!”答:1)Python 3.4.2 代力马d=2:b,3:c,4:dv=input(Please input a key:)v=eval(v)print(d.get(v;您输入的的键不存在)2)Python 2.7.8 代码d=2:b,3:c,4:dv=input(Please input a key:)print(d.get(v;您输入的的键不存在)2.10 编写程序,生成包含20个随机数的列表,然后将前10个元素升序排列

12、,后10个 元素降序排列,并输出结果。答:1)Python 3.4.2 代码import randomx=random.randint(0,100)for i in range(20)print(x)y=x0:10 y.sort()x0:10=y y=x10:20y.sort(reverse=True)x10:20=y print(x)2)Python 2.7.8 代码import randomx=random.randint(0,100)for i in range(20)print xy=x0:10 y.sort()x0:10=y y=x10:20y.sort(reverse=True)x

13、10:20=yprint x2.11 在Python中,字典和集合都是用一对大括号作为界定符,字典的每个元素有 两部分组成,即“键”和“值”,其中“键”不允许重复。2.12 使用字典对象的 items。方法可以返回字典的“键-值对”列表,使用字典对 象的 keys。方法可以返回字典的“键”列表,使用字典对象的 values。方法可以 返回字典的“值”列表。2.13 假设有列表a=name/age/sex1和b=Dong,38,Male,请使用一个语句将这 两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为 c=dicMzip(a,b)。2.14

14、假设有一个列表a,现要求从列表a中每3个元素取1个,并且将取到的元素组成 新的列表b,可以使用语句 b=a1:3。2.15 使用列表推导式生成包含10个数字5的列表,语句可以写为 5 fori in rang 10)。2.16 不可以(可以、不可以)使用del命令来删除元组中的部分元素。第3章选择与循环3.1 分析逻辑运算符“or”的短路求值特性。答:假设有表达式“表达式1 or表达式2,如果表达式1的值等价于True,那么无论表 达式2的值是什么,整个表达式的值总是等价于True。因此,不需要再计算表达式2的值。3.2 编写程序,运行后用户输入4位整数作为年份,判断其是否为闰年。如果年份能被

15、 400整除,则为闰年;如果年份能被4整除但不能被100整除也为闰年。答:1)Python 3.4.2 代码x=input(Please input an integer of 4 digits meaning the year:)x=eval(x)if x%400=0 or(x%4=0 and not x%100=0):print(Yes)else:print(No)2)Python 2.7.8 代码x=input(Please input an integer of 4 digits meaning the year:)if x%400=0 or(x%4=0 and not x%100=0

16、):print Yeselse:print No3.3 Python提供了两种基本的循环结构:for循环 和 while循环。3.4 编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数。(提示:从后向前删。)答:Python 3.4.2代码如下,import randomx=random.randint(0,100)fbr i in range(50)print(x)i=len(x)-lwhile i=0:ifxi%2=l:del xii-=lprint(x)3.5 编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行 降序排列,奇数下标的元素不变。(提示:使

17、用切片。)答:Python 3.4.2代码如下,import randomx=random.randint(0,100)for i in range(20)print(x)y=x:2y.sort(reverse=True)x:2=yprint(x)3.6 编写程序,用户从键盘输入小于1000的整数,对其进行因式分解。例如,10=2X5,60=2X2X3X5。答:1)Python 3.4.2 代力马x=input(Please input an integer less than 1000:)x=eval(x)t=xi=2result=while True:breakif t%i=0:resul

18、t.append(i)t=t/ielse:i+=lprint(x,-,*.join(map(str,result)2)Python 2.7.8 代码x=input(Please input an integer less than 1000:)t=xi=2result=while True:breakif t%i=O:result,append(i)t=t/ielse:i+=lprint x,-,*.join(map(str,result)3.7 编写程序,至少使用2种不同的方法计算100以内所有奇数的和。答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的pr

19、int。函数改为print 语句即可。x=i for i in range(l,100)if i%2=lprint(sum(x)print(sum(range(1,100):;2)3.8 编写程序,输出所有由1、2、3、4这四个数字组成的素数,并且在每个素数中每 个数字只使用一次。答:Python 3.4.2代码如下,答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print。函数改为print 语句即可。x=input(Please input x:)x=eval(x)if x=20:print(O)elif 0=x5:print(x)elif 5=x10

20、:print(3*x-5)elif 10=x20:print(0.5*x-2)3.9 编写程序,实现分段函数计算,如下表所示。Xyx000=x5X5=x103x-510=x200.5x-220=x0答:Python 3.4.2代码如下,如果使用Python 2.7.8只需要把其中的print。函数改为print 语句即可。x=input(Please input x:)x=eval(x)if x=20:print(O)elif 0=x5:print(x)elif 5=x10:print(3*x-5)elif 10=x20:print(0.5*x-2)第4章字符串与正则表达式4.1 假设有一段英

21、文,其中有单独的字母“I”误写为“i”,请编写程序进行纠正。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为pHnt语句即可。1)不使用正则表达式x-i am a teacher,i am man,and i am 38 years old.I am not a businessman.x=x.replace(i,1)x=x.replace(iI)print(x)2)使用正则表达式x=i am a teacher,i am man,and i am 38 years old.I am not a businessman.impo

22、rt repattern=pile(r(?:Aw|b)i(?:Aw)while True:result=pattern.search(x)if result:if result.start(O)!=0:x=x:result.start(O)+l +I+xresult.end(0)-1:else:x=x:result.start(O)+T+xresult.end(O)-l:else:breakprint(x)4.2 假设有一段英文,其中有单词中间的字母“i”误写为“I”,请编写程序进行纠正。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print(

23、)函数为print语句即可。import rex=I am a teacher,!am man,and I am 38 years old.I am not a businessman.print(x)pattern=pile(r(?:w)I(?:w)while True:result=pattern.search(x)if result:if result.start(O)!=0:x=x:result.start(O)+1 +i+xresult.end(0)-1:else:x=x:result.start(O)+i+xresult.end(O)-l:else:breakprint(x)4.3

24、 有一段英文文本,其中有单词连续重复了 2次,编写程序检查重复的单词并只保留 一个。例如文本内容为This is is a desk.”,程序输出为“This is a desk.”答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。1)方法一import rex=This is a a desk.,pattern=pile(rb(w+)(s+l)1,b)matchResult=pattern.search(x)x=pattern.sub(matchResult.group(1),x)print(x)2)方法二x

25、=This is a a desk.,pattern=pile(r(?Pbw+b)s(?P=f)matchResult=pattern.search(x)x=x.replace(matchResult.group(0),matchResult.group(1)4.4 简单解释Python的字符串驻留机制。答:Python支持字符串驻留机制,即:对于短字符串,将其赋值给多个不同的对象时,内 存中只有一个副本,多个对象共享该副本。这一点不适用于长字符串,即长字符串不遵守驻 留机制,下面的代码演示了短字符串和长字符串在这方面的区别。a=1234b=1234 id(a)=id(b)Truea=1234

26、*50b=1234*50 id(a)id(b)False4.5 编写程序,用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为pHnt语句即可。import rex=input(Please input a string:)pattern=pile(rba-zA-Z 3b)print(pattern.findall(x)第5章函数设计与使用5.1 运行531小节最后的示例代码,查看结果并分析原因。答:原因是对于函数的默认值参数只会被处理一次,下次再调用函数并且不为默认值参

27、 数赋值时会继续使用上一次的结果,对于列表这样的结构,如果调用函数时为默认值参数的 列表插入或删除了元素,将会得到保留,从而影响下一次调用。5.2 编写函数,判断一个整数是否为素数,并编写主程序调用该函数。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。import mathdef IsPrime(v):n=int(math.sqrt(v)+1)for i in range(2,n):if v%i=0:return Noelse:return Yesprint(IsPrime(37)print(IsPrime

28、(60)print(IsPrime(l 13)5.3 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个 数,并以元组的形式返回结果。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。def demo(v):capital=little=digit=other=0for i in v:if A=i=Z:capital+=lelifa=i=z:little+=lelif0=i def demo():a=3print a a=5 demo()3 a55.8 lambda表达式只能用来创建匿名函

29、数,不能为这样的函数起名字。(对、错)5.9 编写函数,可以接收任意多个整数并输出其中的最大值和所有整数之和。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。def demo(*v):print(v)print(max(v)print(sum(v)demo(l,2,3)demo(l,2,3,4)demo(l,2,3,4,5)5.10 编写函数,模拟内置函数sum。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。def Sum

30、(v):s=0for i in v:s+=ireturn sx=1,2,3,4,5 print(Sum(x)x=(1,2,3,4,5)print(Sum(x)5.11 包含 yield 语句的函数可以用来创建牛成器。5.12 编写函数,模拟内置函数sorted。答:这里给出Python 3.4.2代码,如果使用Python 2.7.8的话只需要修改其中的print()函数为print语句即可。def Sorted(v):t=v:r=while t:tt=min(t)r.append(tt)t.remove(tt)return rx=1,3,521,0,9,7print(x)print(Sort

31、ed(x)第6章面向对象程序设计6.1 继承6.5节例2中的Person类生成Student类,填写新的函数用来设置学生专业,然后生成该类对象并显示信息。答:Python 3.4.2代码为import typesclass Person(object):#基类必须继承于object,否则在派生类中将无法使用super。函数def _init_(self,name=,age=20,sex=man):self.setName(name)self.setAge(age)self.setSex(sex)def setName(self,name):if not isinstance(name,str)

32、:print(name must be string.)returnself._name=namedef setAge(self,age):if not isinstance(age,int):print(age must be integer.)returnself._age=agedef setSex(self,sex):if sex!=man and sex!=woman:print(sex must be man or woman)returnself._sex=sexdef show(self):print(self._name)print(self._age)print(self.

33、_sex)class Student(Person):def_init_(self,name-,age=30,sex=man,major=Computer):#调用基类构造方法初始化基类的私有数据成员super(Student,self)-_init_(name,age,sex)self.setMajor(major)#初始化派生类的数据成员def setMajor(self,major):if not isinstance(major,str):print(major must be a string.)returnself,major=majordef show(self):super(S

34、tudent,self)-show()print(self._major)if_name_=_main_zhangsan=Person(Zhang San,19,man)zhangsan.show()lisi=Student(Li Si,32,man,Math)lisi.showQ6.2 设计一个三维向量类,并实现向量的加法、减法以及向量与标量的乘法和除法运算。答:Python 3.4.2代码如下class Vecter3:def _init_(self,x=0,y=0,z=0):self.X=x self.Y=y self.Z=zdef add(self,n):r=Vecter3()r.X=

35、self.X+n.X r.Y=self.Y+n.Y r.Z=self.Z+n.Z return rdef _sub_(self,n):r=Vecter3()r.X=self.X-n.X r.Y=self.Y-n.Y r.Z=self.Z-n.Z return rdef mul_(self,n):r=Vecter3()r.X=self.X*n r.Y=self.Y*n r.Z=self.Z*n return rdef _truediv_(self,n):r=Vecter3()r.X=self.X/n r.Y=self.Y/n r.Z=self.Z/n return rdef_floordiv_(

36、self,n):r=Vecter3()r.X=self.X/n r.Y=self.Y/n r.Z=self.Z/nreturn rdef show(self):print(self.X,self.Y,self.Z)vl=Vecter3(l,2,3)v2=Vecter3(4,5,6)v3=vl+v2 v3.show()v4=v 1-v2 v4.show()v5=vl*3 v5.show()v6=vl/2 v6.show()6.3 面向对象程序设计的三要素分别为封装、继承和多态。6.4 简单解释Python中以下划线开头的变量名特点。答:在Python中,以下划线开头的变量名有特殊的含义,尤其是在

37、类的定义中。用下划线 作为变量前缀和后缀来表示类的特殊成员:XXX:这样的对象叫做保护变量,不能用from module import*,导入,只有类对象 和子类对象能访问这些变量;_xxx_:系统定义的特殊成员名字;_xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成 员,但在对象外部可以通过“对象名类名_xxx”这样的特殊方式来访问。Python中 没有纯粹的C+意义上的私有成员。6.5 与运算符“*”对应的特殊方法名为 _pow_(),与运算符“/”对应的特殊 方法名为 _floordiv_()o6.6 假设a为类A的对象且包含一个私有数据成员“_value,那么在

38、类的外部通过 对象a直接将其私有数据成员“_value”的值设置为3的语句可以写作 a._A_value。第7章文件操作7.1 假设有一个英文文本文件,编写程序读取其内容,并将其中的大写字母变为小写字 母,小写字母变为大写字母。答:f=open(rd:l.txt,r)s=f.readlines()f.close()r=i.swapcase()for i in sf=open(rd:2.txt,w)f.writelines(r)f.close()7.2 编写程序,将包含学生成绩的字典保存为二进制文件,然后再读取内容并显示。答:Python 3.4.2 代码import pickled=弓长三,:

39、98;李四,:90:王五FOOprint(d)f=open(score.dat,wb)pickle.dump(l,f)pickle.dump(d,f)f.closef=open(score.dat,Yb)pickle,load(f)d=pickle,load(f)f.close()print(d)7.3 使用shutil模块中的move。方法进行文件移动。答:import shutil shutil.move(rd:l.txt,re:l.txt)e:l.txt7.4 简单解释文本文件与二进制文件的区别。答:(1)文本文件文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符M结尾。常规

40、 字符串是指记事本或其他文本编辑器能正常显示、编辑并且人类能够直接阅读和理解的字符 串,如英文字母、汉字、数字字符串。文本文件可以使用字处理软件如gedit、记事本进行 编辑。(2)二进制文件二进制文件把对象内容以字节串(bytes)进行存储,无法用记事本或其他普通字处理软件 直接进行编辑,通常也无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。常见的如图形图像文件、音视频文件、可执行文件、资源文件、各种数 据库文件、各类。ffice文档等都属于二进制文件。7.5 编写代码,将当前工作目录修改为“C:”,并验证,最后将当前工作目录恢复为原 来的目录。答:import

41、 os os.getcwd()C:Python34 os.chdir(rc:W)os.getcwd()c:W os.chdir(rc:Python34)os.getcwd()c:Python347.6 编写程序,用户输入一个目录和一个文件名,搜索该目录及其子目录中是否存在该 文件。答:1)Python 3.4.2 代码import sysimport osdirectory=sys.argvlfilename=sys.argv2paths=os.walk(directory)fbr root,dirs,files in paths:if filename in files:print(Yes)

42、break else:print(No)2)Python 2.7.8 代码import sysimport osdirectory=sys.argvlfilename=sys.argv2paths=os.walk(directory)for root,dirs,files in paths:if filename in files:print Yesbreakelse:print No7.7 文件对象的 flush。方法用来把缓冲区的内容写入文件,但不关闭文件。7.8 os.path模块中的 isfileO 方法用来测试指定的路径是否为文件。7.9 os模块的 listdir。方法用来返回包含

43、指定文件夹中所有文件和子文件夹的列 表。第8章异常处理结构与程序调试8.1 Python异常处理结构有哪几种形式?答:比较常用的形式有:1)标准异常处理结构try:try块#被监控的语句,可能会引发异常except Exception,reason:except块#处理异常的代码如果需要捕获所有异常时,可以使用BaseException,代码格式如下:try:except BaseException,e:except块#处理所有错误上面的结构可以捕获所有异常,尽管这样做很安全,但是一般并不建议这样做。对于异 常处理结构,一般的建议是尽量显式捕捉可能会出现的异常并且有针对性地编写代码进行处 理,

44、因为在实际应用开发中,很难使用同一段代码去处理所有类型的异常。当然,为了避免 遗漏没有得到处理的异常干扰程序的正常执行,在捕捉了所有可能想到的异常之后,您也可 以使用异常处理结构的最后一个except来捕捉BaseExceptiono2)另外一种常用的异常处理结构是tryexcept.else.语句。3)在实际开发中,同一段代码可能会抛出多个异常,需要针对不同的异常类型进行相 应的处理。为了支持多个异常的捕捉和处理,Python提供了带有多个except的异常处理结 构,这类似于多分支选择结构,一旦某个except捕获了异常,则后面剩余的except子句将 不会再执行。语法为:try:try块

45、#被监控的语句except Exception 1:except块1#处理异常1的语句except Exception2:except块2#处理异常2的语句4)将要捕获的异常写在一个元组中,可以使用一个except语句捕获多个异常,并且共 用同一段异常处理代码,当然,除非确定要捕获的多个异常可以使用同一段代码来处理,并 不建议这样做。5)最后一种常用的异常处理结构是try.except.finally.结构。在该结构中,finally子 句中的内存无论是否发生异常都会执行,常用来做一些清理工作以释放try子句中申请的资 源。语法如下:try:finally:#无论如何都会执行的代码8.2 异常

46、和错误有什么区别?答:异常是指因为程序执行过程中出错而在正常控制流以外采取的行为。严格来说,语法错 误和逻辑错误不属于异常,但有些语法错误往往会导致异常,例如由于大小写拼写错误而访 问不存在的对象,或者试图访问不存在的文件,等等。8.3 使用pdb模块进行Python程序调试主要有哪几种用法?答:主要有三种方式,1)在交互模式下使用pdb模块提供的功能可以直接调试语句块、表达式、函数等多种 脚本。2)在程序中嵌入断点来实现调试功能在程序中首先导入pdb模块,然后使用pdb.set_trace()在需要的位置设置断点。如果程 序中存在通过该方法调用显式插入的断点,那么在命令提示符环境下执行该程序

47、或双击执行 程序时将自动打开pdb调试环境,即使该程序当前不处于调试状态。3)使用命令行调试程序在命令行提示符下执行“python-m pdb脚本文件名”,则直接进入调试环境;当调 试结束或程序正常结束以后,pdb将重启该程序。8.4 Python内建异常类的基类是 BaseException。8.5 断言语句的语法为 assert。8.6 Python上下文管理语句是 with第9章GUI编程9.1 设计一个窗体,并放置一个按钮,单击按钮后弹出颜色对话框,关闭颜色对话框后 提示选中的颜色。答:Python 2.7.8代码如下,import wxclass wxGUI(wx.App):def

48、Onlnit(self):frame=wx.Frame(parent=None,title=wxGUI,size=(160,140)panel=wx.Panel(frame,-1)buttonOK=wx.Button(panel,-1,OK,pos=(0,0)self.Bind(wx.EVT BUTTON,self.OnButtonOK,buttonOK)frame.Show()return Truedef OnButtonOK(self,event):colorDlg=wx.ColourDialog(None)colorDlg.ShowModal()color=colorDlg.GetCol

49、ourData().Colourwx.MessageBox(str(color)app=wxGUI()app.MainLoop()9.2 设计一个窗体,并放置一个按钮,按钮默认文本为“开始”,单击按钮后文本变为“结束”,再次单击后变为“开始”,循环切换。答:Python 2.7.8代码如下,import wxclass wxGUI(wx.App):def Onlnit(self):frame=wx.Frame(parent=None,title=wxGUr,size=(160,140)panel=wx.Panel(frame,-1)self.buttonOK=wx.Button(panel,-

50、1,Start,pos=(0,0)self.Bind(wx.EVT BUTTON,self.OnButtonOK,self.buttonOK)frame.Show()return Truedef OnButtonOK(self,event):text=self.buttonOK.GetLabelText()if text Start:self.buttonOK.SetLabelText(End)elif text End:self.buttonOK.SetLabelText(Start)app=wxGUI()app.MainLoop()9.3 设计一个窗体,模拟QQ登录界面,当用户输入号码12

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服