一、选择题(每题2分,共70分)1.下列哪个语句在Python中是非法的?(B)A、x=y=z=1B、x=(y=z+1)C、x,y=y,xD、x+=y2.关于Python内存管理,下列说法错误的是(B)A、变量不必事先声明B、变量无须先创建和赋值而直接使用C、变量无须指定类型D、可以使用del释放资源3、下面哪个不是Python合法的标识符(B)A、int32B、40XLC、selfD、__name__4、下列哪种说法是错误的(A)A、除字典类型外,所有标准对象均可以用于布尔测试B、空字符串的布尔值是FalseC、空列表对象的布尔值是FalseD、值为0的任何数字对象的布尔值是False5、Python不支持的数据类型有(A)A、charB、intC、floatD、list6、关于Python中的复数,下列说法错误的是(C)A、表示复数的语法是real+imagejB、实部和虚部都是浮点数C、虚部必须后缀j,且必须是小写D、方法conjugate返回复数的共轭复数7、关于字符串下列说法错误的是(B)A、字符应该视为长度为1的字符串B、字符串以\0标志字符串的结束C、既可以用单引号,也可以用双引号创建字符串D、在三引号字符串中可以包含换行回车等特殊字符8、以下不能创建一个字典的语句是(C)A、dict1={}B、dict2={3:5}C、dict3={[1,2,3]:“uestc”}D、dict4={(1,2,3):“uestc”}9、下列Python语句正确的是(D)A、min=xifxyelseyB、max=xy?x:yC、if(xy)printxD、whileTrue:pass10计算机中信息处理和信息储存用(A)A二进制代码B十进制代码C十六进制代码DASCII代码11python源程序执行的方式(B)A编译执行B解析执行C直接执行D边编译边执行12Python语言语句块的标记是(C)A分号B逗号C缩进D/13以下是字符转换成字节的方法是(B)Adecode()Bencode()Cupper()Drstrip()14以下是正确的字符串(BD)A‘abc”ab”B‘abc”ab’C“abc”ab”D“abc\”ab”15“ab”+”c”*2结果是:(C)Aabc2BabcabcCabccDababcc16以下会出现错误的是(B)A‘北京’.encode()B‘北京’.decode()C‘北京’.encode().decode()D以上都不会错误17如下:str1=Runoobexample....wow!!!str2=exam;Print(str1.find(str2,5))打印的结果是(B)A6B7C8D-118下面对count(),index(),find()方法描述错误的是(BC)Acount()方法用于统计字符串里某个字符出现的次数Bfind()方法检测字符串中是否包含子字符串str如果包含子字符串返回开始的索引值,否则会报一个异常Cindex()方法检测字符串中是否包含子字符串str,如果str不在返回-1D以上都错误19有下面的程序段ifk=10andk0:ifk5:ifk8:x=0else:X=1else:ifk2:x=3else:x=4其中k取那组值时x=3(A)A3,4,5B3,4C5,6,7D4,520以下不是python中的关键字(D)AraiseBwithCimportDfinal21调用以下函数返回的值(D)defmyfun():passA0B出错不能运行C空字符串DNone22函数如下:defshowNnumber(numbers):forninnumbers:print(n)下面那些在调用函数时会报错(C)AshowNumer([2,4,5])BshowNnumber(‘abcesf’)CshowNnumber(3.4)DshowNumber((12,4,5))23函数如下defchanageInt(number2):number2=number2+1print(changeInt:number2=,number2)#调用number1=2chanageInt(number1)print(number:,number1)打印结果哪项是正确的(B)AchangeInt:number2=3number:3BchangeInt:number2=3number:2Cnumber:2changeInt:number2=2Dnumber:2changeInt:number2=324函数如下defchanageList(list):list.append(end)print(list,list)#调用strs=['1','2']chanageList()print(strs,strs)下面对strs和list的值输出正确的是(CD)Astrs['1','2']Blist['1','2']Clist['1','2',’end’]Dstrs['1','2',’end’]25定义类如下:classHello():pass下面说明错误的是(CD)A该类实例中包含__dir__()方法B该类实例中包含__hash__()方法C该类实例中只包含__dir__(),不包含__hash__()D该类没有定义任何方法,所以该实例中没有包含任何方法26定义类如下:classhello():defshowInfo(sef):print(self.x)下面描述正确的是(AC)A该类不可以实例化B该类可以实例化C在pycharm工具中会出现语法错误,说self没有定义D该类可以实例化,并且能正常通过对象调用showInfo()27关于python类说法错误的是(B)A类的实例方法必须创建对象后才可以调用B类的实例方法必须创建对象前才可以调用C类的类方法可以用对象和类名来调用D类的静态属性可以用类名和对象来调用28定义类如下classHello():def__init__(self,name)self.name=namedefshowInfo(self)print(self.name)下面代码能正常执行的(C)Ah=Helloh.showInfo()Bh=Hello()h.showInfo(‘张三’)Ch=Hello(‘张三’)h.showInfo()Dh=Hello(‘admin’)showInfo29定义类如下:classA():defa():print(“a”)classB():defb():print(“b”)classC():defc():print(c)classD(A,C):defd():print(“d”)d=D()d.a()d.b()d.d()以下程序能执行的结果是(D)Aa,b,dBa,dCd,aD执行会报错30以下哪项python能正常启动(D)A拼写错误B错误表达式C缩进错误D手动抛出异常31有关异常说法正确的是(B)A程序中抛出异常终止程序B程序中抛出异常不一定终止程序C拼写错误会导致程序终止D缩进错误会导致程序终止32对以下程序描述错误的是(A)try:#语句块1exceptIndexErrorasi:#语句块2A改程序对异常处理了,因此一定不会终止程序B改程序对异常处理了,不一定不会因异常引发终止C语句块1,如果抛出IndexError异常,不会因为异常终止程序D语句块2不一定会执行33程序如下:try:number=int(input(请输入数字:))print(number:,number)print(=======hello======)exceptExceptionase:#报错错误日志print(打印异常详情信息:,e)else:print(没有异常)finally:#关闭资源print(finally)print(end)输入的是1a结果是:(B)Anumber:1打印异常详情信息:invalidliteralforint()withbase10:finallyendB打印异常详情信息:invalidliteralforint()withbase10:finallyendC========hello===========打印异常详情信息:invalidliteralforint()withbase10:finallyEndD以上都正确34导入模块的方式错误的是(D)AimportmoBfrommoimport*CimportmoasmDimportmfrommo35以下关于模块说法错误的是(C)A一个xx.py就是一个模块B任何一个普通的xx.py文件可以作为模块导入C模块文件的扩展名不一定是.pyD运行时会从制定的目录搜索导入的模块,如果没有,会报错异常二解答题(每题2分,共12分)1请描述列表和元组之间的区别,以及分别在他们之间转型?List和tuple区别不同点:1定义的方式list[]tuple()2是否可变list可变tuple()不可变3list中有append(),insert()函数,tuple中没有相同点:都是有序的集合(容器)List转为tuple:temp_list=[1,2,3,4,5]将temp_list进行强制转换:tuple(temp_list)tuple转为list:temp_tuple=(1,2,3)方法类似,也是进行强制转换即可:list(temp_tuple)2定义函数的规则?1函数代码块以def关键词开头,后接函数标识符名称和圆括号()。2任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。3函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。4函数内容以冒号起始,并且缩进。5return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。3__new__和__init__的区别?__new__是一个静态方法,而__init__是一个实例方法.__new__方法会返回一个创建的实例,而__init__什么都不返回.只有在__new__返回一个cls的实例时后面的__init__才能被调用.当创建一个新实例时调用__new__,初始化一个实例时用__init__.4read,readline和readlines之间的区别?read读取整个文件readline读取下一行,使用生成器方法readlines读取整个文件到一个迭代器以供我们遍历5去掉old_list=[1,1,1,3,4]中的重复元素new_list=list(set(old_list))6用两个元素之间有对应关系的list构造一个dictnames=['jianpx','yue']ages=[23,40]m=dict(zip(names,ages))三编程题(每题6分共18分)1利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示defmain():s=int(input('请输入成绩:'))ifs=90:grade='A'elifs=60:grade='B'else:grade='C'printgrade,main()2输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。defmain():s=input('inputastring:')letter=0#统计字母space=0#统计空格digit=0#统计数字other=0#统计其他字符forcins:ifc.isalpha():letter+=1elifc.isspace():space+=1elifc.isdigit():digit+=1else:other+=1print(“字母:”,letter,”空格:”,space,”数字:”,digit,”其他字符:”,other)main()3对10个数进行排序l=[]foriinrange(10):l.append(int(input('Inputanumber:')))#可以直接使用sort函数:l.sort()