Python基础教程-习题(含答案).docx
Python基础教程习题(含答案)第一章一、判断题1、Python是一种跨平台、开源、免费的高级动态编程语言。(对)2、Python3.x完全兼容Python2.x。(错)3、在Windows平台上编写的Python程序无法在Unix平台运行。(错)4、不可以在同一台计算机上安装多个Python版本。(错)5、pip命令也支持扩展名为.whl的文件直接安装Python扩展库。(对)二、填空题1、Python安装扩展库常用的是工具。(pip)2、在IDLE交互模式中浏览上一条语句的快捷键是。(Alt+P)3、Python程序文件扩展名主要有和两种,其中后者常用于GUI程序。(py、pyw)4、Python源代码程序编译后的文件扩展名为。(pyc)5、使用pip工具升级科学计算扩展库Numpy的完整命令是。(pipinstall-upgradeNumpy)6、使用pip工具安装科学计算扩展库Numpy的完整命令是。(pipinstallNumpy)7、使用pip工具查看当前已安装的Python扩展库的完整命令是。(piplist)8、现有一python文件为“Stu.py”,ico文件为“Stu.ico”,两者均在同一目录下,现要将Stu.py打包发布在此目录下,所发布的文件图标采用Stu.ico,需要使用的命令是。(pyinstallerIStu.icoFStu.py)第二章一、判断题1、已知x=3,那么赋值语句x='abcedfg'是无法正常执行的。(错)2、Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型。(错)3、Python采用的是基于值得自动内存管理方式。(对)4、Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。(对)5、在Python中可以使用if作为变量名。(错)6、在Python3.x中可以使用中文作为变量名。(对)7、Python变量名必须以字母或下划线开头,并且区分字母大小写。(对)8、加法运算符可以用来连接字符串并生成新字符串。(对)9、3+4j不是合法的Python表达式。(错)10、0o12f是合法的八进制数字。(错)11、不管输入什么,Python3.x中input()函数的返回值总是字符串。(对)12、在Python中0xad是合法的十六进制数字表示形式。(对)13、Python使用缩进来体现代码之间的逻辑关系。(对)14、Python代码的注释只有一种方式,那就是使用#符号。(错)15、放在一对三引号之间的任何内容将被认为是注释。(错)16、为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。(错)17、Python变量名区分大小写,所以student和Student不是同一个变量。(对)18、在Python3.x中,使用内置函数input()接收用户输入时,不论用户输入的什么格式,一律按字符串进行返回。(对)二、填空题1、布尔类型的值包括和。(True、False)2、Python的浮点数占字节。(8)3、00001100>>2的结果是。(00000011或3)4、若a=20,那么bin(a)的值为。(0b10100)5、a=60;b=13;c=13,a>bandb<c输出的结果是(False),a>borb<c输出的结果是(True),aandb输出的结果是(13),aorb输出的结果是(60)。6、3.14E5表示的是。(314000.0)7、查看变量类型的Python内置函数是。(type()8、查看变量内存地址的Python内置函数是。(id()9、以3为实部4为虚部,Python复数的表达形式为或。(3+4j、3+4J)10、Python运算符中用来计算整商的是。(/)11、语句x=3=3,5执行结束后,变量x的值为。(True,5)12、已知x=3,并且id(x)的返回值为496103280,那么执行语句x+=6之后,表达式id(x)=496103280的值为。(False)13、已知x=3,那么执行语句x*=6之后,x的值为。(18)14、已知x=3和y=5,执行语句x,y=y,x后x的值是。(5)15、表达式0or5的值为。(5)16、表达式3and5的值为。(5)三、程序练习1用户通过键盘输入两个直角边的长度a和b,需要计算斜边c的长度,请用代码实现此功能。请输入直角a边的值:请输入直角b边的值:c=(a*2+b*2)*(1/2)#就本题而言,使用数学模块的sqrt()求平方根是比较好的写法斜边长度是2编写一个程序,判定用户输入的两个数a和b,如果用户输入的第一个数大,则两数互换,如果相等或第一个数小,那原样输出。请输入数a:请输入数b:ifa>b:a,b=b,a用户输入的数按小到大排序结果是:elifa=b:用户输入的两个数相同,输入的数字是:else:用户输入的数按小到大排序结果是:#本题不考虑用户需要的不是数字情况,在读者学完异常处理后,建议回头改写此题,实现异常处理。第三章一、判断题1、在Python语言中,循环语句while的判断条件为“1”是永真条件。(对)2、if.else语句的嵌套完全可以代替if.elif语句。(对)3、break语句用在循环语句中,可以跳出二重循环结构。(错)4、通过break语句跳出循环结构后,循环控制变量的值一定大于其设定的终点值。(错)5、在循环语句中,如果没有子句else,也能同样完成程序的功能。(对)6、在条件表达式中不允许使用赋值运算符“=”,会提示语法错误。(对)7、Pass语句的出现是为了保持程序结构的完整性。(对)8、Python中没有switch-case语句。(对)9、每一个if条件表达式后都要使用冒号。(对)10、While循环不可以和for循环嵌套使用。(错)11、如果仅仅是用于控制循环次数,那么使用foriinrange(20)和foriinrange(20,40)的作用是等价的。(对)12、在循环中continue语句的作用是跳出当前循环。(错)13、在编写多层循环时,为了提高运行效率,应尽量减少内循环中不必要的计算。(对)14、带有else子句的循环如果因为执行了break语句而退出的话,则会执行else子句中的代码。(错)15、对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。(对)二、填空题1、在循环体中,可以使用语句跳出循环体。(break)2、语句是if语句和else语句的组合。(elif)3、在循环体中,可以使用语句跳过本次循环后面的代码,直接进入下一次循环。(continue)4、Python中的表示空语句。(pass)5、调试运行时,遇到死循环可以使用退出循环。(ctrl+c)6、Python3.x语句foriinrange(3):print(i,end=',')的输出结果为。(0,1,2,)7、对于带有else子句的for循环和while循环,当循环因循环条件不成立而自然结束时(会?不会?)执行else中的代码。(会)8、在循环语句中,语句的作用是提前结束本层循环。(break)9、在循环语句中,语句的作用是提前进入下一次循环。(continue)10、表达式5if5>6else(6if3>2else5)的值为。(6)三、程序练习1输入两个数x和y,如果x或y小于等于0,提示请输入正整数,求这两个数的最大公约数和最小公倍数。【分析】设x为被除数,y为除数,a为余数,采用欧几里得辗转相除算法来求最大公约数。x除以y得到余数a,如果a不等于0,把y赋值给x,把a赋值给y,继续x除以y得到余数a,直接a等于0为止,这时的y就是最大公约数。最小公倍数的计算方法是两数的乘积除以两数最大公约数的结果。【操作实践】请输入一个数:请输入一个数:t=x*yifx<y:x,y=y,xwhilex%y!=0:a=x%yx=yy=a最大公约数:最小公倍数:2输入一个数,判断是否为质数。【分析】质数是除了1和它本身以外任何数都不能整除他的数,那求质数时,可以用这个数依次除比所输入的数的平方根小的数,如果不能除尽,那就是质数,否则不是质数。【操作实践】请输入一个数:i=2whilei<int(x*(1/2):ifx%i=0:不是质数breaki+=1else:是质数3输入一个年份year,判断是否为闰年。【分析】闰年能被4整除同时不能被100整除的数,但如果能被400整除,也是闰年。【操作实践】输入年份:#可用int()函数if(year%4=0andyear%100!=0)or(year%400=0):是闰年else:不是闰年第四章一、判断题1、Python支持使用字典的“键”作为下标来访问字典中的值。(对)2、列表可以作为字典的“键”。(错)3、元组可以作为字典的“键”。(对)4、Python字典中的“键”不允许重复。(对)5、Python字典中的“值”不允许重复。(错)6、Python列表中所有元素必须为相同类型的数据。(错)7、Python列表、元组、字符串都属于有序序列。(对)8、已知A和B是两个集合,并且表达式A<B的值为False,那么表达式A>B的值一定为True。(错)9、列表对象的append()方法属于原地操作,用于在列表尾部追加一个元素。(对)10、使用Python列表的方法insert()为列表插入元素时会改变列表中插入位置之后元素的索引。(对)11、使用del命令或者列表对象的remove()方法删除列表中元素时会影响列表中部分元素的索引。(对)12、已知列表x=1,2,3,那么执行语句x=3之后,变量x的地址不变。(错)13、使用列表对象的remove()方法可以删除列表中首次出现的指定元素,如果列中不存在要删除的指定元素则抛出异常。(对)14、元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。(对)15、当以指定“键”为下标给字典对象赋值时,若该“键”存在则表示修改该“键”对应的“值”,若不存在则表示为字典对象添加一个新的“键-值对”。(对)16、假设x是含有5个元素的列表,那么切片操作x10:是无法执行的,会抛出异常。(错)17、只能对列表进行切片操作,不能对元组和字符串进行切片操作。(错)18、只能通过切片访问列表中的元素,不能使用切片修改列表中的元素。(错)19、表达式1,3,2>1,2,3的值为True。(错)20、列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。(对)二、填空题1、表达式1,2,3*3的执行结果为。(1,2,3,1,2,3,1,2,3)2、表达式3in1,2,3,4的值为。(False)3、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为。(None)4、假设列表对象aList的值为3,4,5,6,7,9,11,13,15,17,那么切片aList3:7得到的值是。(6,7,9,11)5、使用列表推导式生成包含10个数字5的列表,语句可以写为。(5foriinrange(10)6、假设有列表a='name','age','sex'和b='小明',18,'男',请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为。(c=dict(zip(a,b)7、任意长度的Python列表、元组和字符串中最后一个元素的下标为。(-1)8、Python语句list(range(1,10,3)执行结果为。(1,4,7)9、表达式list(range(5)的值为。(0,1,2,3,4)10、已知a=1,2,3和b=1,2,4,那么id(a1)=id(b1的)执行结果为。(True)11、切片操作list(range(6):2执行结果为。(0,2,4)12、使用切片操作在列表对象x的开始处增加一个元素3的代码为。(x0:0=3)13、字典中多个元素之间使用分隔开,每个元素的“键”与“值”之间使用分隔开。(逗号、冒号)14、字典对象的方法可以获取指定“键”对应的“值”,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回None。(get()15、字典对象的方法返回字典中的“键-值对”列表。(items()16、字典对象的方法返回字典的“键”列表。(keys()17、字典对象的方法返回字典的“值”列表。(values()18、已知x=1:2,那么执行语句x2=3之后,x的值为。(1:2,2:3)19、表达式set(1,1,2,3)的值为。(1,2,3)20、使用列表推导式得到100以内所有能被13整除的数的代码可以写作。(iforiinrange(100)ifi%13=0)三、程序练习1数据简单加密问题。从前有一个称为”rot13”的简单加密方法,原理是:对于一个报文中出现的任何字母用其后(字母顺序)的第9个字母代替,循环实现。就是字母表的前9个字母用对应的后9个字母表示。举例说明:字母'A'用'J'代替,'B'用'K'代替,.,'M'用'L',.,'Z'用'I';小写字母同样类似。问题是:用字符串给出一串报文,要求输出这串报文的密文。首先建立一个字典,包含大小写52个字母作为键的字典,键对应的值也是字母,就是要代替的字母。第二步是根据字符串中的字母,在字典中查找键并返回对应的值。值记录在一个列表中。第三步,根据列表将列表中的元素整合字符串,这个串就是密文。【参考代码】请输入一段英文:#原文l1=list(m1)l2=list(m2)dict1=dict(zip(m1,m2)字典1情况:#字典1情况list1=foriintxt:ifiindict1:data=dict1.get(i)else:data=ilist1.append(data)列表1情况:#列表1情况list2=''foriinlist1:list20=list20+i列表2情况:原文是:加密结果:#列表2情况#原文#最终加密结果2计算身份证的校验码。计算身份证的校验码,根据身份证的前17位,输入数字,并将字符转换为数字,根据给定的权值表及相应的身份证检验码,进行校验码的计算。【分析】身份证的校验码计算过程如下:第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。第二步:将第一步身份证号码117位相乘的结果求和,全部加起来。第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。【参考代码】str=input('输入您的身份证前17位:')list1=list(str)foriinrange(17):list1i=eval(list1i)#将字符转换为数字列表查看转换的数据列表:wt=7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2#定义权值表sum=0foriinrange(17):sum=sum+list1i*wti身份证号码117位相乘的结果和是:s=sum%11和除以11的余数为:#在下面的字典中,s的值作为键,对应的值是身份证的校验码dict1=0:'1',1:'0',2:'X',3:'9',4:'8',5:'7',6:'6',7:'5',8:'4',9:'3',10:'2'ifsindict1:余数对应的身份证校验码为:3设计一个字典dict1,name键为用户名,pwd键为密码。设计一个注册登录检查程序,将用户名和密码注册到字典中,然后进行登录,用户名和密码都正确时输出“欢迎(用户名)登录”信息,用户名或密码不正确则提示“用户或密码错误,请重新登录!”。list1=dict1=请注册用户名:请添加密码:list1.append(dict1)print(list1)保存的字典数据是:请登录:请输入登录的用户名请输入登录的密码:f=Falseforiinlist1:f=True欢迎%s登录iff=False:用户或密码错误,请重新登录!第五章一、判断题1、函数是代码复用的一种方式。(对)2、定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。(对)3、一个函数如果带有默认值参数,那么必须所有参数都设置默认值。(错)4、定义Python函数时,如果函数中没有return语句,则默认返回空值None。(对)5、如果在函数中有语句return3,那么该函数一定会返回整数3。(错)6、在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。(对)7、不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。(对)8、全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。(对)9、在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量。(对)10、在函数内部没有办法定义全局变量。(错)11、在函数内部直接修改形参的值并不影响外部实参的值。(对)12、调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。(错)13、在同一个作用域内,局部变量会隐藏同名的全局变量。(对)14、形参可以看作是函数内部的局部变量,函数运行结束之后形参就不可访问了。(对)15、在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。(对)16、定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。(对)17、无法使用lambda表达式定义有名字的函数。(错)18、调用函数时传递的实参个数必须与函数形参个数相等才行。(错)19、lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式。(对)20、g=lambdax:3不是一个合法的赋值表达式。(错)二、填空题1、Python中定义函数的关键字是。(def)2、在函数内部可以通过关键字来定义全局变量。(global)3、如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为。(None)4、表达式sum(range(1,10,2)的值为。(25)5、表达式list(filter(lambdax:x%2=0,range(10)的值为。(0,2,4,6,8)6、已知g=lambdax,y=3,z=5:x*y*z,则语句print(g(1)的输出结果为。(15)7、表达式sorted('abc','acd','ade',key=lambdax:(x0,x2)的值为。('abc','acd','ade')8、已知函数定义defdemo(x,y,op):returneval(str(x)+op+str(y),那么表达式demo(3,5,'+')的值为。(8)9、已知函数定义defdemo(x,y,op):returneval(str(x)+op+str(y),那么表达式demo(3,5,'*')的值为。(15)10、已知函数定义deffunc(*p):returnsum(p),那么表达式func(1,2,3)的值为。(6)11、已知函数定义deffunc(*p):returnsum(p),那么表达式func(1,2,3,4)的值为。(10)12、已知函数定义deffunc(*p):returnsum(p.values(),那么表达式func(x=1,y=2,z=3)的值为。(6)13、已知函数定义deffunc(*p):return''.join(sorted(p),那么表达式func(x=1,y=2,z=3)的值为。('xyz')14、已知f=lambdax:5,那么表达式f(3)的值为。(5)15、已知g=lambdax,y=3,z=5:x+y+z,那么表达式g(2)的值为。(10)三、程序练习1编写函数,判断用户输入的两个数的最小公倍数。最小公倍数的分析,见第三章课后习题1deffunc(m,n):t=m*nifm<n:m,n=n,mwhilem%n!=0:a=m%nm=nn=areturnt/n请输入一个数:请输入一个数:和%d的最小公倍数是:2请用函数实现一个判断用户输入的年份是否是闰年的程序defLyear(m):if(m%4=0andm%100!=0)or(m%400=0):是闰年else:不是闰年输入年份:Lyear(x)3定义一个函数,计算用户输入的数n的阶乘n!=1*2*3*ndeffunc(n):ifn=1:result=1else:result=func(n-1)*nreturnresult请输入一个正整数:第六章一、判断题1、模块就是一个普通的Python程序文件。(对)2、模块文件的扩展名可以是txt。(错)3、Python运行时只会从指定的目录搜索导入的模块。(对)4、任何一个普通的python文件都可以作为模块导入。(对)5、模块是一个可共享的程序。(对)6、Python,包可以是一个任何目录。(错)7、Python中,包可以嵌套。(对)8、包目录中的_init_.py文件内容可以为空。(对)9、json字符串可以转化为python类型,反过来也同样可以。(对)10、包是比模块更大的组织单位,一个包内可以包含多个模块。创建包的方法是:在Python的工作目录下的LIB子目录中建立一个目录,这个建立的目录名就是包的名字。将模块置入包(目录)内。(对)二、填空题1、在使用数学函数时,需要先导入模块,可以使用的命令是或。(importmath)(frommathimport*)2、在程序中,使用时间函数的代码是t.time(),请写出模块导入的代码。(importtimeast)3、json字符串可以转化为python类型,其方法是。(json.loads()4、python类型可以转化为json字符串,其方法是。(json.dumps()5、获取当前时间,获取的时间使用时间元组方式展示,其函数是。(time.localtime()6、获取本地的日期和时间的代码是。(time.time()7、用户可以自行创建模块,方法是将自己的程序文件复制到Python的工作目录下的LIB子目录,用命令导入即可。(import)8、使用importmathasmymath时,使用模块math中的求平方根的sqrt()方法是。(mymath.sqrt()9、时间间隔是以为单位的浮点小数。(秒)10、作为包中的目录,要包含特殊的文件。(_init_.py)第七章一、判断题1、面向对象程序语言的三个基本特征是:封装、继承与多态。(对)2、构造器方法_init_()是Python语言的构造函数。(对)3、在Python语言的面向对象程序中,属性有两种,类属性和实例属性,它们分别通过类和实例访问。(对)4、使用实例或类名访问类的数据属性时,结果不一样。(对)5、解构器方法_del_()是Python语言的析构函数。(对)6、在Python语言中,运算符是可以重载的。(对)7、子类只能从一个基类继承。(错)8、在Python语言中,函数重载只考虑参数个数不同的情况。(对)9、在Python语言中,子类中的同名方法将自动覆盖父类的同名方法。(对)10、Python语言类中定义的函数会有一个名为self的参数,调用函数时,不传实参给self,所以,调用函数的实参个数比函数的形参个数少1。(对)二、填空题1、Python使用关键字来定义类。(class)2、类由、3个部分构成:(类名、类的属性、类的方法)3、现有一个类Student,现要为该类定义对象stu,代码是。(stu=Student()4、面向对象编程的特性是、。(封装、继承、多态)5、在Python中,不论类的名字是什么,构造方法的名字都是。(_init_)6、继承和是实现多态的技术基础。(方法重写)7、面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法是通过使用函数或。(继承)8、类方法必须包含参数,且为第一个参数。(self)9、封装是在变量或方法名前加,封装后,私有的变量或方法只能在定义它们的类内部调用,在类外和子类中不能直接调用。(_或双下划线)10、Python运算符重载就是通过重写相关Python内置方法实现的。这些方法都是以开头和结尾的。(_或双下划线)三、程序练习现成立学生竞赛小组,名额三人,让学生进行报名。可以单个报名,也可以几人同时报名,同时报名人数不得超过空余名额数。报名满了后不再接受报名。要求:1、显示学生竞赛小组的空余名额、成员名单。2、学生报名人数及名单,如:第一次,“张三”一人报名;第二次“李力、王明”二人报名;第三次,“刘红”一人报名。如果人数小于等于空余人数,则添加报名人数和名单到竞赛小组中;如果超过空余人数,则提示错误。请将用面向对象的方法设计程序并编码实现。#定义一个学生竞赛小组类classclasses:def_init_(self,Num):self.Num=Num#学生小组剩余名额self.containsItem=def_str_(self):当前学习小组空余人数为iflen(self.containsItem)>0:包括的学生有fortempinself.containsItem:returnmsg#包含学生defstuNum(self,item):#如果学生小组空余名额大于学生人数needNum=item.getUsedNum()ifself.Num>=needNum:self.containsItem.append(item)self.Num-=needNum参加成功else:错误:学生竞赛小组空余名额:%d,但是要参加的学生人数为#定义报名学生类classStu:def_init_(self,Num,name='张三'):self.name=nameself.Num=Numdef_str_(self):msg='学生报名人数:'+str(self.Num)returnmsg#获取学生的人数defgetUsedNum(self):returnself.Num#获取学生的人数defgetName(self):returnself.name# 创建一个新小组对象newclasses=classes(3)#学习小组3个名额print(newclasses)# 创建学生报名数对象newStu=Stu(1)print(newStu)# 报名到小组里newclasses.stuNum(newStu)print(newclasses)# 创建第二组学生对象newStu2=Stu(2,'李力,王明')print(newStu2)# 把报名到小组里newclasses.stuNum(newStu2)print(newclasses)# 创建第三组学生对象newStu2=Stu(1,'刘红')print(newStu2)#把报名到小组里newclasses.stuNum(newStu2)print(newclasses)第八章一、判断题1、顺序读写文件与随机读写文件是两种读写文件的方式,它们的区别依靠设置读写指针位置的方法seek()实现,与open()函数中的打开方式无关。(错)2、open()函数用于建立文件对象,建立文件与内存缓冲区的联系。可以用于文本文件和二进制文件,打开方式是指只读、读写、添加、修改等。(对)3、如果open()函数的打开方式是'r+b',说明是打开一个可随机读写的二进制文件。(对)4、open()函数的打开方式'r+b'中的加号(+)没有实际意义。(错)5、文件对象的方法close()用于关闭文件,在实际操作中,不这样做,程序运行也正常,这说明有无文件关闭操作都可行。(错)6、read()函数可以读出文件中的数据,读出的字节数量由用户指定。指定多少合适呢?最合适的选择是:尽可能一次性读完文件所有内容(有必要时),不能一次性读完时,每读出的数量以内存缓冲区大小为准。(对)7、Python关于文件的读写缺少一个指示文件尾的方法eof(),要判断是否读到文件尾部用读出内容为空表示。(对)二、填空题1、Python内置函数用来打开或创建文件并返回文件对象。(open()2、使用上下文管理关键字可以自动管理文件对象,不论何种原因结束该关键字中的语句块,都能保证文件被正确关闭。(with)3、Python标准库os中用来列出指定文件夹中的文件和子文件夹列表的方式是。(listdir()4、Python标准库os.path中用来判断指定文件是否存在的方法是。(exists()5、Python标准库os.path中用来判断指定路径是否为文件的方法是(isfile()6、Python标准库os.path中用来判断指定路径是否为文件夹的方法是(isdir()7、Python标准库os.path中用来分割指定路径中的文件扩展名的方法是。(splitext()8、Python扩展库支持Excel2007或更高版本文件的读写操作。(openpyxl)9、已知当前文件夹中有纯英文文本文件readme.txt,请填空完成功能把readme.txt文件中的所有内容复制到dst.txt中,withopen('readme.txt')assrc,open('dst.txt',)asdst:dst.write(src.read()。('w')10、csv模块中,使用csv.reader函数,读取csv文件,转存的结果类型是。(列表)三、程序练习备份8.6节中的stu_info.txt数据文档,要求用户输入备份文件名进行备份操作。请输入要拷贝的文件名字old_File=open(oldFileName,'r')# 如果打开文件ifold_File:# 提取文件的后缀fileFlagNum=old_Name.rfind('.')iffileFlagNum>0:fileFlag=old_NamefileFlagNum:# 备份文件的文件名new_Name=old_Name:fileFlagNum+'备份'+fileFlag# 创建新文件new_File=open(new_Name,'w')# 把旧文件中的数据,一行一行的进行复制到新文件中forlineContentinold_File.readlines():new_File.write(lineContent)#关闭文件old_File.close()new_File.close()第九章一、判断题1、所有程序错误都可以用异常控制、解决。(错)2、try.except语句与try.finally语句的区别在于:前者在有异常时执行except下的语句,而后者无论有无异常,都执行finally子句下面的语句。(对)3、try.except.else语句、try.except语句的结构类似于if.else语句、if.语句的结构。(对)4、带有多个except子句的try语句或try.else语句中,每个except子句可以处理多种异常。(错)5、带有多个except子句的try语句或try.else语句中,每个except子句下面语句块的最后一个语句必须是break语句。(错)6、捕获所有异常Exception没有必要。(错)7、raise语句用于程序员编写的应用程序中,由应用程序自己引发异常,这是没有必要的语句。(错)8、如果程序语