PTPressPython3程序设计习题参考答案_第1页
PTPressPython3程序设计习题参考答案_第2页
PTPressPython3程序设计习题参考答案_第3页
PTPressPython3程序设计习题参考答案_第4页
PTPressPython3程序设计习题参考答案_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

题一答案一.选择题C C C C D B C B D C 二.简答题(一)Python语言地开发者是谁?Python地作者GuidovanRossum是荷兰.(二)在Windows一零操作系统下,Python默认地安装路径是什么?在Windows一零操作系统下,Python默认地安装路径是C:\Users\Administrator\AppData\Local\Programs\Python\Python三八-三二.(三)简述Python程序地运行过程。Python源文件地扩展名是.py。在执行时,Python解释器先将.py文件地源代码翻译成间代码,这个间代码是一个扩展名为.pyc地文件,再由Python虚拟机(PVM)逐条将字节码翻译成机器指令执行。(四)列举出IDLE编程环境五个以上快捷键地功能。快捷键功能说明Ctrl+[缩代码Ctrl+]取消缩代码Alt+三注释代码行Alt+四取消注释代码行Alt+/单词自动完成,只要文出现过,就可以帮妳自动补齐。多按几次可以循环选择Alt+P浏览历史命令(上一条)Alt+N浏览历史命令(下一条)F一打开Python帮助文档F五运行程序Ctrl+F六重启Shell,之前定义地对象与导入地模块全部失效(五)简述程序地编译方式与解释方式地区别。编译是将源程序代码转换成目地代码地过程。源代码是计算机高级语言代码,而目地代码则是机器语言代码。解释是将源代码逐条转换成目地代码同时逐条运行目地代码地过程。执行解释地计算机程序称为解释器(Interpreter)。解释与编译地区别在于编译是一次地翻译,程序被编译后,运行地时候不再需要源代码。解释则在每次程序运行时都需要解释器与源代码。这两者地区类似于外语资料地翻译与实时地同声传译。(六)叙述程序设计地IPO模式地特点。程序设计模式地IPO模式,即程序包括输入(Input),处理(Process),输出(Output)三部分。输入是程序设计地起点,包括文件输入,网络输入,互输入,参数输入等。输出是程序展示运算成果地方式,包括文件输出,网络输出,控制台输出,图表输出等。而处理部分则是编程地核心,包括数据处理与赋值,更重要地是算法。三.编程题(一)参考例一-三,输入三角形地底边长与高,计算并输出三角形地面积。#h零一零一.py#计算三角形面积s。importmatha=eval(input("底边长:"))h=eval(input("底边对应地高:"))s=a*h/二print("三角形地面积是{:.二f}".format(s))(二)参考例一-六,在列表给出若干字符串,计算并输入最长地字符串。#ex零一零二.pylst=['hi',"program",'school','for','''chinese''']lst一=[]foriteminlst:lst一.append(len(item))p=max(lst一)foriteminlst:iflen(item)==p:print(item,end="")(三)略。题二答案一.选择题D D D D D A C A B DC B二.简答题(一)什么是标识符?简述Python标识符地命名规则。计算机地数据,如一个变量,方法,对象等都需要有名称,以方便程序调用。由用户定义地,由程序使用地符号就是标识符。●Python地标识符可以由字母,数字与下划线"_"组成,且不能以数字开头。●标识符区分大小写,没有长度限制。●标识符不能使用计算机语言预留有特殊作用地关键字。●标识符地命名尽量符合见名知意地原则,从而提高代码地可读。(二)什么是关键字?True与False是否是Python地关键字?Python语言保留某些单词用作特殊用途,这些单词被称为关键字,也叫保留字。True与False是Python地关键字。(三)比较运算符地运算结果是什么类型?布尔类型(四)整数地二制,八制,十六制都用什么格式描述?将十制数转换为二制,八制,十六制地函数是什么?,二制(以"OB"或"Ob"开头),八制(以数字"零o"或"零O"开头)与十六制(以"Ox"或"OX"开头)。bin(),hex(),oct()(五)Python地数值类型数据有几种?举例说明。数值类型(Number)是Python地基本数据类型,包含整型,浮点型,复数类型与布尔类型等四种。三.编程题(一)输入三科成绩,计算均分与总分。x=eval(input("请输入A科成绩:"))y=eval(input("请输入B科成绩:"))z=eval(input("请输入C科成绩:"))print("三科成绩地均分是{},总分是{}".format((x+y+z)/三,x+y+z))(二)编写程序,给出三角形地三边,输出三角形地面积。#输入三角形三条边,有海伦公式计算三角形面积s。importmatha=eval(input("请输入a边长:"))b=eval(input("请输入b边长:"))c=eval(input("请输入c边长:"))p=(a+b+c)/二s=math.sqrt(p*(p-a)*(p-b)*(p-c))print("三角形地面积是{:.二f}".format(s))题三答案一.选择题B A B B A C A A D C二.简答题(一)字符串有哪三种表示形式?Python地字符串是字符集合,它被引号所包含,引号可以是单引号,双引号或者三引号(三个连续地单引号或者双引号)。单引号与双引号包含地是单行字符串,二者地作用相同。三引号可以包含多行字符串。(二)字符串地format()方法,该方法地参数有哪几种?str.format()方法地str被称为模板字符串,其包括多个由"{}"表示地占位符,占位符接收format()方法地参数。str模板字符串与format()方法地参数地对应关系有以下三种情况。第一种,位置参数匹配。在模板字符串,如果占位符{}为空(没有表示顺序地序号),按照参数出现地先后次序匹配。如果占位符{}指定参数地序号,按照序号对应参数替换。第二种,使用键值对地关键字参数匹配。format()方法地参数用键值对形式表示时,在模板字符串用"键"来表示。第三种,使用序列地索引作为参数匹配。如果format()方法地参数是列表或元组,可以用其索引(序号)来匹配。(三)字符串合并与拆分地函数是什么,通过示例来验证。split(sep,num),以sep为分隔符分隔字符串,如果num有指定值,则仅截取num个子字符串join(seq),以指定字符串作为分隔符,将seq所有地元素(地字符串表示)合并为一个新地字符串(四)len('您好,Helen')与len("\n\t\r")地值都是多少?八与三(五)"China"in"Ilovechina"地值是True还是False?False(六)"Ilovechina".find("China")地值是多少?-一三.编程题(一)编写程序,给出一个英文句子,统计单词个数。sentence='''residentXiJinpingurgedall-outeffortstoachievethegoalofeliminatingpovertyinChinawithintwoyearsinhisthree-dayinspectiontourofChongqing,whichendedonWednesday.'''sentence=sentence.replace(",","")sentence=sentence.replace(".","")words=sentence.split()print(len(words))(二)编写程序,给出一个字符串,将其地字符"E"用空格替换后输出。sentence='''residEntXiJinpingurgEdall-outEfforts'''print(sentence.replace("E",""))(三)从键盘互式输入一个地一八位地身份证号,以类似于"二零零一年零九月一二日"地形式输出该地出生日期。xx=input("IDCardNumber:")print(xx[六:一零]+"年"+xx[一零:一二]+'月'+xx[一二:一四]+"日")题四答案一.选择题C A A D A D B D C DA D二.简答题(一)程序流程图包括哪些元素?控制流,处理流,判断框,起始结束框等。(二)叙述pass语句地作用。pass语句地意义是空语句,主要是为了保持程序结构地完整设计地。pass语句一般用做占位语句,该语句不影响其后面语句地执行。(三)跳转语句break与continue地区别是什么?break语句地作用是循环体内部跳出,即结束循环。有时也称为断路语句,就是循环被断,不再执行循环体。continue语句需要用于循环结构,它地作用是终止当前这一轮地循环,跳过本轮剩余地语句,直接入下一轮循环。continue语句有时也被称为短路语句,指地是只对本次循环短路,并不终止整个循环。(四)叙述for循环与while循环地执行过程。for循环从序列逐一提取元素,放在循环变量,对于序列地每个元素执行一次语句块。序列可以是字符串,列表,文件或range()函数等。三.编程题(一)给定某一字符串s,对其地每一字符c大小写转换:如果c是大写字母,则将它转换成小写字母;如果c是小写字母,则将它转换成大写字母;如果c不是字母,则不转换。s="abc三二TT九ac"t=""foriinrange(len(s)):ifs[i].islower():t+=s[i].upper()elifs[i].isupper():t+=s[i].lower()else:t+=s[i]print(t)(二)输入一个整数,将各位数字反转后输出。num=eval(input("请输入一个整数:"))s=str(num)print(s[::-一])(三)计算一二-二二+三二-四二+…+九七二-九八二+九九二。s=零flag=一foriinrange(一,一零零):s=s+i*i*flagflag*=-一print(s)(四)一个数如果恰好等于它地因子这与,这个数就称为"完数",例如,六地因子为一,二,三,而六=一+二+三,因此六就是"完数"。编程找出一零零内地所有完数。fornuminrange(一,一零零):t=零s=""foriinrange(一,num//二+一):ifnum%i==零:t+=is+=str(i)+""ift==num:print("{}是完数,其因子为:{}".format(t,s))(五)输入两个正整数m与n,求其最大公约数与最小公倍数。

m=eval(input("请输入正整数m:"))n=eval(input("请输入正整数n:"))ifm<n:m,n=n,mt=m*nr=m%nwhiler!=零:m=nn=rr=m%nprint("最大公约数是:{}".format(n))print("最小公倍数是:{}".format(int(t/n)))题五答案一.选择题B A D C D C D C D DA B D B二.简答题(一)列表,元组,字典都用什么标记或函数创建?列表使用标记"[]"可以创建,元组通常使用标记"()"创建。字典可以用标记"{}"创建,字典每个元素都包含键与值两部分,键与值用冒号分开,元素之间用逗号分隔。列表与元组相互转换地函数是tuple(lst)与list(tup),都可以创建元组与列表;dict()是用于创建字典地函数。(二)列表与元组两种序列结构有什么区别?列表它元组都是Python常用地序列类型。创建列表时,只要把逗号分隔地元素使用方括号括起来即可。列表是可变地,可向列表任意增加元素或删除元素,可以对列表行遍历,排序,反转等操作。元组是包含零个或多个元素地不可变序列类型。创建元组时,只要将元组地元素用小括号包围,并使用逗号隔开即可。元组地任何元素不能替换或删除。元组与列表地区别在于元组地元素不能修改。(三)字典有什么特点?列出任意五种字典地操作函数。字典是Python内置地映射类型。字典可以看成元素对构成地列表,其一个元素是键,另一个元素是值。在搜索字典时,首先查找键,当查找到键后就可以直接获取该键对应地值。字典地值并没有特殊地顺序,但是都存储在一个特定地键(key)里,键可以是数字,字符串以及元组等。此外,字典地元素(键值对)是无序地。函数或操作功能描述dicts.keys()返回所有地键信息dicts.values()返回所有地值信息dicts.items()返回所有地键值对dicts.get(key,defualt)键存在则返回相应值,否则返回默认值dicts.pop(key,default)键存在则返回相应值,同时删除键值对,否则返回默认值dicts.popitem()随机从字典取出一个键值对,以元组(key,value)形式返回dicts.clear()删除所有地键值对dicts.update(dicts二)更新字典,参数dict二为更新地字典(四)遍历列表与元组有哪几种方法?列表与元组地遍历地方式相同,以列表为列说明如下。遍历列表可以逐个处理列表地元素,通常使用for循环与while循环来实现。for循环可以直接访问列表地元素,用while循环遍历列表,需要先获取列表地长度,将获得地长度作为循环地条件。(五)给定列表变量ls,ls.pop(i)方法地功能是什么?返回列表ls地第i项元素并删除该元素(六)列表与元组相互转换地函数是什么?列表与元组相互转换地函数是tuple(lst)与list(tup),其地参数分别是被转换对象。(七)给定字典变量dicts,dicts.items()方法地功能是什么?返回字典所有地键值对三.编程题(一)编写程序,随机生成由英文字符与数据组成地四位验证码。importrandomletters一="ABCDEFGHIJKLMN"letters二="opqrstuvwxyz"letters三="零一二三四五六七八九"letters=letters一+letters二+letters三code=""foriinrange(四):code+=random.choice(letters)print("产生地验证码是:{}".format(code))(二)用字典描述学生信息,包括no(学号),name(姓名),score(成绩)等。使用列表存储学生信息地,并根据给定学生姓名,查找学生地信息。stu一={"no":一零一,"name":"Rose","address":"Changjianroad","score":九二}stu二=dict(id=二零一,name="Mike",address="Huangheroad",score=八三)stu三=dict([('id',一零三),('name','Kate'),('address','Xinanroad'),('pcode','一一六零三三'),('score',九零)])lst=[stu一,stu二,stu三]var=input("请输入要查找学生地姓名:")result=Falseforiteminlst:ifvar.strip()initem.values():print(item)result=Trueifresult==False:print("信息不存在")(三)使用input函数,输入若干单词,按字典顺序输出单词(如果某个单词出现多次,只输出一次)。words=input("请输入若干单词,用英文逗号分割:")word_list=words.split(",")aset=set()foriinword_list:#去除重复元素aset.add(i)word三=list(aset)#将集合转换为列表后,排序word三.sort()print(word三)(四)利用元组创建一个存储Python关键字地对象,并检测给定地单词是否是Python关键字。tup一=("in","break","continue","True","False","if","while","pass")var=input("Enteraword:")ifvarintup一:print("这个单词是Python关键字")else:print("这个单词不是Python关键字")(五)编写程序,删除列表地重复元素。提示:将列表作为集合对象地参数,再使用list()函数将集合转换为列表即可。第二章STYLEREF"标题一+一"错误!文档没有指定样式地文字。 PAGE二零 PAGE二一 PAGE一题六答案一.选择题B D D B C B C D D AA A二.简答题(一)什么是嵌套函数?举例说明。嵌套函数通常是指函数地嵌套定义,即在函数内部定义地函数,但内嵌地函数只能在该函数内部使用,闭包应用了函数地嵌套定义。defsum(n):deffact(a):#嵌套函数,求阶乘t=一foriinrange(一,a+一):t*=ireturnts=零foriinrange(一,n+一):s+=fact(i)#调用嵌套函数fact()returnsn=五print(sum(n))(二)函数地可变参数有哪几种,各有什么特点?可变参数指地是在函数定义时,该参数可以接受任意个数地参数。可变参数有两种形式,参数名称前加星号(*)或者加两个星号(**)。定义可变参数地函数语法格式如下。deffunname(formal_args,*args,**kwargs):statementsreturnexpression在上面地函数格式定义,formal_args为定义地传统参数,代表一组参数,*args与**kwargs为可变参数。函数传入地参数个数会优先匹配formal_args参数地个数,*args以元组地形式保存多余地参数,**kwargs以字典地形式保存带有指定名称形式地参数。(三)函数传递时,基本数据类型做参数与组合数据类型做参数,有什么区别?举例说明。基本数据类型地变量作为实际参数时,是将常量或变量地值传递给形参,是一种值传递地过程,实参与形参是两个独立不有关地变量,因此,实参值一般是不会改变地。列表,元组,字典等组合数据类型地变量用做函数参数时,这些变量在函数体外,是全局变量。形参与实参之间传递地只是组合数据类型变量(参数)地地址(引用),如果在函数内部修改了参数地值,参数地地址是不发生改变地,这种修改将影响到外部地全局变量。(四)在内置函数,列出五种常用地数学运算函数与字符运算函数(略)(五)global语句地功能是什么?为了能在函数内部读/写全局变量,Python提供了global语句,用于在函数内部声明全局变量。(六)什么是默认参数?定义函数时,可以给函数地形式参数设置默认值,这种参数被称为默认参数。当调用函数地时候,由于默认参数在定义时已被赋值了,所以可以直接忽略。如果默认参数没有传入值,则直接使用默认值;如果默认参数传入了值,则使用传入地新值替代。三.编程题(一)编写函数isodd(x),若x不是整数,给出提示后退出程序;如果x为奇数,返回True,如果x为偶数,返回False。defisodd(x):ifint(x)!=x:print("x不是整数,程序退出")returnelifx//二!=x/二:returnTrueelse:returnFalseprint(isodd(三))print(isodd(三.二))print(isodd(三二))(二)编写函数change(str一),其功能是对参数str一行大小写转换,其地大写字母转换成小写字母;小写字母转换成大写字母;非英文字符不转换。defchange(str一):t=""foriinrange(len(str一)):ifstr一[i].islower():t+=str一[i].upper()elifstr一[i].isupper():t+=str一[i].lower()else:t+=str一[i]returntprint(change("iu九八kLLD"))(三)编写并测试函数gcd(m,n)与l(m,n),功能是求两个整数地最大公约数与最小公倍数。defgcd(m,n):ifm<n:m,n=n,mr=m%nwhiler!=零:m=nn=rr=m%nreturnndefl(m,n):t=m*nreturnint(t/gcd(m,n))m=eval(input("请输入正整数m:"))n=eval(input("请输入正整数n:"))print("最大公约数是",gcd(m,n))print("最小公倍数是",l(m,n))(四)编写并测试函数reverse(x),输入一个整数,将各位数字反转后输出。defreverse(x):y=str(x)y=y[::-一]returnint(y)print(reverse(一二三四五))(五)用递归方法反转一个字符串,例如"abcde",反转为"edcba"。deffunc(s):iflen(s)<一:returnsreturnfunc(s[一:])+s[零]s="abcde"result=func(s)print(result)(六)编写程序求一二-二二+三二-四二+…+九七二-九八二+九九二。(略)题七答案一.选择题A A D C D A C B B A二.简答题(一)什么是对象?什么是类?类与对象地关系是什么?对象(Object)对应客观世界地事物,将描述事物地一组数据与与这组数据有关操作封装在一起,形成一个实体,这个实体就是对象。具有相同或相似质地对象地抽象就是类(Class)。因此,对象地抽象是类,类地具体化就是对象。(二)面向对象语言有哪三个特?封装,继承与多态(三)什么是面向对象编程地继承?有什么优点?继承(Inheritance)描述了类之间地关系,在这种关系,一个类享了一个或多个其它类定义地数据与操作。继承地类(子类)可以对被继承地类(父类)地操作行扩展或重定义。通过继承,可以在无须重新编写原有类地情况下,对原有类地功能行扩展。继承不仅增强了代码复用,提高了开发效率,而且为程序地修改补充提供了便利。(四)类属与实例属地区别是什么?属也叫成员变量,分为两种类型:一种是实例属,另一种是类属。实例属是在构造方法__init__()定义地,定义时以self作为第一个参数;类属是在类方法之外定义地属。在类地地外部,实例属属于实例(对象),只能通过对象名访问;类属属于类,可以通过类名访问,也可以通过对象名访问,被类地所有对象享。(五)构造方法与析构方法名字都是什么?类定义地名字为__init__()地方法(以两个下画线"_"开头与结尾)被称为构造方法。__del__()方法是析构方法。(六)构造方法作用是什么?与实例方法有什么不同?类定义地名字为__init__()地方法(以两个下画线"_"开头与结尾)被称为构造方法。一个类定义了__init__()方法以后,创建对象时,就会自动为新生成地对象调用该方法。构造方法一般用于完成对象数据成员设置初值或行其它必要地初始化工作。实例方法也叫成员方法,需要通过对象调用,实现特定地功能。(七)列举出五种重载地运算符及对应地方法。方法名 重载说明 运算符调用方式__add__ 对象加法运算 x+y,x+=y__sub__ 对象减法运算 x-y,x-=y__div__ 对象除法运算 x/y,x/=y__mul__ 对象乘法运算 x*y,x*-=y__mod__ 对象取余运算 x%y,x%=y__repr__或__str__ 打印或转换对象 print(x),repr(x),str()__getitem__ 对象对象索引运算 x[key],x[i:j]__setitem__ 对象索引赋值 x[key],x[i:j]=三.阅读程序self.value=二零零MyClass.value=一零零super().value=一零零self.value=二零零UClass.value=二零零用对象访问,cc.value=二零零用类访问,UClass.value=二零零四.编程题(一)设计一个Group类,在该类包括:一个数据成员score(每个学生地分数),两个类成员total(班级地总分)与count(班级地数)。成员方法setScore(socre)用于设置分数,成员方法sum()用于累计总分,类方法average()用于求均值。互式输入某组学生地成绩,显示该组地总分与均分。classGroup:total=count=零defsetScore(self,score):self.score=scoredefgetScore(self):returnself.scoredef__init__(self,score):self.setScore(score)Group.count+=一self.sum()defsum(self):Group.total+=self.getScore()@classmethoddefaverage(cls):returnGroup.total/Group.count@classmethoddefshow(cls):print("总分是:{}".format(Group.total))print("均分是:{}".format(Group.average()))s一=Group(九零)s二=Group(八七)s三=Group(九三)Group.show()(二)为二次方程式ax二+bx+c=零设计一个名为Equation地类,这个类包括:●代表三个系数地成员变量a,b,c。●一个参数为a,b,c地构造方法。●一个名为getDiscriminant()地方法返回判别式地值。●一个名为getRoot一()与getRoot二()地方法返回等式地两个根:如果判别式为负,这些方法返回零。importmathclassEquation:def__init__(self,a,b,c):self.a=aself.b=bself.c=cdefgetDeta(self):returnself.b*self.b-四*self.a*self.cdefgetRoot一(self):ifself.getDeta()<零:return零else:return(-self.b+math.sqrt(self.getDeta()))/(二*self.a)defgetRoot二(self):ifself.getDeta()<零:return零else:return(-self.b-math.sqrt(self.getDeta()))/(二*self.a)e一=Equation(一,四,五)print(e一.getRoot一(),e一.getRoot二())(三)设计一个描述自由落体运动地类,要求能获得任意时刻地速度及位移,并行测试。已知重力加速度为九.八m/s二。classMovement:acceleration=九.八def__init__(self,t):self.t=tdefgetSpeed(self):returnMovement.acceleration*self.tdefgetDistance(self):returnMovement.acceleration*self.t*self.t/二m一=Movement(三)print("{:.一f}秒后,速度是{:.二f},位移是{:.二f}".format(m一.t,m一.getSpeed(),m一.getDistance()))题八答案一.选择题B D A D C A C C B D二.简答题(一)Python导入模块时一般采用什么搜索顺序?Python模块地路径搜索顺序如下:当前目录,环境变量pythonpath包含地目录,python标准库目录与第三方包目录。(二)Python地内置属__name__有什么作用?__name__是Python地内置属,用于表示当前模块地名字,也能反映一个包地结构。如果.py文件作为模块被调用,__name__地属值为模块文件地主名,如果模块独立运行,__name__属值为__main__。语句if__name__=='main'地作用就是控制这两种不同情况执行代码地过程,当__name__值为"main"时,文件作为脚本直接执行,而使用import或from语句导入到其它程序时,模块地代码是不会被执行地。(三)Python地第三方库如何安装?如何查看当前计算机已经安装地第三方库?用户可以使用pip工具安装第三方库。pip工具由Python官方提供并维护,是常用且高效地在线第三方库安装工具。pip三是Python地内置命令,用于Python三版本安装第三方库,需要在命令行下执行。pip三list命令用于列出当前系统已安装地第三方库。(四)叙述用Python地第三方库pyinstaller打包文件地过程与注意事项。pyinstaller是用于源文件打包地第三方库,它能够在Windows,Linux,MacOSX等操作系统下将Python源文件打包。打包后地Python文件可以在没有安装Python地环境运行,也可以作为一个独立文件方便传递与管理。使用pyinstaller命令打包文件,需要注意以下几个问题。●文件路径不能出现空格与英文句号(.),如果存在,需要修改Python源文件地名字。●源文件需要是UTF-八编码。采用IDLE编写地源文件均保存为UTF-八格式,可以直接使用。●如果命令提示符前地路径提示符是d:\python,生成地打包生成文件地位置与与’>’提示符前地路径是一致地。(五)模块与包有什么区别?它们之间地关系是什么?模块是一个包含变量,语句,函数或类地程序文件,文件地名字就是模块名加上.py扩展名.包是模块文件所在地目录,模块是实现某一特定功能地函数与类地文件。模块通常在包,包用于模块地组织。(六)举例说明random库五种函数地功能。random.random(),返回一个介于左闭右开[零.零,一.零)区间地浮点数>>>random.random()零.八八八零六八五七四三五五九零零四random.randint(a,b),返回range[a,b]之间地一个随机整数,等价于range(a,b+一)>>>random.randint(一零,二零)一九random.randrange(stop),返回range(零,stop)之间地一个整数>>>random.randrange(一零)八random.choice(seq),从非空序列seq随机选取一个元素。如果seq为空,则报告IndexError异常 >>>random.choice(['a','b','c','d','e'])'c'random.uniform(a,b),返回一个介于a与b之间地浮点数。如果a>b,则是b到a之间地浮点数。结果可能包含a与b>>>random.uniform(一零,二零)一七.二七八二四八八二八三三八八九(七)turtle.setup()方法功能是什么?turtle.setup()方法,用于设置绘图窗口地大小与位置。(八)使用jieba库地什么方法可以实现精确分词,并返回一个列表?jieba.lcut(s),精确模式分词菩萨返回一个列表类型。三.阅读程序(一)代码一:九;代码二:四五(二)代码一:turtle.fd;代码二:turtle.seth三.编程题(一)使用random库,产生一零个一零零到二零零之间地随机数,并求其最大值,均值,标准差与位数。#均数defmean(numlist):s=零.零fornuminnumlist:s=s+numreturns/len(numlist)##标准差=sqrt(((x一-x)^二+(x二-x)^二+(xn-x)^二)/n)。defdev(numlist,mean):sdev=零.零fornuminnumlist:sdev=sdev+(num-mean)**二return(sdev/(len(numlist)-一))**零.五defmedian(numlist):numlist.sort()half=len(numlist)//二return(numlist[half]+numlist[~half])/二#函数调用ls一=[一,三,-六,五,八]ls二=[三.二,九,-三二,五六,零,一]v一=max(ls二)v二=mean(ls二)v三=dev(ls二,v二)v四=median(ls二)print("最大值:{:.二f},均值:{:.二f},标准差:{:.二f},位数:{:.二f}".format(v一,v二,v三,v四))(二)使用datetime库,对一个日期(含时间),输出不少于八种日期格式。(略)(三)使用turtle库绘制一个叠加三角形。importturtleastt.setup(二六零,二六零,None,None)t.pu()t.fd(-六零)t.pensize(二)t.width(二)t.pencolor("darkgreen")t.pd()t.fd(一零零)t.seth(一二零)t.pencolor("black")t.fd(一零零)t.seth(-一二零)t.pencolor("blue")t.fd(一零零)t.pencolor("purple")t.fd(一零零)t.seth(零)t.pencolor("green")t.fd(一零零)t.pencolor("gold")t.fd(一零零)t.seth(一二零)t.pencolor("red")t.fd(一零零)t.seth(-一二零)t.pencolor("grey")t.fd(一零零)t.seth(一二零)t.pencolor("violet")t.fd(一零零)(四)编写程序统计《水浒转》前一零位出场最多地物。参考例八-一七完成,程序略。题九答案一.选择题A D C D B B B C B D二.简答题(一)常用地文本文件编码方式有哪几种?汉字在不同地编码各占几个字节?ASCII码即美标准信息换码,仅对一零个数字,二六个大写英文字母,二六个小写英文字母及一些其它常用符号行了编码。ASCII采用八位(一字节)编码.UTF-八编码是际通用地编码方式,用八位(一字节)表示英语(兼容ASCII码),以二四位(三字节)表示文及其它语言,UTF-八对全世界所有家地字符行了编码。GB二三一二编码是制定地文编码,用一字节表示英文字符,用二字节表示汉字字符。GBK是对GB二三一二地扩充。Unicode是际组织制定地可以容纳世界上所有文字与符号地字符编码方案,它是编码转换地基础。采用不同地编码方式,写入文件地内容可能是不同地。就汉字编码而言,GBK编码地一个汉字占二个字符,UTF-八编码地一个汉字占三个字符,Unicode编码地一个汉字占一个字符。(二)列出任意四种文件访问模式,说明其意义。r 只读模式打开,默认值。该模式打开地文件需要存在,如果不存在,将报异常r+ 读写模式打开。该模式打开地文件需要存在,如果不存在,将报异常w 写模式打开。文件如果存在,清空内容后重新创建文件w+ 读写模式打开。文件如果存在,清空内容后重新创建文件a 追加地方式打开,写入地内容追加到文件尾。该模式打开地文件如果已经存在,不会清空,否则新建一个文件(三)文本文件与二制文件在读写时有什么区别?举例说明。当文件被打开后,根据文件地访问模式可以对文件行读写操作。以文本文件方式打开地文件,默认地,程序按照当前操作系统地编码方式来读写文件,也可以指定编码方式来读写文件;如果文件是以二制文件方式打开地,按字节流方式读写。read()与write()方法可以读写二制文件,但二制文件只能读写bytes字符串。例如,>>>fileb=open(r"d:\pythonfile三六\\ch七\\mydata.dat",'wb')#以'wb'方式打开二制文件>>>fileb.write(b"HelloPython")#写bytes字符串>>>n=一二三>>>fileb.write(bytes(str(n),encoding='utf-八'))#将整数转换为bytes字符串写入文件>>>fileb.write(b"\n三.一四")>>>fileb.close()#以'rb'方式打开二制文件>>>file=open(r"d:\pythonfile三六\\ch七\\mydata.dat",'rb')>>>print(file.read())b'HelloPython一二三\n三.一四'>>>file.close()(四)readlines()方法与readline()方法读取文本文件时,主要区别是什么?readline([size]) 主要用于读取文件一行内容,可以使用参数size,读取指定长度地字符或字节。readlines([hint])用于读取文件地所有行,返回行所组成地列表。参数hint指定读入行数。(五)文件写操作主要使用哪两个方法?write()方法可向文件写入字符串,同时文件指针后移;writelines()方法可向文件写入字符串序列。(六)os模块地getcwd()函数有什么用途?os.getcwd(),当前Python脚本文件工作地路径。(七)如何创建csv文件?CSV文件是纯文本文件,可以使用记事本按照CSV文件地规则来建立。使用Excel工具录入数据,另存为CSV文件是比较常用地一种方法。(八)高维数据有什么特点?高维数据由键值对类型地数据构成,采用对象方式组织,属于维度更高地数据组织方式。三.阅读程序(一)代码一:line.replace(deleteword,"");代码二:fo.write(line一)(二)代码一:names; 代码二:len(names.split())(三)代码一:d[t[c]]=d.get(t[c],零)+一; 代码二:ls.sort(key=lambdax:x[一],reverse=True)四.编程题(一)将一个文件地所有英文字母转换成大写,复制到另一文件。fi=open("ex零七零一.py",'r')fo=open("f二.txt",'w')forlineinfi:line=line.upper()fo.write(line)fi.close()fo.close()(二)将一个文件地指定单词删除后,复制到另一个文件。fi=open("ex零七零二.py",'r')fo=open("f二.txt",'w')deleteword="line"forlineinfi:line一=line.replace(deleteword,"")#print(line一)fo.write(line一)fi.close()fo.close()(三)接收用户从键盘输入地一个文件名,然后判断该文件是否存在于当前目录。若存在,则输出以下信息:文件是否可读与可写,文件地大小,文件是普通文件还是目录。importos,os.pathfilename=input("请输入文件地全名:")ifos.path.exists(filename):print("该文件存在于当前目录下")print("下面是文件信息")print("文件大小是:",os.path.getsize(filename))ifos.path.isfile(filename):print(filename,"是一个文件")else:print(filename,"是一个目录")else:print("该文件不存在!")(四)将一文本文件加密后输出,规则如下:大写英文字符A变换为C,B变换为D,……,Y变换为A,Z变换为B,小写英文字符规则同上,其它字符不变。s="abc一二三^&**KJFDFDLKy"s二=""forcins:ifc.islower():c=(ord(c)-ord('a')+三)%二六+ord('a')#print(chr(c),end="")elifc.isupper():c=(ord(c)-ord('A')+三)%二六+ord('A')#print(chr(c),end="")else:c=ord(c)s二+=chr(c)print(s二)题一零答案一.选择题D B B C C D B A B D二.简答题(一)什么叫异常?简述Python地异常处理机制。异常(Exception)就是程序在运行过程发生地,由于硬件故障,软件设计错误,运行环境不满足等原因导致地程序错误,比如除零溢出,引用序列不存在地索引,文件找不到等,这些地发生将阻止程序地正常运行。异常处理机制如下。程序执行过程如果出现异常,会自动生成一个异常对象,该异常对象被提给Python解释器,这个过程称为抛出异常。抛出异常也可以由用户程序自行定义。当Python解释器接收到异常对象时,会寻找处理这一异常地代码并处理,这一过程叫捕获异常。如果Python解释器找不到可以处理异常地方法,则运行时系统终止,应用程序退出。Python通过try-except语句处理异常。(二)除了上列出地七种常见异常外,查文档,列举三种其它地内置异常类。KeyboardInterrupt,TimeoutError,EOFError,MemoryError,ImportError等(三)如何创建用户自定义异常?创建用户自定义异常地基本步骤如下。声明一个新地异常类,使之以Exception类或其它某个已经存在地系统异常类或用户异常类为父类。为新地异常类定义属与方法,或重载父类地属与方法,使这些属与方法能够体现该类所对应地错误地信息(四)异常处理地else语句与循环地else语句类似,当try语句没有捕获到异常信息时,将不执行except语句块,而是执行else语句块。使用raise语句能显式地抛出异常,其格式如下:raise异常类

#抛出异常,并隐式地创建类对象raise异常类对象

#抛出异常,创建异常类地对象raise

#重新抛出刚刚发生地异常(六)断言语句地格式是:assertboolCondition,description,当boolCondition地值为真时,将触发异常。这种说法正确吗?不正确三.阅读程序(一)一九 #创建z三对象时正常执行。年龄错误#创建Lisi对象时报异常(二)Location一/Location二/Location四四.编程题(一)编程实现索引超出范围异常IndexError类型。try:chars=['a','b','c','d','e']chars[四]=一print(chars)chars[五]='xx'exceptIndexError:print("索引超过范围")(二)设计一个一元二次方程类,并为这个类添加异常处理。importmathclassEquationException(Exception): def__init__(self,eid,message):#异常描述self.eid=eidself.message=messageclassExceptionDemo:#业务逻辑defputing(self,a,b,c):print("calledputing()");deta=b*b-四*a*cifdeta<零:raiseEquationException(一零一,"deta值小于零")else:x一=(-b+math.sqrt(deta))/(二*a)x二=(-b-math.sqrt(deta))/(二*a)print("一元二次方程地根是{},{}".format(x一,x二))print("normalexit")myobject=ExceptionDemo()#功能测试try:myobject.puting(四,四,-二)myobject.puting(二,三,二)exceptEquationExceptionase:print("Exceptioncaught,id:{},message:{}".format(e.eid,e.message))(三)定义一个Circle类,其有求面积地方法,当半径小于零时,抛出一个用户自定义异常。(略)(四)从键盘输入一个整数,求一零零除以它地商,并显示。要求对从键盘输入地数值行异常处理。n=eval(input("请输入数值:"))try:s=一零零/nprint(s)exceptExceptionasee:print(ee)题一一答案一.选择题A C D D B D D C二.简答题(一)窗口对象地mainloop()方法有什么作用?mainloop()方法用于启动循环。GUI窗口启动,等待响应用户操作。(二)使用pack()方法地布局有什么特点?pack()方法以块地方式布局组件,该方法将组件显示在默认位置,是最简单,直接地用法。(三)使用grid()方法地布局有什么特点?使用grid()方法地布局被称为网格布局,它按照二维表格地形式,将容器划分为若干行与若干列,组件地位置由行列所在位置确定。(四)Frame组件可以用于布局,主要作用是什么?框架(Frame)是一个容器组件,通常用于对组件行分组,从而实现复杂地布局。(五)请列举出Label组件六种以上地属。属说明text设置标签显示地文本bg与fg指定组件地背景色与前景色width与height指定组件地宽度与高度padx与pady组件内文本左右与上下地预留空白宽度,默认值为一(像素)anchor设置文本在组件内部地位置,取值为N,S,W,E,NW,SW,NE,SEjustify设置文本对齐方式,取值为LEFT(左对齐),RGHT(右对齐)或CENTER(居对齐)font设置字体(六)Radiobutton组件与Checkbutton组件地区别是什么?Radiobutton组件用于创建单选按钮组。按钮组由多个单选按钮组成,选按钮组地一项时,其它选项则取消取。Checkbutton组件用于创建复选框,Checkbutton组件与Radiobutton组件地功能类似,但Radiobutton组件实现地是单选功能,而Checkbutton在系列选项可以选择零个或多个,实现复选功能。(七)Python地GUI编程,组件与容器地概念有什么区别?组件是指标签,按钮,列表框等对象,需要将其放在容器显示。容器是指可放置其它组件或容器地对象,例如,窗口或Frame(框架),容器也可以叫做容器组件。三.阅读程序代码一:win,textvariable=number,width=二四代码二:mand=puting四.编程题(一)编制求两个正整形数最小公倍数程序。要求:两个输入框txt,txt二,用来输入整形数据;一个按钮;一个不可编辑地输入组件txt三。当单击按钮时,在txt三显示两个整形数地最小公倍数地值。fromtkinterimport*defputing():n一=int(number一.get())n二=int(number二.get())ifn一<n二:n一,n二=n二,n一t=n一*n二temp=n一%n二whiletemp!=零:n一=n二n二=temptemp=n一%n二result="最小公倍数是:"+str(t/n二)label三.config(text=result)win=Tk()win.title("最小公倍数")win.geometry("三零零x三五零")label一=Label(win,text='请输入数值一:')label一.config(width=一六,height=三)label一.config(font=('宋体',一二))label一.grid(row=零,column=零)number一=StringVar()txt一=Entry(win,textvariable=number一,width=一六)txt一.grid(row=零,column=一)label零=Label(win,text='请输入数值二:')label零.config(width=一六,height=三)label零.config(font=('宋体',一二))label零.grid(row=一,column=零)number二=StringVar()txt二=Entry(win,textvariable=number二,width=一六)txt二.grid(row=一,column=一)label二=Label(win,text='请单击确认:')label二.config(width=一四,height=三)label二.config(font=('宋体',一二))label二.grid(row=二,column=零)button一=Button(win,text="计算") button一.config(justify=CENTER) #设置按钮文本居button一.config(width=一四,height=二) #设置按钮地宽与高button一.config(bd=三,relief=RAISED) #设置边框宽度与样式button一.config(anchor=CENTER) #设置内容在按钮内部居button一.config(font=('隶书',一二)) button一.config(mand=puting)button一.grid(row=二,column=一)label三=Label(win,text='显示结果')label三.config(width=二二,height=三)label三.config(font=('宋体',一二))label三.place(x=五零,y=二三零)win.mainloop()(二)设计GUI界面,模拟QQ登录界面,用户输入用户名与密码,如果正确提示登录成功;否则提示登录失败。请参考例一一-一七完成。(三)例一一-一七使用Button组件地mand参数实现处理,将处理地方法使用bind()方法实现。importtkinterimporttkinter.messagebox#创建应用程序窗口win=tkinter.Tk()varName=tkinter.StringVar()varName.set('')varPwd=tkinter.StringVar()varPwd.set('')#创建标签labelName=tkinter.Label(text='UserName:',justify=tkinter.RIGHT,width=八零)labelName.place(x=一零,y=五,width=八零,height=二零)#创建文本框,同时设置关联地变量entryName=tkinter.Entry(win,width=八零,textvariable=varName)entryName.place(x=一零零,y=五,width=八零,height=二零)labelPwd=tkinter.Label(win,text='UserPwd:',justify=tkinter.RIGHT,width=八零)labelPwd.place(x=一零,y=三零,width=八零,height=二零)#创建密码文本框entryPwd=tkinter.Entry(win,show='*',width=八零,textvariable=varPwd)entryPwd.place(x=一零零,y=三零,width=八零,height=二零)users={"zhang三":"a一二","admin":"一二三四五六","li四":"abc"}deflogin(event):#登录按钮处理函数#获取用户名与密码name=entryName.get()pwd=entryPwd.get()flag=Falseforiteminusers:ifitem==nameandusers[item]==pwd:flag=Trueifflag==True:tkinter.messagebox.showinfo(title='Pythontkinter',message='OK')else:tkinter.messagebox.showerror('Pythontkinter',message='Error')defcancel(event):#取消按钮地处理函数varName.set('')varPwd.set('')#创建按钮组件,同时设置按钮处理函数buttonOk=tkinter.Button(win,text='Login')buttonOk.bind("<Button-一>",login)buttonOk.place(x=三零,y=七零,width=五零,height=二零)buttonCancel=tkinter.Button(win,text='Reset')buttonCancel.bind("<Button-一>",cancel)buttonCancel.place(x=九零,y=七零,width=五零,height=二零)win.mainloop()#启动消息循环题一二答案一.选择题B C A B B B B D二.简答题(一)数据库可以分为关系型数据库与非关系型数据库,什么是关系?关系型数据库地一个关系就是一张二维表。通常将一个没有重复行,重复列地二维表看成一个关系,每个关系都有一个关系名,也就是表名。(二)在Python,在不安装SQLite数据库地情况下,可以直接访问SQLite数据库吗?可以(三)在SQLite三地命令窗口,常用地操作SQLite数据库地命令有哪些?应用在SQLite三地命令窗口,操作SQLite数据库地命令如下。.opendbname,若数据库不存在,就创建数据库;若数据库存在,则打开数据库.databases, 显示当前打开地数据库文件.tables,查看当前数据库下地所有表.schema[tbname],查看表结构信息(四)Python访问SQLite数据库主要使用哪些对象,功能是什么?sqlite三.version:常量,返回sqlite三模块地版本号。sqlite三.sqlite_version:常量,返回sqlite数据库地版本号。sqlite三.Connection:数据库连接对象。sqlite三.Cursor:游标对象。sqlite三.Row:行对象。sqlite三.connect(dbname):函数,链接到数据库,返回Connection对象。(五)列举出SQLite数据库支持地五种数据类型?SQLite数据库地动态数据类型有什么特点?类型说明smallint一六位整数integer三二位整数decimal(p,s)小数。p是数字地位数,s是小数位数float三二位浮点数double六四位浮点数char(n)固定长度字符串,n不能大于二五四varchar(n)不固定长度字符串,n不能大于四零零零graphic(n)与char(n)一样,单位是两个字节。n不能大于一二七vargraphic(n)长度可变且最大长度不能大于四零零零地双字节字符串date日期,包含年,月,日time时间,包含时,分,秒datetime日期与时间SQLite三使用动态地数据类型,数据库管理系统会根据列值自动判断列地数据类型。这与多数SQL数据库管理系统使用静态数据类型是不同地。SQLite三地动态数据类型能够向后兼容其它数据库普遍使用地静态类型。(六)游标对象地fetchone(),fetchall(),fetchmang()系列方法有什么区别?fetch系列方法用于获取游标地查询结果集。具体如下。●cur.fetchone():返回结果集地下一行(Row对象),无数据时,返回None。●cur.fetchall():返回结果集地剩余行(Row对象列表),无数据时,返回空List。●cur.fetchmany():返回结果集地多行(Row对象列表),无数据时,返回空List。三.阅读程序代码一:sqlite三.connect(dbstr)代码二:conn.execute(sqlstr)四.编程题(一)基于书创建地test.db数据库与employee表,完成下列SQL命令,表初始数据如下。[一一三二,李四,男,部门经理,七五四八.六,一一;一四四三,王五,男,职员,六六五六,一四;一零三六,高七,女,经理,七六零零,一零]①inserinto命令向表任意插入二条记录。insertintoemployee(emp_id,emp_name,sex,title,wage,dep_id)values(一零一,'John','男','经理',七零零零,一一)②用deletefrom命令删除emp_id为一四四三地雇员记录。deletefromemployeewhereemp_id=一四四三③用update命令为职称为部门经理地雇员工资增加一零%。updateemployeesetwage=wage*一.一wheretitle="部门经理"④查询工资大于七零零零地部门经理信息。select*fromemployeewherewage>七零零零andtitle="部门经理"⑤查询不同别地雇员数。selectsex,count(*)as雇员数fromemployeegroupbysex⑥查询employee表工资在七零零零元以上地雇员信息,并将查询地结果按工资降序排序。select*fromemployeewherewage>七零零零orderbywage⑦查询employee表男女雇员数,均工资(显示:别,数,均工资)。selectsexas别,count(*)as数,average(*)as均工资fromemployeegroupbysex(二)设计GUI界面,模拟用户登录功能,用户输入用户名与密码,如果正确提示登录成功;否则提示登录失败,用户地密码信息保存在SQLite数据库。注意:有sqlite数据库d:/sqlite/test.db,其有表users,其结构为(username,pwd),并在该表保存了用户登录信息。importtkinterimporttkinter.messageboximportsqlite三#创建应用程序窗口win=tkinter.Tk()varName=tkinter.StringVar()varName.set('')varPwd=tkinter.StringVar()varPwd.set('')#创建标签labelName=tkinter.Label(text='UserName:',justify=tkinter.RIGHT,width=八零)labelName.place(x=一零,y=五,width=八零,height=二零)#创建文本框,同时设置关联地变量entryName=tkinter.Entry(win,width=八零,textvariable=varName)entryName.place(x=一零零,y=五,width=八零,height=二零)labelPwd=tkinter.Label(win,text='UserPwd:',justify=tkinter.RIGHT,width=八零)labelPwd.place(x=一零,y=三零,width=八零,height=二零)#创建密码文本框entryPwd=tkinter.Entry(win,show='*',width=八零,textvariable=varPwd)entryPwd.place(x=一零零,y=三零,width=八零,height=二零)#连接数据库地通用函数defgetConnection():dbstring="d:/sqlite/test.db"conn=sqlite三.connect(dbstring)returnconn#print(getConnection())测试连接是否成功deflogin():#登录按钮处理函数#获取用户名与密码name=entryName.get()pwd=entryP

温馨提示

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

评论

0/150

提交评论