2020-09-29 17:07发布
主要包括python要处理的各种对象,数字,字符串,列表,元组,字典,集合,文件,函数,方法,类,模块等。还有对这些对象如何操作,操作的方法有包括 操作符、操作函数、对象自带的内建方法及属性等
文章目录
前言第一章一、填空题二、判断题三、选择题四、简答题
第二章一、填空题二、判断题三、选择题四、简答题
第三章一、填空题二、判断题三、选择题四、简答题
第四章一、单选题二、判断题三、填空题四、程序分析题
第五章一、选择题二、判断题三、填空题四、简答题五、程序分析题
第六章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第七章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第八章一、单选题二、判断题三、填空题四、简答题
第九章一、单选题二、判断题三、填空题四、简答题
第十章一、单选题二、判断题三、填空题四、简答题
第十一章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第十二章一、选择题二、判断题三、填空题四、简答题
END
前言
本文整理了填空、选择、判断等一些课后习题答案,具体的编程题可以见:Python快速编程入门课后程序题答案。
第一章
一、填空题
Python是一种面向对象的高级语言。Python可以在多种平台运行,这体现了Python语言的可移植特性。Python源代码被解释器转换后的格式为字节码。Python3.x默认使用的编码是UTF-8。
二、判断题
Python是开源的,它可以被一直到许多平台上。(√)Python的优点之一是具有伪代码的本质。(√)Python可以开发Web程序,也可以管理操作系统。(√)Mac系统自带Python开发环境。(√)Python自带的shell,其性能由于IPython。(×)我们编写的Python代码在运行过程中,会被编译成二进制代码。(×)Python程序被解释器转换后的文件格式后缀名为.pyc。(√)Python3.x版本的代码完全兼容Python2.x。(×)PyCharm是开发Python的集成开发环境。(√)代码print(3,4)是Python2.x的输出格式。(×)
三、选择题
下列选项中,不属于Python语言特点的是(C)。A.简单易学B.开源C.面对过程D.可移植性下列领域中,使用Python可以实现的是(ABCD)。(多选)A.Web开发B.操作系统管理C.科学计算D.游戏下列关于Python2.x和Python3.x的说法,正确的是(B)。A.Python3.x使用print语句输出数据B.Python3.x默认使用的编码是UTF-8C.Python2.x和Python3.x使用//进行除法运算的结果不一致D.Python3.x版本的异常可以直接被抛出下列关于Python的说法中,错误的是(C)。A.Python是从ABC发展起来的B.Python是一门高级的计算机语言C.Python是一门只面向对象的语言D.Python是一种代表简单主义思想的语言下列关于IPython的说法,错误的是(D)。A.IPython集成了交互式Python的很多有点B.IPython的性能远远优于标准的Python的shellC.IPython支持变量自动补全,自动收缩D.与标准的Python相比,IPython缺少内置的功能和函数
四、简答题
简述Python的特点。•简单易学•开源•高级语言•可移植性•解释性•面向对象•可扩展性•丰富的库•规范的代码简述Python的应用领域(至少3个)。•web应用开发•操作系统管理、服务器运维的自动化脚本•科学计算•桌面软件•服务器软件(网络软件)•游戏•构思实现,产品早期原型和迭代简述Python2.x和Python3.x的区别。(1)、在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数(2)、python2有ASCIIStr()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。(3)、在python2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python3.x中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。(4)、相比python2.x版本,python3.x版本在异常方面有很多改变: •在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。 •在python2.x版本中,捕获异常的语法是exceptexc,var。在python3.x版本中,引入了as关键字,捕获异常的语法变更为exceptexcasvar。 •在python2.x版本中,处理异常使用raiseException(args)。在python3.x版本中,处理异常使用raiseException,args。 •python3.x取消了异常类的序列行为和.message属性。(5)、在Python3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。(6)、Python2.x中不等于有两种写法!=和<>;但是,Python3.x中去掉了<>,只有!=一种写法(7)、python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。简述Python程序的执行原理。Python程序的执行原理如图所示:Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行。简述IPython的特点。•IPython具有卓越的Pythonshell,其性能远远优于标准Python的shell。•IPython支持变量自动补全,自动缩进,支持bashshell命令,内置了许多很有用的功能和函数。•IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交互式Pythonshell包含在各种Python应用中,甚至可以当作系统级shell来使用。
第二章
在Python中,int表示的数据类型是整型。布尔类型的值包括True和False。Python的浮点数占8个字节。如果要在计算机中表示浮点数
1.2
×
1
0
5
1.2\times10^5
1.2×105,则表示方法为1.2e5。00001000>>2的结果是00000010。若a=20,那么bin(a)的值为0b10100。如果想测试变量的类型,可以使用type()来实现。若a=1,b=2,那么(aorb)的值为1。若a=10,b=20,那么(aandb)结果为20。4.34E5表示的是4.34×10^5。
Python使用符号#表示单行注释。(√)标识符可以以数字开头。(×)type()方法可以查看变量的数据类型。(√)Python中的代码块使用缩进来表示。(√)Python中的多行语句可以使用反斜杠来实现。(×)Python中标识符不区分大小写。(×)Python中的标识符不能使用关键字。(√)使用help()命令可以进入帮助系统。(√)Python中的成员运算符用于判断制定序列中是否包含某个值。(√)比较运算符用于比较两个数,其返回的结果智能是True或False。(√)
下列选项中,(D)的布尔值不是Flase。A.NoneB.0C.()D.1假设a=9,b=2,那么下列运算中,错误的是(D)。A.a+b的值是11B.a//b的值是4C.a%b的值是1D.a**b的值是18下列标识符中,合法的是(AD)。A.helloWorldB.2ndObjC.hello#worldD._helloworld下列符号中,表示Python中单行注释的是(A)。A.#B.//C.D."“"下列选项中,符合Python命名规范的标识符是(C)。A.user-PasswdB.ifC._nameD.setup.exe下列选项中,Python不支持的数据类型有(B)。A.intB.charC.floatD.dicitionary下列表达式中,返回True的是(B)。A.a=2b=2a=bB.3>2>1C.TrueandFalseD.2!=2下列语句中,哪个在Python中是非法的?(B)。A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD.x+=y下列关于Python中的复数,说法错误的是(C)。A.表示复数的语法是real+imagejB.实部和虚部都是浮点数C.虚部必须后缀j,且必须是小写D.一个复数必须有表示虚部的实数和j下列选项中,幂运算的符号为(D)。A.*B.++C.%D.**
简述Python中标识符的命名规则。•标识符由字母、下划线和数字组成,且数字不能开头。•python中的标识符是区分大小写的。•python中的标识符不能使用关键字。简述Python中的数字类型。int(整型)、long(长整型)、float(浮点数)、complex(复数)
第三章
在循环体中使用break语句可以跳出循环体。elif语句是else语句和if语句的组合。在循环体中可以使用continue语句跳过本次循环后面的代码,重新开始下一次循环。如果希望循环是无限的,我们可以通过设置条件表达式永远为True来实现无限循环。Python中的pass表示的是空语句。
elif可以单独使用。(×)pass语句的出现是为了保持进程结构的完整性。(√)在Python中没有switch-case语句。(√)每个if条件后面都要使用冒号。(√)循环语句可以嵌套使用。(√)
下列选项中,会输出1,2,3三个数字的是(BC)。
A.
foriinrange(3):
print(i)
B.
print(i+1)
C.
a_list=[0,1,2]
foriina_list:
D.
i=1
whilei<3>
i=i+1
阅读下面的代码:
sum=0
foriinrange(100):
if(i):
continue
sum=sum+i
print(sum)
上述程序的执行结果是(C)。 A.5050B.4950C.450D.45
已知x=10,y=20,z=30:以下语句执行后x,y,z的值是(C)。
ifxz=xx=yy=z A.10,20,30 B.10,20,20 C.20,10,10 D.20,10,30有一个函数关系如下所示:xyx<0x x=0xx>0x+1下面程序段中,能正确表示上面关系的是(C)。A.y=x+1ifx>=0ifx==0:y=xelse:y=x-1;B.y=x-1ifx!=0:ifx>0:y=x+1else:y=xC.ifx<=0:ifx<0>y=x-1else:y=xelse:y=x+1D.y=xifx<=0:ifx<0>y=x-1else:y=x+1下列Python语句正确的是(D)。A.min=xifxy?x:yC.if(x>y)printxD.whileTrue:pass四、简答题简述Python中pass语句的作用。Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。简述break和continue的区别。break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。第四章一、单选题当需要在字符串中使用特殊字符的时候,Python使用(A)作为转义字符。A.\B./C.#D.%下列数据中不属于字符串的是(D)。A.‘ab’B.’’‘perfect’’’C.“52wo”D.abc使用(B)符号对浮点类型的数据进行格式化。A.?.?.?.%s字符串’Hi,Andy’中,字符’A’对应的下标位置为(C)。A.1B.2C.3D.4下列方法中,能够返回某个子串在字符串中出现次数的是(C)。A.lengthB.indexC.countD.find下列方法中,能够让所有单词的首字母变成大写的方法是(B)。A.capitalizeB.titleC.upperD.ljust字符串的strip方法的作用是(A)。A.删除字符串头尾指定的字符B.删除字符串末尾的指定字符C.删除字符串头部的指定字符D.通过指定分隔符对字符串切片二、判断题无论使用单引号或者双引号包含字符,使用print输出的结果都一样。(√)无论input接收任何的数据,都会以字符串的方式进行保存。(√)Python中只有一个字母的字符串属于字符类型。(×)使用下标可以访问字符串中的每个字符。(√)Python中字符串的下表是从1开始的。(×)切片选区的区间范围是从起始位开始的,到结束位结束。(×)如果index方法没有在字符串中找到子串,则会返回-1。(×)三、填空题字符串是一种表示文本数据的类型。像双引号这样的特殊符号,需要对它进行转义输出。Python3提供了input函数从标准输入(如键盘)读入一行文本。切片指的是对操作的对象截取其中的一部分。切片选取的区间是左闭右开型的,不包含结束位的值。四、程序分析题阅读下面的程序,分析代码是否可以编译通过。如果编译通过,请列出运行的结果,否则说明编译失败的原因。代码一:num_one=input("请输入一个整数:")num_two=input("请输入一个整数:")ifnum_one%num_two==0:print("验证码正确") 答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。代码二:name='SteveJobs'print(name[6]) 结果为:J代码三:string_example='helloworlditheima'index=string_example.index("itheima",0,10)print(index) 答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。代码四:string_example="helloworld"print(string_example.strip()) 结果为:HelloWorld(默认删除两头的空格)代码五:string_example="Hello"+'Python'print(string_example) 结果为:HelloPython第五章一、选择题关于列表的说法,描述有错误的是(D)。A.list是一个有序集合,没有固定大小B.list可以存放任意类型的元素C.使用list时,其下标可以是负数D.list是不可变的数据类型以下程序的输出结果是(B)。(提示:ord(“a”)==97)list_demo=[1,2,3,4,5,'a','b']print(list_demo[1],list_demo[5]) A.15 B.2a C.197 D.297执行下面的操作后,list_two的值为(C)。list_one=[4,5,6]list_two=list_onelist_one[2]=3 A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确阅读下面的程序:list_demo=[1,2,1,3]nums=set(list_demo)foriinnums:print(i,end="") 程序执行的结果为(D)。 A.1213 B.213 C.321 D.123下列选项中,正确定义了一个字典的是(D)。A.a=[‘a’,1,‘b’,2,‘c’,3]B.b=(‘a’,1,‘b’,2,‘c’,3)C.c={‘a’,1,‘b’,2,‘c’,3}D.d={‘a’:1,‘b’:2,‘c’:3}下列选项中,不能使用下标运算的是(C)。A.列表B.元组C.集合D.字符串下列程序执行后输出的结果为(A)。x='abc'y=xy=100print(x) A.abc B.100 C.97,98,99 D.以上三项均是错误的下列删除列表中最后一个元素的函数是(B)。A.delB.popC.removeC.cut下列函数中,用于返回元祖中元素最小值的是(C)。A.lenB.maxC.minD.tuple二、判断题列表的索引是从0开始的。(√)通过insert方法可以在制定位置插入元素。(√)使用下标能修改列表的元素。(√)列表的嵌套指的是一个列表的元素是另一个列表。(√)通过下标索引可以修改和访问元祖的元素。(×)字典中的值只能够是字符串类型。(×)在字典中,可以使用count方法计算键值对的个数。(×)三、填空题Python序列类型包括字符串、列表和元组三种,字典是Python中唯一的映射类型。Python中的可变数据类型有字典和列表。在列表中查找元素时可以使用notin和in运算符。如果要从小到大的排列列表的元素,可以使用sort方法实现。元组使用圆括号存放元素,列表使用的是方括号。四、简答题请简述元组、列表和字典的区别。(1)、外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据(2)、存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。(3)、访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。(4)、是否可变类型:列表是可变类型,元组是不可变类型,字典是可变类型。五、程序分析题阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。代码一:tup=('a','b','c')tup[3]='d'print(tup) 答:程序运行错误,元组不能使用下标增加元素。代码二:dict_demo={'a':1,'b':2,'c':3}print(dict_demo['a']) 结果为:1代码三:list_demo=[10,23,66,26,35,1,76,88,58]list_demo.reverse()print(list_demo[3])list_demo.sort()print(list_demo[3]) 结果为: 1 26第六章一、单选题阅读下面的程序:deffunc():print(x)x=100func() 执行上述语句后,输出的结果为(C)。 A.0B.100C.程序出现异常D.程序编译失败下面关于函数的说法,错误的是(C)。A.函数可以减少代码的重复,使得程序更加模块化B.在不同的函数中可以使用相同名字的变量C.调用函数时,传入参数的顺序和函数定义时的顺序必须相同D.函数体中如果没有return语句,也会返回一个None值下列有关函数的说法中,正确的是(C)。A.函数的定义必须在程序的开头B.函数定义后,其中的程序就可以自动执行C.函数定义后需要调用才会执行D.函数体与关键字def必须左对齐下列函数调用使用的参数传递方式是(A)。result=sum(num1,num2,num3) A.位置绑定B.关键字绑定C.变量类型绑定D.变量名称绑定使用(C)关键字创建自定义函数。A.functionB.funcC.defD.procedure使用(D)关键字声明匿名函数。A.functionB.funcC.defD.lambda二、判断题函数的名称可以随意命名。(×)不带return的函数代表返回None。(√)默认情况下,参数值和参数名是跟函数声明定义的顺序匹配的。(√)函数定义完成后,系统会自动执行其内部的功能。(×)函数体以冒号起始,并且是缩进格式的。(√)带有默认值的参数一定位于参数列表的末尾。(√)局部变量的作用域是整个程序,任何时候使用都有效。(×)匿名函数就是没有名字的函数。(√)三、填空题函数可以有多个参数,参数之间使用逗号分隔。使用return语句可以返回函数值并退出函数。通过return结束函数,从而选择性地返回一个值给调用方。函数能处理比声明时更多的参数,它们是不定长参数。在函数里面调用另外一个函数,这就是函数嵌套调用。在函数的内部定义的变量称作局部变量。全局变量定义在函数外,可以在整个程序范围内访问。如果想在函数中修改全部变量,需要在变量的前面加上global关键字。四、简答题请简述局部变量和全局变量的区别。局部变量:(1)、函数内部定义的变量;(2)、作用域是函数的内部。全局变量:(1)、函数外部定义的变量;(2)、作用域是整个程序。请简要说明函数定义的规则。(1)、以def关键字开头,后面接函数标识符名称和圆括号;(2)、给函数起名字的时候,规则跟变量的名字是一样的;(3)、任何传入参数和自变量必须放在圆括号中间;(4)、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明;(5)、函数内容以冒号起始,并且缩进;(6)、return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。五、程序分析题阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。代码一:deffunc():x=200x=100func()print(x) 结果为:100代码二:deffunc():globalxx=200x=100func()print(x) 结果为:200代码三:deffunc():x=200deffunc2():print(x)func2()x=100func()print(x) 结果为: 200 100第七章一、单选题关于装饰器,下列说法错误的是(B)。A.装饰器是一个包裹函数B.装饰器智能有一个参数C.通过在函数定义的面前加上@符号阿和装饰器名,使得装饰器函数生效D.如果装饰器带有参数,则必须在装饰函数的外层再嵌套一层函数下列函数中,用于使用函数对制定序列进行过滤的是(C)。A.map函数B.select函数C.filter函数D.reduce函数下列选项中,不能作为filter函数参数的是(D)。A.列表B.元组C.字符串D.整数阅读下面一段程序:deffoo():a=1defbar():a=a+1returnareturnbarprint(foo()()) 上述程序执行的结果为(A)。 A.程序出现异常 B.2 C.1 D.没有输出结果二、判断题闭包是内部函数对外部作用域的变量进行引用。(×)当外部函数执行结束,其内部闭包引用的变量一定会立即释放。(×)装饰器是一个变量。(×)装饰器函数至少要接收一个函数。(√)装饰器既能装饰带参数的函数,也能自己带参数。(√)如果map函数传入的两个序列个数不同,那么个数多的序列会把多余的元素删除。(×)map函数只能传递一个序列。(×)map传入函数的参数个数必须跟序列的个数一样。(√)filter传入的函数可以为None。(√)filter函数智能对序列执行过滤操作。(×)filter函数的返回值为字符串,它的序列类型一定是字符串。(√)三、填空题内部函数引用了外部函数作用域的变量,那么内部函数叫作闭包。装饰器本质上是一个函数。装饰器函数需要接收一个参数,这个参数表示被修饰的函数。在函数定义的前面添加装饰器名和@符号,实现对函数的包装。支持参数的装饰器函数需要再多一层内嵌函数。map函数会根据提供的函数对制定的序列做映射。map的两个序列的元素个数不一致,那么元素少的序列会以None补齐。filter函数会对制定序列执行过滤操作。filter传入的函数的返回值是布尔值。reduce传入的是带有两个参数的函数,该函数不能为None。四、简答题请简述闭包满足的三个条件。(1)、存在于嵌套关系的函数中;(2)、嵌套的内部函数引用了外部函数的变量;(3)、嵌套的外部函数会将内部函数名作为返回值返回。请简述装饰器的应用场景。(1)、引入日志;(2)、函数执行时间统计;(3)、执行函数前预备处理;(4)、执行函数后清理功能;(5)、权限校验;(6)、缓存。请简述map、filter、reduce函数的作用。(1)、map函数会根据提供的函数对指定的序列做映射。(2)、filter函数会对指定序列执行过滤操作。(3)、reduce函数会对参数序列中的元素进行累积。五、程序分析题阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。代码一:deffunX():x=5deffunY():nonlocalxx+=1returnxreturnfunYa=funX()print(a())print(a())print(a()) 结果为: 6 7 8代码二:deffunX():x=5deffunY():nonlocalxx+=1returnxreturnfunYreturnfunYa=funXprint(a()())print(a()())print(a()()) 结果为: 6 6 6第八章一、单选题打开一个已有文件,然后在文件末尾添加信息,正确的打开方式为(C)。A.‘r’B.‘w’C.‘a’D.‘w+’假设文件不存在,如果使用open方法打开文件会报错,那么该文件的打开方式是下列哪种模式?(A)A.‘r’B.‘w’C.‘a’D.‘w+’假设file是文本文件对象,下列选项中,哪个用于读取一行内容?(C)A.file.read()B.file.read(200)C.file.readline()D.file.readlines()下列方法中,用于向文件中写出内容的是(B)。A.openB.writeC.closeD.read下列荣方法中,用于获取当前目录的是(D)。A.openB.writeC.GetcwdD.read下列语句打开文件的位置应该在(D)。f=open('itheima.txt','w') A.C盘根目录下 B.D盘根目录下 C.Python安装目录下 D.与源文件在相同的目录下若文本文件abc.txt中的内容如下:abcdef 阅读下面的程序:file=open("abc.txt","r")s=file.readline()s1=list(s)print(s1) 上述程序执行的结果为(C)。 A.[‘abcdef’] B.[‘abcdef’] C.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’] D.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,’’]二、判断题文件打开的默认方式是只读。(√)打开一个可读写的文件,如果文件存在会被覆盖。(√)使用write方法写入文件时,数据会追加到文件的末尾。(√)实际开发中,文件或者文件夹操作都要用到os模块。(√)read方法只能一次性读取文件中的所有数据。(×)三、填空题打开文件对文件进行读写,操作完成后应该调用close()方法关闭文件,以释放资源。seek方法用于移动指针到制定位置,该方法中offset参数表示要偏移的字节数。使用readlines方法把整个文件中的内容进行一次性读取,返回的是一个列表。os模块中的mkdir方法用于创建文件夹。在读写文件的过程中,tell方法可以获取当前的读写位置。四、简答题请简述文本文件和二进制文件的区别。文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符“”结尾。二进制文件把对象内容以字节串进行存储,无法用记事本或其他普通字处理软件直接进行编辑,无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。请简述读取文件的几种方法和区别。(1)、使用read(size)方法可以指定读取的字节数,或者读取整个文件;(2)、使用readlines方法可以把整个文件的内容进行一次性读取;(3)、使用readline方法一行一行读数据。第九章一、单选题下列程序运行以后,会产生如下(B)异常。a A.SyntaxErrorB.NameErrorC.IndexErrorD.KeyError下列选项中,(C)是唯一不再运行时发生的异常。A.ZeroDivisionErrorB.NameErrorC.SyntaxErrorD.KeyError当try语句中没有任何错误信息时,一定不会执行(D)语句。A.tryB.elseC.finalyD.except在完整的异常语句中,语句出现的顺序正确的是(D)。A.try---->except----->else---->finallyB.try---->else---->except----->finallyC.try---->except----->finally—>elseD.try----->else---->else----->except下列选项中,用于触发异常的是(A)。A.tryB.catchC.raiseD.except关于抛出异常的说法中,描述错误的是(C)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息关于抛出异常的说法中,描述错误的是(D)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息二、判断题默认情况下,系统检测到错误后会终止程序。(√)在使用异常时必须先导入exceptions模块。(×)一个try语句只能对应一个except子句。(×)如果except子句没有指明任何异常类型,则表示捕捉所有的异常。(√)无论程序是否捕捉到异常,一定会执行finally语句。(√)所有的except子句一定在else和finally的前面。(√)三、填空题Python中所有的异常类都是Exception子类。当使用序列中不存在的索引时,会引发IndexError异常。一个try语句智能对应一个finally子句。当约束条件不满足时,assert语句会触发AssertionError异常。如果在没有except的try语句中使用else语句,会引发语法错误。四、简答题请简述什么是异常。在Python中,程序在执行的过程中产生的错误称为异常,比如列表索引越界、打开不存在的文件等。处理异常有哪些方式?try、except、else、finally语句。第十章一、单选题下列关键字中,用来引入模块的是(C)。A.includeB.fromC.importD.continue关于引入模块的方式,错误的是(D)。A.importmathB.fromfibimportfibnacciC.formmathimport*D.from*importfib关于__name__的说法,下列描述错误的是(A)。A.它是Python提供的一个方法B.每个模块内部都有一个__name__属性C.当它的值为’__main__‘时,表示模块自身在运行D.当它的值不为’__main__'时,表示模块被引用二、判断题Python解释器会优先查看默认的路径搜索模块的位置。(×)每个Python文件就是一个模块。(√)当__name__属性的值为__main__时,代表该模块自身在运行。(√)包目录下必须有一个__init__py文件。(√)外部模块都提供了自动安装的文件,直接双击安装就行。(×)三、填空题要调用random模块的randint函数,书写形式为random.randint。每个Python文件都可以作为一个模块,模块的名字就是文件的名字。每个模块都有一个__name__属性,使程序块智能在模块自身运行时执行。为了更好地组织模块,通常会把多个模块放在一个包中。当程序中需要引入外部模块时,需要从外面下载并安装。如果要搜索模块的路径,可以使用sys模块的path变量。四、简答题解释Python脚本程序的"__name__"的作用。每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__name__”属性。利用“__name__”属性即可控制Python程序的运行方式。请简述Python解释器搜索模块位置的顺序。(1)、搜索当前目录,如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。(2)、如果都找不到。Python会继续查看默认路径。请简述模块的概念。在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。请简述导入模块的方法。在Python中用关键字import来引入某个模块:(1)、导入模块,使用“import模块”引入;(2)、导入模块中的某个函数,使用“from模块名import函数名”引入;(3)、导入模块的全部内容,使用“from模块import*”。第十一章一、单选题关于面向过程和面向对象,下列说法错误的是(B)。A.面向过程和面向对象都是解决问题的一种思路B.面向过程是基于面向对象的C.面向过程强调的是解决问题的步骤D.面向对象强调的是解决问题的对象关于类和对象的关系,下列描述正确的是(D)。A.类和面向对象的核心B.类是现实中事物的个体C.对象是根据类创建的,并且一个类只能对应一个对象D.对象描述的是现实的个体,它是类的实例构造方法的作用是(C)。A.一般成员方法B.类的初始化C.对象的初始化D.对象的建立构造方法是类的一个特殊方法,Python中它的名称为(C)。A.与类同名B._constructC._init_D.initPython类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员。A.selfB.meC.thisD.与类同名下列选项中,符合类的命名规范的是(A)。A.HolidayResortB.HolidayResortC.hoildayResortD.hoilidayresortPython中用于释放类占用资源的方法是(B)。A.__init__B.__del__C._delD.delete二、判断题面向对象是基于面向过程的。(×)通过类可以创建对象,有且只有一个对象实例。(×)方法和杉树的格式是完全一样的。(×)创建类的对象时,系统会自动调用构造方法进行初始化。(√)创建完对象后,其属性的初始值是固定的,外界无法进行修改。(×)使用del语句删除对象,可以手动释放它所占用的资源。(√)三、填空题在Python中,可以使用class关键字来声明一个类。面向对象需要把问题划分多个独立的对象,然后调用其方法解决问题。类的方法中必须有一个self参数,位于参数列表的开头。Python提供了名称为__init__的构造方法,实现让类的对象完成初始化。如果想修改属性的默认值,可以在构造方法中使用参数设置。四、简答题请简述self在类中的意义。不用实例化对象就能够在本类中访问自身的属性或方法。类是由哪三个部分组成的?类名,属性,方法。请简述构造方法和析构方法的作用。分别用于初始化对象的属性和释放类所占用的资源。五、程序分析题阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。代码一:classPerson:def__init__(self,name):self.name=namedef__str__(self):return"我的名字是"+self.nameperson=Person("小明")print(person) 结果为:我的名字是小明代码二:classPerson:def__del__(self):print("--del--")person=Person()delpersonprint("--end--") 结果为: --del– --end–第十二章一、选择题Python中定义私有属性的方法是(D)。A.使用private关键字B.使用public关键字C.使用__XX__定义属性名D.使用__XX定义属性名下列选项中,不属于面向对象程序设计的三个特征的是(A)。A.抽象B.封装C.继承D.多态以下C类继承A类和B类的格式中,正确的是(C)。A.classCA,B:B.classC(A:B)C.classC(A,B)D.classCAandB:下列选项中,与classPerson等价的是(C)。A.classPerson(Object)B.classPerson(Animal)C.classPerson(object)D.classPerson:object下列关于类属性和示例属性的说法,描述正确的是(B)。A.类属性既可以显示定义,又能在方法中定义B.公有类属性可以通过类和类的实例访问C.通过类可以获取实例属性的值D.类的实例只能获取实例属性的值下列选项中,用于标识为静态方法的是(C)。A.@classmethoodB.@instancemethodC.@staticmethodD.@privatemethod下列方法中,不可以使用类名访问的是(A)。A.实例方法B.类方法C.静态方法D.以上3项都不符合二、判断题Python中没有任何关键字区分公有属性和私有属性。(√)继承会在原有类的基础上产生新的类,这个新类就是父类。(×)带有两个下划线的方法一定是私有方法。(√)子类能继承父类的一切属性和方法。(×)子类通过重写继承的方法,覆盖掉跟父类同名的方法。(√)如果类属性和实例属性重名,对象有限访问类属性的值。(×)使用类名获取到的值一定是类属性的值。(√)静态方法中一定不能访问实例属性的值。(√)三、填空题如果属性名的前面加上了两个下划线,就表明它是私有属性。在现有类基础上构建新类,新的类称作子类,现有的类称作父类。父类的私有属性和方法是不能被子类继承的,更不能被子类访问。Python语言既支持单继承,也支持多继承。子类想按照自己的方式实现方法,需要重写从父类继承的方法。子类通过super()可以成功地访问父类的成员。位于类内部、方法外部的方法是类方法。类方法是类拥有的方法,使用修饰器@classmethod来标识。四、简答题请简述如何保护类的属性。(1)、把属性定义为私有属性,即在属性名的前面加上两个下划线;(2)、添加用于设置或者获取属性值的两个方法供外界调用。什么是继承?类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类的属性和方法。请简述私有属性无法访问的原理。当在一个类的内部定义了私有方法或者私有属性的时候,Python在运行的过程中,把属性或者方法的名字进行了修改,即在属性或者方法名称的前面加上“_类名”,导致原有的方法无法访问到。什么是多态?在Python中,多态是指在不考虑对象类型的情况下使用对象。请简述实例方法、类方法和静态方法的区别。(1)、类方法需要使用@classmethod进行标识,该方法可以访问类属性,无法访问实例属性,可以通过类实例和类进行调用。(2)、静态方法使用@staticmethod进行标识,该方法无法访问实例属性和类属性,起到类似于函数的作用,使用类或者类实例进行调用。(3)、实例方法直接在类中使用def进行定义,可以访问其实例属性和类属性,使用类实例进行调用。(4)、如果要修改实例属性的值,就直接使用实例方法;如果要修改类属性的值,就直接使用类方法;如果是辅助功能,比如打印菜单,这时可以考虑使用静态方法,可以在不创建对象的前提下使用。请简述Python中以下划线开头的变量名的特点。在Python中,以下划线开头的变量名有着特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:(1)、_xx:这样的对象叫做保护变量,不能用frommoduleimport*导入,只有类对象和子类对象能够访问这些变量。(2)、__xx__:系统定义的特殊成员名字。(3)、__xx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名.__类名__xx”这样特殊的方式来访问。Python中没有纯粹的C++意义上的私有成员。END如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!
z=x
x=y
y=z
A.10,20,30 B.10,20,20 C.20,10,10 D.20,10,30
有一个函数关系如下所示:
xyx<0x x=0xx>0x+1
下面程序段中,能正确表示上面关系的是(C)。
y=x+1
ifx>=0
ifx==0:
y=x
else:
y=x-1;
y=x-1
ifx!=0:
ifx>0:
ifx<=0:
ifx<0>
下列Python语句正确的是(D)。A.min=xifxy?x:yC.if(x>y)printxD.whileTrue:pass
简述Python中pass语句的作用。Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。简述break和continue的区别。break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。
第四章
一、单选题
当需要在字符串中使用特殊字符的时候,Python使用(A)作为转义字符。A.\B./C.#D.%下列数据中不属于字符串的是(D)。A.‘ab’B.’’‘perfect’’’C.“52wo”D.abc使用(B)符号对浮点类型的数据进行格式化。A.?.?.?.%s字符串’Hi,Andy’中,字符’A’对应的下标位置为(C)。A.1B.2C.3D.4下列方法中,能够返回某个子串在字符串中出现次数的是(C)。A.lengthB.indexC.countD.find下列方法中,能够让所有单词的首字母变成大写的方法是(B)。A.capitalizeB.titleC.upperD.ljust字符串的strip方法的作用是(A)。A.删除字符串头尾指定的字符B.删除字符串末尾的指定字符C.删除字符串头部的指定字符D.通过指定分隔符对字符串切片
无论使用单引号或者双引号包含字符,使用print输出的结果都一样。(√)无论input接收任何的数据,都会以字符串的方式进行保存。(√)Python中只有一个字母的字符串属于字符类型。(×)使用下标可以访问字符串中的每个字符。(√)Python中字符串的下表是从1开始的。(×)切片选区的区间范围是从起始位开始的,到结束位结束。(×)如果index方法没有在字符串中找到子串,则会返回-1。(×)
三、填空题
字符串是一种表示文本数据的类型。像双引号这样的特殊符号,需要对它进行转义输出。Python3提供了input函数从标准输入(如键盘)读入一行文本。切片指的是对操作的对象截取其中的一部分。切片选取的区间是左闭右开型的,不包含结束位的值。
四、程序分析题
阅读下面的程序,分析代码是否可以编译通过。如果编译通过,请列出运行的结果,否则说明编译失败的原因。
代码一:
num_one=input("请输入一个整数:")
num_two=input("请输入一个整数:")
ifnum_one%num_two==0:
print("验证码正确")
答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。
代码二:
name='SteveJobs'
print(name[6])
结果为:J
代码三:
string_example='helloworlditheima'
index=string_example.index("itheima",0,10)
print(index)
答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。
代码四:
string_example="helloworld"
print(string_example.strip())
结果为:HelloWorld(默认删除两头的空格)
代码五:
string_example="Hello"+'Python'
print(string_example)
结果为:HelloPython
第五章
一、选择题
关于列表的说法,描述有错误的是(D)。A.list是一个有序集合,没有固定大小B.list可以存放任意类型的元素C.使用list时,其下标可以是负数D.list是不可变的数据类型以下程序的输出结果是(B)。(提示:ord(“a”)==97)
list_demo=[1,2,3,4,5,'a','b']
print(list_demo[1],list_demo[5])
A.15 B.2a C.197 D.297
执行下面的操作后,list_two的值为(C)。
list_one=[4,5,6]
list_two=list_one
list_one[2]=3
A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确
阅读下面的程序:
list_demo=[1,2,1,3]
nums=set(list_demo)
foriinnums:
print(i,end="")
程序执行的结果为(D)。 A.1213 B.213 C.321 D.123
下列选项中,正确定义了一个字典的是(D)。A.a=[‘a’,1,‘b’,2,‘c’,3]B.b=(‘a’,1,‘b’,2,‘c’,3)C.c={‘a’,1,‘b’,2,‘c’,3}D.d={‘a’:1,‘b’:2,‘c’:3}下列选项中,不能使用下标运算的是(C)。A.列表B.元组C.集合D.字符串下列程序执行后输出的结果为(A)。
x='abc'
y=100
print(x)
A.abc B.100 C.97,98,99 D.以上三项均是错误的
下列删除列表中最后一个元素的函数是(B)。A.delB.popC.removeC.cut下列函数中,用于返回元祖中元素最小值的是(C)。A.lenB.maxC.minD.tuple
列表的索引是从0开始的。(√)通过insert方法可以在制定位置插入元素。(√)使用下标能修改列表的元素。(√)列表的嵌套指的是一个列表的元素是另一个列表。(√)通过下标索引可以修改和访问元祖的元素。(×)字典中的值只能够是字符串类型。(×)在字典中,可以使用count方法计算键值对的个数。(×)
Python序列类型包括字符串、列表和元组三种,字典是Python中唯一的映射类型。Python中的可变数据类型有字典和列表。在列表中查找元素时可以使用notin和in运算符。如果要从小到大的排列列表的元素,可以使用sort方法实现。元组使用圆括号存放元素,列表使用的是方括号。
请简述元组、列表和字典的区别。(1)、外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据(2)、存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。(3)、访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。(4)、是否可变类型:列表是可变类型,元组是不可变类型,字典是可变类型。
五、程序分析题
阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
tup=('a','b','c')
tup[3]='d'
print(tup)
答:程序运行错误,元组不能使用下标增加元素。
dict_demo={'a':1,'b':2,'c':3}
print(dict_demo['a'])
结果为:1
list_demo=[10,23,66,26,35,1,76,88,58]
list_demo.reverse()
print(list_demo[3])
list_demo.sort()
结果为: 1 26
第六章
deffunc():
x=100
func()
执行上述语句后,输出的结果为(C)。 A.0B.100C.程序出现异常D.程序编译失败
下面关于函数的说法,错误的是(C)。A.函数可以减少代码的重复,使得程序更加模块化B.在不同的函数中可以使用相同名字的变量C.调用函数时,传入参数的顺序和函数定义时的顺序必须相同D.函数体中如果没有return语句,也会返回一个None值下列有关函数的说法中,正确的是(C)。A.函数的定义必须在程序的开头B.函数定义后,其中的程序就可以自动执行C.函数定义后需要调用才会执行D.函数体与关键字def必须左对齐下列函数调用使用的参数传递方式是(A)。
result=sum(num1,num2,num3)
A.位置绑定B.关键字绑定C.变量类型绑定D.变量名称绑定
使用(C)关键字创建自定义函数。A.functionB.funcC.defD.procedure使用(D)关键字声明匿名函数。A.functionB.funcC.defD.lambda
函数的名称可以随意命名。(×)不带return的函数代表返回None。(√)默认情况下,参数值和参数名是跟函数声明定义的顺序匹配的。(√)函数定义完成后,系统会自动执行其内部的功能。(×)函数体以冒号起始,并且是缩进格式的。(√)带有默认值的参数一定位于参数列表的末尾。(√)局部变量的作用域是整个程序,任何时候使用都有效。(×)匿名函数就是没有名字的函数。(√)
函数可以有多个参数,参数之间使用逗号分隔。使用return语句可以返回函数值并退出函数。通过return结束函数,从而选择性地返回一个值给调用方。函数能处理比声明时更多的参数,它们是不定长参数。在函数里面调用另外一个函数,这就是函数嵌套调用。在函数的内部定义的变量称作局部变量。全局变量定义在函数外,可以在整个程序范围内访问。如果想在函数中修改全部变量,需要在变量的前面加上global关键字。
请简述局部变量和全局变量的区别。局部变量:(1)、函数内部定义的变量;(2)、作用域是函数的内部。全局变量:(1)、函数外部定义的变量;(2)、作用域是整个程序。请简要说明函数定义的规则。(1)、以def关键字开头,后面接函数标识符名称和圆括号;(2)、给函数起名字的时候,规则跟变量的名字是一样的;(3)、任何传入参数和自变量必须放在圆括号中间;(4)、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明;(5)、函数内容以冒号起始,并且缩进;(6)、return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。
x=200
结果为:100
globalx
结果为:200
deffunc2():
func2()
结果为: 200 100
第七章
关于装饰器,下列说法错误的是(B)。A.装饰器是一个包裹函数B.装饰器智能有一个参数C.通过在函数定义的面前加上@符号阿和装饰器名,使得装饰器函数生效D.如果装饰器带有参数,则必须在装饰函数的外层再嵌套一层函数下列函数中,用于使用函数对制定序列进行过滤的是(C)。A.map函数B.select函数C.filter函数D.reduce函数下列选项中,不能作为filter函数参数的是(D)。A.列表B.元组C.字符串D.整数阅读下面一段程序:
deffoo():
a=1
defbar():
a=a+1
returna
returnbar
print(foo()())
上述程序执行的结果为(A)。 A.程序出现异常 B.2 C.1 D.没有输出结果
闭包是内部函数对外部作用域的变量进行引用。(×)当外部函数执行结束,其内部闭包引用的变量一定会立即释放。(×)装饰器是一个变量。(×)装饰器函数至少要接收一个函数。(√)装饰器既能装饰带参数的函数,也能自己带参数。(√)如果map函数传入的两个序列个数不同,那么个数多的序列会把多余的元素删除。(×)map函数只能传递一个序列。(×)map传入函数的参数个数必须跟序列的个数一样。(√)filter传入的函数可以为None。(√)filter函数智能对序列执行过滤操作。(×)filter函数的返回值为字符串,它的序列类型一定是字符串。(√)
内部函数引用了外部函数作用域的变量,那么内部函数叫作闭包。装饰器本质上是一个函数。装饰器函数需要接收一个参数,这个参数表示被修饰的函数。在函数定义的前面添加装饰器名和@符号,实现对函数的包装。支持参数的装饰器函数需要再多一层内嵌函数。map函数会根据提供的函数对制定的序列做映射。map的两个序列的元素个数不一致,那么元素少的序列会以None补齐。filter函数会对制定序列执行过滤操作。filter传入的函数的返回值是布尔值。reduce传入的是带有两个参数的函数,该函数不能为None。
请简述闭包满足的三个条件。(1)、存在于嵌套关系的函数中;(2)、嵌套的内部函数引用了外部函数的变量;(3)、嵌套的外部函数会将内部函数名作为返回值返回。请简述装饰器的应用场景。(1)、引入日志;(2)、函数执行时间统计;(3)、执行函数前预备处理;(4)、执行函数后清理功能;(5)、权限校验;(6)、缓存。请简述map、filter、reduce函数的作用。(1)、map函数会根据提供的函数对指定的序列做映射。(2)、filter函数会对指定序列执行过滤操作。(3)、reduce函数会对参数序列中的元素进行累积。
deffunX():
x=5
deffunY():
nonlocalx
x+=1
returnx
returnfunY
a=funX()
print(a())
结果为: 6 7 8
a=funX
print(a()())
结果为: 6 6 6
第八章
打开一个已有文件,然后在文件末尾添加信息,正确的打开方式为(C)。A.‘r’B.‘w’C.‘a’D.‘w+’假设文件不存在,如果使用open方法打开文件会报错,那么该文件的打开方式是下列哪种模式?(A)A.‘r’B.‘w’C.‘a’D.‘w+’假设file是文本文件对象,下列选项中,哪个用于读取一行内容?(C)A.file.read()B.file.read(200)C.file.readline()D.file.readlines()下列方法中,用于向文件中写出内容的是(B)。A.openB.writeC.closeD.read下列荣方法中,用于获取当前目录的是(D)。A.openB.writeC.GetcwdD.read下列语句打开文件的位置应该在(D)。
f=open('itheima.txt','w')
A.C盘根目录下 B.D盘根目录下 C.Python安装目录下 D.与源文件在相同的目录下
若文本文件abc.txt中的内容如下:
abcdef
file=open("abc.txt","r")
s=file.readline()
s1=list(s)
print(s1)
上述程序执行的结果为(C)。 A.[‘abcdef’] B.[‘abcdef’] C.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’] D.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,’’]
文件打开的默认方式是只读。(√)打开一个可读写的文件,如果文件存在会被覆盖。(√)使用write方法写入文件时,数据会追加到文件的末尾。(√)实际开发中,文件或者文件夹操作都要用到os模块。(√)read方法只能一次性读取文件中的所有数据。(×)
打开文件对文件进行读写,操作完成后应该调用close()方法关闭文件,以释放资源。seek方法用于移动指针到制定位置,该方法中offset参数表示要偏移的字节数。使用readlines方法把整个文件中的内容进行一次性读取,返回的是一个列表。os模块中的mkdir方法用于创建文件夹。在读写文件的过程中,tell方法可以获取当前的读写位置。
请简述文本文件和二进制文件的区别。文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符“”结尾。二进制文件把对象内容以字节串进行存储,无法用记事本或其他普通字处理软件直接进行编辑,无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。请简述读取文件的几种方法和区别。(1)、使用read(size)方法可以指定读取的字节数,或者读取整个文件;(2)、使用readlines方法可以把整个文件的内容进行一次性读取;(3)、使用readline方法一行一行读数据。
第九章
下列程序运行以后,会产生如下(B)异常。
a
A.SyntaxErrorB.NameErrorC.IndexErrorD.KeyError
下列选项中,(C)是唯一不再运行时发生的异常。A.ZeroDivisionErrorB.NameErrorC.SyntaxErrorD.KeyError当try语句中没有任何错误信息时,一定不会执行(D)语句。A.tryB.elseC.finalyD.except在完整的异常语句中,语句出现的顺序正确的是(D)。A.try---->except----->else---->finallyB.try---->else---->except----->finallyC.try---->except----->finally—>elseD.try----->else---->else----->except下列选项中,用于触发异常的是(A)。A.tryB.catchC.raiseD.except关于抛出异常的说法中,描述错误的是(C)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息关于抛出异常的说法中,描述错误的是(D)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息
默认情况下,系统检测到错误后会终止程序。(√)在使用异常时必须先导入exceptions模块。(×)一个try语句只能对应一个except子句。(×)如果except子句没有指明任何异常类型,则表示捕捉所有的异常。(√)无论程序是否捕捉到异常,一定会执行finally语句。(√)所有的except子句一定在else和finally的前面。(√)
Python中所有的异常类都是Exception子类。当使用序列中不存在的索引时,会引发IndexError异常。一个try语句智能对应一个finally子句。当约束条件不满足时,assert语句会触发AssertionError异常。如果在没有except的try语句中使用else语句,会引发语法错误。
请简述什么是异常。在Python中,程序在执行的过程中产生的错误称为异常,比如列表索引越界、打开不存在的文件等。处理异常有哪些方式?try、except、else、finally语句。
第十章
下列关键字中,用来引入模块的是(C)。A.includeB.fromC.importD.continue关于引入模块的方式,错误的是(D)。A.importmathB.fromfibimportfibnacciC.formmathimport*D.from*importfib关于__name__的说法,下列描述错误的是(A)。A.它是Python提供的一个方法B.每个模块内部都有一个__name__属性C.当它的值为’__main__‘时,表示模块自身在运行D.当它的值不为’__main__'时,表示模块被引用
Python解释器会优先查看默认的路径搜索模块的位置。(×)每个Python文件就是一个模块。(√)当__name__属性的值为__main__时,代表该模块自身在运行。(√)包目录下必须有一个__init__py文件。(√)外部模块都提供了自动安装的文件,直接双击安装就行。(×)
要调用random模块的randint函数,书写形式为random.randint。每个Python文件都可以作为一个模块,模块的名字就是文件的名字。每个模块都有一个__name__属性,使程序块智能在模块自身运行时执行。为了更好地组织模块,通常会把多个模块放在一个包中。当程序中需要引入外部模块时,需要从外面下载并安装。如果要搜索模块的路径,可以使用sys模块的path变量。
解释Python脚本程序的"__name__"的作用。每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__name__”属性。利用“__name__”属性即可控制Python程序的运行方式。请简述Python解释器搜索模块位置的顺序。(1)、搜索当前目录,如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。(2)、如果都找不到。Python会继续查看默认路径。请简述模块的概念。在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。请简述导入模块的方法。在Python中用关键字import来引入某个模块:(1)、导入模块,使用“import模块”引入;(2)、导入模块中的某个函数,使用“from模块名import函数名”引入;(3)、导入模块的全部内容,使用“from模块import*”。
第十一章
关于面向过程和面向对象,下列说法错误的是(B)。A.面向过程和面向对象都是解决问题的一种思路B.面向过程是基于面向对象的C.面向过程强调的是解决问题的步骤D.面向对象强调的是解决问题的对象关于类和对象的关系,下列描述正确的是(D)。A.类和面向对象的核心B.类是现实中事物的个体C.对象是根据类创建的,并且一个类只能对应一个对象D.对象描述的是现实的个体,它是类的实例构造方法的作用是(C)。A.一般成员方法B.类的初始化C.对象的初始化D.对象的建立构造方法是类的一个特殊方法,Python中它的名称为(C)。A.与类同名B._constructC._init_D.initPython类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员。A.selfB.meC.thisD.与类同名下列选项中,符合类的命名规范的是(A)。A.HolidayResortB.HolidayResortC.hoildayResortD.hoilidayresortPython中用于释放类占用资源的方法是(B)。A.__init__B.__del__C._delD.delete
面向对象是基于面向过程的。(×)通过类可以创建对象,有且只有一个对象实例。(×)方法和杉树的格式是完全一样的。(×)创建类的对象时,系统会自动调用构造方法进行初始化。(√)创建完对象后,其属性的初始值是固定的,外界无法进行修改。(×)使用del语句删除对象,可以手动释放它所占用的资源。(√)
在Python中,可以使用class关键字来声明一个类。面向对象需要把问题划分多个独立的对象,然后调用其方法解决问题。类的方法中必须有一个self参数,位于参数列表的开头。Python提供了名称为__init__的构造方法,实现让类的对象完成初始化。如果想修改属性的默认值,可以在构造方法中使用参数设置。
请简述self在类中的意义。不用实例化对象就能够在本类中访问自身的属性或方法。类是由哪三个部分组成的?类名,属性,方法。请简述构造方法和析构方法的作用。分别用于初始化对象的属性和释放类所占用的资源。
classPerson:
def__init__(self,name):
self.name=name
def__str__(self):
return"我的名字是"+self.name
person=Person("小明")
print(person)
结果为:我的名字是小明
def__del__(self):
print("--del--")
person=Person()
delperson
print("--end--")
结果为: --del– --end–
第十二章
Python中定义私有属性的方法是(D)。A.使用private关键字B.使用public关键字C.使用__XX__定义属性名D.使用__XX定义属性名下列选项中,不属于面向对象程序设计的三个特征的是(A)。A.抽象B.封装C.继承D.多态以下C类继承A类和B类的格式中,正确的是(C)。A.classCA,B:B.classC(A:B)C.classC(A,B)D.classCAandB:下列选项中,与classPerson等价的是(C)。A.classPerson(Object)B.classPerson(Animal)C.classPerson(object)D.classPerson:object下列关于类属性和示例属性的说法,描述正确的是(B)。A.类属性既可以显示定义,又能在方法中定义B.公有类属性可以通过类和类的实例访问C.通过类可以获取实例属性的值D.类的实例只能获取实例属性的值下列选项中,用于标识为静态方法的是(C)。A.@classmethoodB.@instancemethodC.@staticmethodD.@privatemethod下列方法中,不可以使用类名访问的是(A)。A.实例方法B.类方法C.静态方法D.以上3项都不符合
Python中没有任何关键字区分公有属性和私有属性。(√)继承会在原有类的基础上产生新的类,这个新类就是父类。(×)带有两个下划线的方法一定是私有方法。(√)子类能继承父类的一切属性和方法。(×)子类通过重写继承的方法,覆盖掉跟父类同名的方法。(√)如果类属性和实例属性重名,对象有限访问类属性的值。(×)使用类名获取到的值一定是类属性的值。(√)静态方法中一定不能访问实例属性的值。(√)
如果属性名的前面加上了两个下划线,就表明它是私有属性。在现有类基础上构建新类,新的类称作子类,现有的类称作父类。父类的私有属性和方法是不能被子类继承的,更不能被子类访问。Python语言既支持单继承,也支持多继承。子类想按照自己的方式实现方法,需要重写从父类继承的方法。子类通过super()可以成功地访问父类的成员。位于类内部、方法外部的方法是类方法。类方法是类拥有的方法,使用修饰器@classmethod来标识。
请简述如何保护类的属性。(1)、把属性定义为私有属性,即在属性名的前面加上两个下划线;(2)、添加用于设置或者获取属性值的两个方法供外界调用。什么是继承?类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类的属性和方法。请简述私有属性无法访问的原理。当在一个类的内部定义了私有方法或者私有属性的时候,Python在运行的过程中,把属性或者方法的名字进行了修改,即在属性或者方法名称的前面加上“_类名”,导致原有的方法无法访问到。什么是多态?在Python中,多态是指在不考虑对象类型的情况下使用对象。请简述实例方法、类方法和静态方法的区别。(1)、类方法需要使用@classmethod进行标识,该方法可以访问类属性,无法访问实例属性,可以通过类实例和类进行调用。(2)、静态方法使用@staticmethod进行标识,该方法无法访问实例属性和类属性,起到类似于函数的作用,使用类或者类实例进行调用。(3)、实例方法直接在类中使用def进行定义,可以访问其实例属性和类属性,使用类实例进行调用。(4)、如果要修改实例属性的值,就直接使用实例方法;如果要修改类属性的值,就直接使用类方法;如果是辅助功能,比如打印菜单,这时可以考虑使用静态方法,可以在不创建对象的前提下使用。请简述Python中以下划线开头的变量名的特点。在Python中,以下划线开头的变量名有着特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:(1)、_xx:这样的对象叫做保护变量,不能用frommoduleimport*导入,只有类对象和子类对象能够访问这些变量。(2)、__xx__:系统定义的特殊成员名字。(3)、__xx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名.__类名__xx”这样特殊的方式来访问。Python中没有纯粹的C++意义上的私有成员。
如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!
Python要处理的对象有:数字,字符串,列表,元组,字典,集合,文件,函数,方法,类,模块。
数字:很明显,像 1、3.5、-0.5
字符串:用引号表示,’123’ , ’rfv’, ’myname888’
列表:用[ ]表示,[1 , 3 , a , ‘wsx’]
元组:用( )表示,(1 , 3 , a , ‘wsx’)
字典:用{ }表示,{‘name’ : ‘peter’ , ‘score’ :98,’sex’ : ‘male’} 里面有key值,value值,一一对应。
集合:用[ ]表示,但里面只有key值,没有value值。
文件:既是存储在磁盘等地方的数据对象,可以理解为连续的字节序列。
★函数:pyhon里自带的像cos(), tan()等, 还有用def 语句定义的一段,作为自定义函数。
★方法: 即对象自身所带的内在一种处理方式,类似于属性。
★类:面向对象编程的重要概念,用class 语句定义一段,作为类。
模块:把相类似,相同的功能的函数放在一起,就是一个模块,上一节中讲python可以做很多事情,不同的事情,就调用不同的模块。比如做网站开发,和做数据分析,就调用不同模块了。
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下
最多设置5个标签!
主要包括python要处理的各种对象,数字,字符串,列表,元组,字典,集合,文件,函数,方法,类,模块等。还有对这些对象如何操作,操作的方法有包括 操作符、操作函数、对象自带的内建方法及属性等
文章目录
前言第一章一、填空题二、判断题三、选择题四、简答题
第二章一、填空题二、判断题三、选择题四、简答题
第三章一、填空题二、判断题三、选择题四、简答题
第四章一、单选题二、判断题三、填空题四、程序分析题
第五章一、选择题二、判断题三、填空题四、简答题五、程序分析题
第六章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第七章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第八章一、单选题二、判断题三、填空题四、简答题
第九章一、单选题二、判断题三、填空题四、简答题
第十章一、单选题二、判断题三、填空题四、简答题
第十一章一、单选题二、判断题三、填空题四、简答题五、程序分析题
第十二章一、选择题二、判断题三、填空题四、简答题
END
前言
本文整理了填空、选择、判断等一些课后习题答案,具体的编程题可以见:Python快速编程入门课后程序题答案。
第一章
一、填空题
Python是一种面向对象的高级语言。Python可以在多种平台运行,这体现了Python语言的可移植特性。Python源代码被解释器转换后的格式为字节码。Python3.x默认使用的编码是UTF-8。
二、判断题
Python是开源的,它可以被一直到许多平台上。(√)Python的优点之一是具有伪代码的本质。(√)Python可以开发Web程序,也可以管理操作系统。(√)Mac系统自带Python开发环境。(√)Python自带的shell,其性能由于IPython。(×)我们编写的Python代码在运行过程中,会被编译成二进制代码。(×)Python程序被解释器转换后的文件格式后缀名为.pyc。(√)Python3.x版本的代码完全兼容Python2.x。(×)PyCharm是开发Python的集成开发环境。(√)代码print(3,4)是Python2.x的输出格式。(×)
三、选择题
下列选项中,不属于Python语言特点的是(C)。A.简单易学B.开源C.面对过程D.可移植性下列领域中,使用Python可以实现的是(ABCD)。(多选)A.Web开发B.操作系统管理C.科学计算D.游戏下列关于Python2.x和Python3.x的说法,正确的是(B)。A.Python3.x使用print语句输出数据B.Python3.x默认使用的编码是UTF-8C.Python2.x和Python3.x使用//进行除法运算的结果不一致D.Python3.x版本的异常可以直接被抛出下列关于Python的说法中,错误的是(C)。A.Python是从ABC发展起来的B.Python是一门高级的计算机语言C.Python是一门只面向对象的语言D.Python是一种代表简单主义思想的语言下列关于IPython的说法,错误的是(D)。A.IPython集成了交互式Python的很多有点B.IPython的性能远远优于标准的Python的shellC.IPython支持变量自动补全,自动收缩D.与标准的Python相比,IPython缺少内置的功能和函数
四、简答题
简述Python的特点。•简单易学•开源•高级语言•可移植性•解释性•面向对象•可扩展性•丰富的库•规范的代码简述Python的应用领域(至少3个)。•web应用开发•操作系统管理、服务器运维的自动化脚本•科学计算•桌面软件•服务器软件(网络软件)•游戏•构思实现,产品早期原型和迭代简述Python2.x和Python3.x的区别。(1)、在python2.x中,输出数据使用的是print语句。但是在python3.x中,print语句没有了,取而代之的是print()函数(2)、python2有ASCIIStr()类型,unicode()是单独的,不是byte类型。在python3.x版本的源代码中,默认使用的是UTF-8编码,从而可以很好的支持中文字符。(3)、在python2.x中,使用运算符/进行除法运算,整数相除的结果是一个整数,浮点数除法会保留小数点的部分得到一个浮点数的结果。在python3.x中使用运算符/进行除法,整数之间的相除,结果也会是浮点数。(4)、相比python2.x版本,python3.x版本在异常方面有很多改变: •在python2.x版本,所有类型的对象都是直接被抛出的,但是,在python3.x版本中,只有继承自BaseException的对象才可以被抛出。 •在python2.x版本中,捕获异常的语法是exceptexc,var。在python3.x版本中,引入了as关键字,捕获异常的语法变更为exceptexcasvar。 •在python2.x版本中,处理异常使用raiseException(args)。在python3.x版本中,处理异常使用raiseException,args。 •python3.x取消了异常类的序列行为和.message属性。(5)、在Python3.x中,表示八进制字面量的方式只有一种,并且必须写0o1000这样的方式,原来01000的方式不能使用了。(6)、Python2.x中不等于有两种写法!=和<>;但是,Python3.x中去掉了<>,只有!=一种写法(7)、python3.x去除了long类型,现在只有一种整型int,但它的行为就像是python2.x版本的long。简述Python程序的执行原理。Python程序的执行原理如图所示:Python解释器将源代码转换为字节码,然后把编译好的字节码转发到Python虚拟机(PVM)中进行执行。简述IPython的特点。•IPython具有卓越的Pythonshell,其性能远远优于标准Python的shell。•IPython支持变量自动补全,自动缩进,支持bashshell命令,内置了许多很有用的功能和函数。•IPython提供了基于控制台命令环境的定制功能,可以十分轻松地将交互式Pythonshell包含在各种Python应用中,甚至可以当作系统级shell来使用。
第二章
一、填空题
在Python中,int表示的数据类型是整型。布尔类型的值包括True和False。Python的浮点数占8个字节。如果要在计算机中表示浮点数
1.2
×
1
0
5
1.2\times10^5
1.2×105,则表示方法为1.2e5。00001000>>2的结果是00000010。若a=20,那么bin(a)的值为0b10100。如果想测试变量的类型,可以使用type()来实现。若a=1,b=2,那么(aorb)的值为1。若a=10,b=20,那么(aandb)结果为20。4.34E5表示的是4.34×10^5。
二、判断题
Python使用符号#表示单行注释。(√)标识符可以以数字开头。(×)type()方法可以查看变量的数据类型。(√)Python中的代码块使用缩进来表示。(√)Python中的多行语句可以使用反斜杠来实现。(×)Python中标识符不区分大小写。(×)Python中的标识符不能使用关键字。(√)使用help()命令可以进入帮助系统。(√)Python中的成员运算符用于判断制定序列中是否包含某个值。(√)比较运算符用于比较两个数,其返回的结果智能是True或False。(√)
三、选择题
下列选项中,(D)的布尔值不是Flase。A.NoneB.0C.()D.1假设a=9,b=2,那么下列运算中,错误的是(D)。A.a+b的值是11B.a//b的值是4C.a%b的值是1D.a**b的值是18下列标识符中,合法的是(AD)。A.helloWorldB.2ndObjC.hello#worldD._helloworld下列符号中,表示Python中单行注释的是(A)。A.#B.//C.D."“"下列选项中,符合Python命名规范的标识符是(C)。A.user-PasswdB.ifC._nameD.setup.exe下列选项中,Python不支持的数据类型有(B)。A.intB.charC.floatD.dicitionary下列表达式中,返回True的是(B)。A.a=2b=2a=bB.3>2>1C.TrueandFalseD.2!=2下列语句中,哪个在Python中是非法的?(B)。A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD.x+=y下列关于Python中的复数,说法错误的是(C)。A.表示复数的语法是real+imagejB.实部和虚部都是浮点数C.虚部必须后缀j,且必须是小写D.一个复数必须有表示虚部的实数和j下列选项中,幂运算的符号为(D)。A.*B.++C.%D.**
四、简答题
简述Python中标识符的命名规则。•标识符由字母、下划线和数字组成,且数字不能开头。•python中的标识符是区分大小写的。•python中的标识符不能使用关键字。简述Python中的数字类型。int(整型)、long(长整型)、float(浮点数)、complex(复数)
第三章
一、填空题
在循环体中使用break语句可以跳出循环体。elif语句是else语句和if语句的组合。在循环体中可以使用continue语句跳过本次循环后面的代码,重新开始下一次循环。如果希望循环是无限的,我们可以通过设置条件表达式永远为True来实现无限循环。Python中的pass表示的是空语句。
二、判断题
elif可以单独使用。(×)pass语句的出现是为了保持进程结构的完整性。(√)在Python中没有switch-case语句。(√)每个if条件后面都要使用冒号。(√)循环语句可以嵌套使用。(√)
三、选择题
下列选项中,会输出1,2,3三个数字的是(BC)。
A.
foriinrange(3):
print(i)
B.
foriinrange(3):
print(i+1)
C.
a_list=[0,1,2]
foriina_list:
print(i+1)
D.
i=1
whilei<3>
print(i)
i=i+1
阅读下面的代码:
sum=0
foriinrange(100):
if(i):
continue
sum=sum+i
print(sum)
上述程序的执行结果是(C)。 A.5050B.4950C.450D.45
已知x=10,y=20,z=30:以下语句执行后x,y,z的值是(C)。
ifx
z=x
x=y
y=z
A.10,20,30 B.10,20,20 C.20,10,10 D.20,10,30
有一个函数关系如下所示:
xyx<0x x=0xx>0x+1
下面程序段中,能正确表示上面关系的是(C)。
A.
y=x+1
ifx>=0
ifx==0:
y=x
else:
y=x-1;
B.
y=x-1
ifx!=0:
ifx>0:
y=x+1
else:
y=x
C.
ifx<=0:
ifx<0>
y=x-1
else:
y=x
else:
y=x+1
D.
y=x
ifx<=0:
ifx<0>
y=x-1
else:
y=x+1
下列Python语句正确的是(D)。A.min=xifxy?x:yC.if(x>y)printxD.whileTrue:pass
四、简答题
简述Python中pass语句的作用。Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用做占位语句。简述break和continue的区别。break语句用于结束整个循环;continue的作用是用来结束本次循环,紧接着执行下一次的循环。
第四章
一、单选题
当需要在字符串中使用特殊字符的时候,Python使用(A)作为转义字符。A.\B./C.#D.%下列数据中不属于字符串的是(D)。A.‘ab’B.’’‘perfect’’’C.“52wo”D.abc使用(B)符号对浮点类型的数据进行格式化。A.?.?.?.%s字符串’Hi,Andy’中,字符’A’对应的下标位置为(C)。A.1B.2C.3D.4下列方法中,能够返回某个子串在字符串中出现次数的是(C)。A.lengthB.indexC.countD.find下列方法中,能够让所有单词的首字母变成大写的方法是(B)。A.capitalizeB.titleC.upperD.ljust字符串的strip方法的作用是(A)。A.删除字符串头尾指定的字符B.删除字符串末尾的指定字符C.删除字符串头部的指定字符D.通过指定分隔符对字符串切片
二、判断题
无论使用单引号或者双引号包含字符,使用print输出的结果都一样。(√)无论input接收任何的数据,都会以字符串的方式进行保存。(√)Python中只有一个字母的字符串属于字符类型。(×)使用下标可以访问字符串中的每个字符。(√)Python中字符串的下表是从1开始的。(×)切片选区的区间范围是从起始位开始的,到结束位结束。(×)如果index方法没有在字符串中找到子串,则会返回-1。(×)
三、填空题
字符串是一种表示文本数据的类型。像双引号这样的特殊符号,需要对它进行转义输出。Python3提供了input函数从标准输入(如键盘)读入一行文本。切片指的是对操作的对象截取其中的一部分。切片选取的区间是左闭右开型的,不包含结束位的值。
四、程序分析题
阅读下面的程序,分析代码是否可以编译通过。如果编译通过,请列出运行的结果,否则说明编译失败的原因。
代码一:
num_one=input("请输入一个整数:")
num_two=input("请输入一个整数:")
ifnum_one%num_two==0:
print("验证码正确")
答:不能编译通过。因为num1和num2属于字符串类型,不能执行取余操作。
代码二:
name='SteveJobs'
print(name[6])
结果为:J
代码三:
string_example='helloworlditheima'
index=string_example.index("itheima",0,10)
print(index)
答:由于没有在字符串中找到子串,index方法默认会抛出ValueError异常。
代码四:
string_example="helloworld"
print(string_example.strip())
结果为:HelloWorld(默认删除两头的空格)
代码五:
string_example="Hello"+'Python'
print(string_example)
结果为:HelloPython
第五章
一、选择题
关于列表的说法,描述有错误的是(D)。A.list是一个有序集合,没有固定大小B.list可以存放任意类型的元素C.使用list时,其下标可以是负数D.list是不可变的数据类型以下程序的输出结果是(B)。(提示:ord(“a”)==97)
list_demo=[1,2,3,4,5,'a','b']
print(list_demo[1],list_demo[5])
A.15 B.2a C.197 D.297
执行下面的操作后,list_two的值为(C)。
list_one=[4,5,6]
list_two=list_one
list_one[2]=3
A.[4,5,6] B.[4,3,6] C.[4,5,3] D.A,B,C都不正确
阅读下面的程序:
list_demo=[1,2,1,3]
nums=set(list_demo)
foriinnums:
print(i,end="")
程序执行的结果为(D)。 A.1213 B.213 C.321 D.123
下列选项中,正确定义了一个字典的是(D)。A.a=[‘a’,1,‘b’,2,‘c’,3]B.b=(‘a’,1,‘b’,2,‘c’,3)C.c={‘a’,1,‘b’,2,‘c’,3}D.d={‘a’:1,‘b’:2,‘c’:3}下列选项中,不能使用下标运算的是(C)。A.列表B.元组C.集合D.字符串下列程序执行后输出的结果为(A)。
x='abc'
y=x
y=100
print(x)
A.abc B.100 C.97,98,99 D.以上三项均是错误的
下列删除列表中最后一个元素的函数是(B)。A.delB.popC.removeC.cut下列函数中,用于返回元祖中元素最小值的是(C)。A.lenB.maxC.minD.tuple
二、判断题
列表的索引是从0开始的。(√)通过insert方法可以在制定位置插入元素。(√)使用下标能修改列表的元素。(√)列表的嵌套指的是一个列表的元素是另一个列表。(√)通过下标索引可以修改和访问元祖的元素。(×)字典中的值只能够是字符串类型。(×)在字典中,可以使用count方法计算键值对的个数。(×)
三、填空题
Python序列类型包括字符串、列表和元组三种,字典是Python中唯一的映射类型。Python中的可变数据类型有字典和列表。在列表中查找元素时可以使用notin和in运算符。如果要从小到大的排列列表的元素,可以使用sort方法实现。元组使用圆括号存放元素,列表使用的是方括号。
四、简答题
请简述元组、列表和字典的区别。(1)、外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据(2)、存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。(3)、访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。(4)、是否可变类型:列表是可变类型,元组是不可变类型,字典是可变类型。
五、程序分析题
阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
代码一:
tup=('a','b','c')
tup[3]='d'
print(tup)
答:程序运行错误,元组不能使用下标增加元素。
代码二:
dict_demo={'a':1,'b':2,'c':3}
print(dict_demo['a'])
结果为:1
代码三:
list_demo=[10,23,66,26,35,1,76,88,58]
list_demo.reverse()
print(list_demo[3])
list_demo.sort()
print(list_demo[3])
结果为: 1 26
第六章
一、单选题
阅读下面的程序:
deffunc():
print(x)
x=100
func()
执行上述语句后,输出的结果为(C)。 A.0B.100C.程序出现异常D.程序编译失败
下面关于函数的说法,错误的是(C)。A.函数可以减少代码的重复,使得程序更加模块化B.在不同的函数中可以使用相同名字的变量C.调用函数时,传入参数的顺序和函数定义时的顺序必须相同D.函数体中如果没有return语句,也会返回一个None值下列有关函数的说法中,正确的是(C)。A.函数的定义必须在程序的开头B.函数定义后,其中的程序就可以自动执行C.函数定义后需要调用才会执行D.函数体与关键字def必须左对齐下列函数调用使用的参数传递方式是(A)。
result=sum(num1,num2,num3)
A.位置绑定B.关键字绑定C.变量类型绑定D.变量名称绑定
使用(C)关键字创建自定义函数。A.functionB.funcC.defD.procedure使用(D)关键字声明匿名函数。A.functionB.funcC.defD.lambda
二、判断题
函数的名称可以随意命名。(×)不带return的函数代表返回None。(√)默认情况下,参数值和参数名是跟函数声明定义的顺序匹配的。(√)函数定义完成后,系统会自动执行其内部的功能。(×)函数体以冒号起始,并且是缩进格式的。(√)带有默认值的参数一定位于参数列表的末尾。(√)局部变量的作用域是整个程序,任何时候使用都有效。(×)匿名函数就是没有名字的函数。(√)
三、填空题
函数可以有多个参数,参数之间使用逗号分隔。使用return语句可以返回函数值并退出函数。通过return结束函数,从而选择性地返回一个值给调用方。函数能处理比声明时更多的参数,它们是不定长参数。在函数里面调用另外一个函数,这就是函数嵌套调用。在函数的内部定义的变量称作局部变量。全局变量定义在函数外,可以在整个程序范围内访问。如果想在函数中修改全部变量,需要在变量的前面加上global关键字。
四、简答题
请简述局部变量和全局变量的区别。局部变量:(1)、函数内部定义的变量;(2)、作用域是函数的内部。全局变量:(1)、函数外部定义的变量;(2)、作用域是整个程序。请简要说明函数定义的规则。(1)、以def关键字开头,后面接函数标识符名称和圆括号;(2)、给函数起名字的时候,规则跟变量的名字是一样的;(3)、任何传入参数和自变量必须放在圆括号中间;(4)、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明;(5)、函数内容以冒号起始,并且缩进;(6)、return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。
五、程序分析题
阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
代码一:
deffunc():
x=200
x=100
func()
print(x)
结果为:100
代码二:
deffunc():
globalx
x=200
x=100
func()
print(x)
结果为:200
代码三:
deffunc():
x=200
deffunc2():
print(x)
func2()
x=100
func()
print(x)
结果为: 200 100
第七章
一、单选题
关于装饰器,下列说法错误的是(B)。A.装饰器是一个包裹函数B.装饰器智能有一个参数C.通过在函数定义的面前加上@符号阿和装饰器名,使得装饰器函数生效D.如果装饰器带有参数,则必须在装饰函数的外层再嵌套一层函数下列函数中,用于使用函数对制定序列进行过滤的是(C)。A.map函数B.select函数C.filter函数D.reduce函数下列选项中,不能作为filter函数参数的是(D)。A.列表B.元组C.字符串D.整数阅读下面一段程序:
deffoo():
a=1
defbar():
a=a+1
returna
returnbar
print(foo()())
上述程序执行的结果为(A)。 A.程序出现异常 B.2 C.1 D.没有输出结果
二、判断题
闭包是内部函数对外部作用域的变量进行引用。(×)当外部函数执行结束,其内部闭包引用的变量一定会立即释放。(×)装饰器是一个变量。(×)装饰器函数至少要接收一个函数。(√)装饰器既能装饰带参数的函数,也能自己带参数。(√)如果map函数传入的两个序列个数不同,那么个数多的序列会把多余的元素删除。(×)map函数只能传递一个序列。(×)map传入函数的参数个数必须跟序列的个数一样。(√)filter传入的函数可以为None。(√)filter函数智能对序列执行过滤操作。(×)filter函数的返回值为字符串,它的序列类型一定是字符串。(√)
三、填空题
内部函数引用了外部函数作用域的变量,那么内部函数叫作闭包。装饰器本质上是一个函数。装饰器函数需要接收一个参数,这个参数表示被修饰的函数。在函数定义的前面添加装饰器名和@符号,实现对函数的包装。支持参数的装饰器函数需要再多一层内嵌函数。map函数会根据提供的函数对制定的序列做映射。map的两个序列的元素个数不一致,那么元素少的序列会以None补齐。filter函数会对制定序列执行过滤操作。filter传入的函数的返回值是布尔值。reduce传入的是带有两个参数的函数,该函数不能为None。
四、简答题
请简述闭包满足的三个条件。(1)、存在于嵌套关系的函数中;(2)、嵌套的内部函数引用了外部函数的变量;(3)、嵌套的外部函数会将内部函数名作为返回值返回。请简述装饰器的应用场景。(1)、引入日志;(2)、函数执行时间统计;(3)、执行函数前预备处理;(4)、执行函数后清理功能;(5)、权限校验;(6)、缓存。请简述map、filter、reduce函数的作用。(1)、map函数会根据提供的函数对指定的序列做映射。(2)、filter函数会对指定序列执行过滤操作。(3)、reduce函数会对参数序列中的元素进行累积。
五、程序分析题
阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
代码一:
deffunX():
x=5
deffunY():
nonlocalx
x+=1
returnx
returnfunY
a=funX()
print(a())
print(a())
print(a())
结果为: 6 7 8
代码二:
deffunX():
x=5
deffunY():
nonlocalx
x+=1
returnx
returnfunY
returnfunY
a=funX
print(a()())
print(a()())
print(a()())
结果为: 6 6 6
第八章
一、单选题
打开一个已有文件,然后在文件末尾添加信息,正确的打开方式为(C)。A.‘r’B.‘w’C.‘a’D.‘w+’假设文件不存在,如果使用open方法打开文件会报错,那么该文件的打开方式是下列哪种模式?(A)A.‘r’B.‘w’C.‘a’D.‘w+’假设file是文本文件对象,下列选项中,哪个用于读取一行内容?(C)A.file.read()B.file.read(200)C.file.readline()D.file.readlines()下列方法中,用于向文件中写出内容的是(B)。A.openB.writeC.closeD.read下列荣方法中,用于获取当前目录的是(D)。A.openB.writeC.GetcwdD.read下列语句打开文件的位置应该在(D)。
f=open('itheima.txt','w')
A.C盘根目录下 B.D盘根目录下 C.Python安装目录下 D.与源文件在相同的目录下
若文本文件abc.txt中的内容如下:
abcdef
阅读下面的程序:
file=open("abc.txt","r")
s=file.readline()
s1=list(s)
print(s1)
上述程序执行的结果为(C)。 A.[‘abcdef’] B.[‘abcdef’] C.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’] D.[‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,’’]
二、判断题
文件打开的默认方式是只读。(√)打开一个可读写的文件,如果文件存在会被覆盖。(√)使用write方法写入文件时,数据会追加到文件的末尾。(√)实际开发中,文件或者文件夹操作都要用到os模块。(√)read方法只能一次性读取文件中的所有数据。(×)
三、填空题
打开文件对文件进行读写,操作完成后应该调用close()方法关闭文件,以释放资源。seek方法用于移动指针到制定位置,该方法中offset参数表示要偏移的字节数。使用readlines方法把整个文件中的内容进行一次性读取,返回的是一个列表。os模块中的mkdir方法用于创建文件夹。在读写文件的过程中,tell方法可以获取当前的读写位置。
四、简答题
请简述文本文件和二进制文件的区别。文本文件存储的是常规字符串,由若干文本行组成,通常每行以换行符“”结尾。二进制文件把对象内容以字节串进行存储,无法用记事本或其他普通字处理软件直接进行编辑,无法被人类直接阅读和理解,需要使用专门的软件进行解码后读取、显示、修改或执行。请简述读取文件的几种方法和区别。(1)、使用read(size)方法可以指定读取的字节数,或者读取整个文件;(2)、使用readlines方法可以把整个文件的内容进行一次性读取;(3)、使用readline方法一行一行读数据。
第九章
一、单选题
下列程序运行以后,会产生如下(B)异常。
a
A.SyntaxErrorB.NameErrorC.IndexErrorD.KeyError
下列选项中,(C)是唯一不再运行时发生的异常。A.ZeroDivisionErrorB.NameErrorC.SyntaxErrorD.KeyError当try语句中没有任何错误信息时,一定不会执行(D)语句。A.tryB.elseC.finalyD.except在完整的异常语句中,语句出现的顺序正确的是(D)。A.try---->except----->else---->finallyB.try---->else---->except----->finallyC.try---->except----->finally—>elseD.try----->else---->else----->except下列选项中,用于触发异常的是(A)。A.tryB.catchC.raiseD.except关于抛出异常的说法中,描述错误的是(C)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息关于抛出异常的说法中,描述错误的是(D)。A.当raise指定异常的类名时,会隐式地创建异常类的实例B.显式地创建异常类实例,可以使用raise直接引发C.不带参数的raise语句,只能引发刚刚发生过的异常D.使用raise抛出异常时,无法指定描述信息
二、判断题
默认情况下,系统检测到错误后会终止程序。(√)在使用异常时必须先导入exceptions模块。(×)一个try语句只能对应一个except子句。(×)如果except子句没有指明任何异常类型,则表示捕捉所有的异常。(√)无论程序是否捕捉到异常,一定会执行finally语句。(√)所有的except子句一定在else和finally的前面。(√)
三、填空题
Python中所有的异常类都是Exception子类。当使用序列中不存在的索引时,会引发IndexError异常。一个try语句智能对应一个finally子句。当约束条件不满足时,assert语句会触发AssertionError异常。如果在没有except的try语句中使用else语句,会引发语法错误。
四、简答题
请简述什么是异常。在Python中,程序在执行的过程中产生的错误称为异常,比如列表索引越界、打开不存在的文件等。处理异常有哪些方式?try、except、else、finally语句。
第十章
一、单选题
下列关键字中,用来引入模块的是(C)。A.includeB.fromC.importD.continue关于引入模块的方式,错误的是(D)。A.importmathB.fromfibimportfibnacciC.formmathimport*D.from*importfib关于__name__的说法,下列描述错误的是(A)。A.它是Python提供的一个方法B.每个模块内部都有一个__name__属性C.当它的值为’__main__‘时,表示模块自身在运行D.当它的值不为’__main__'时,表示模块被引用
二、判断题
Python解释器会优先查看默认的路径搜索模块的位置。(×)每个Python文件就是一个模块。(√)当__name__属性的值为__main__时,代表该模块自身在运行。(√)包目录下必须有一个__init__py文件。(√)外部模块都提供了自动安装的文件,直接双击安装就行。(×)
三、填空题
要调用random模块的randint函数,书写形式为random.randint。每个Python文件都可以作为一个模块,模块的名字就是文件的名字。每个模块都有一个__name__属性,使程序块智能在模块自身运行时执行。为了更好地组织模块,通常会把多个模块放在一个包中。当程序中需要引入外部模块时,需要从外面下载并安装。如果要搜索模块的路径,可以使用sys模块的path变量。
四、简答题
解释Python脚本程序的"__name__"的作用。每个Python脚本在运行时都有一个“__name__”属性。如果脚本作为模块被导入,则其“__name__”属性的值被自动设置为模块名;如果脚本独立运行,则其“__name__”属性值被自动设置为“__name__”属性。利用“__name__”属性即可控制Python程序的运行方式。请简述Python解释器搜索模块位置的顺序。(1)、搜索当前目录,如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。(2)、如果都找不到。Python会继续查看默认路径。请简述模块的概念。在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块。请简述导入模块的方法。在Python中用关键字import来引入某个模块:(1)、导入模块,使用“import模块”引入;(2)、导入模块中的某个函数,使用“from模块名import函数名”引入;(3)、导入模块的全部内容,使用“from模块import*”。
第十一章
一、单选题
关于面向过程和面向对象,下列说法错误的是(B)。A.面向过程和面向对象都是解决问题的一种思路B.面向过程是基于面向对象的C.面向过程强调的是解决问题的步骤D.面向对象强调的是解决问题的对象关于类和对象的关系,下列描述正确的是(D)。A.类和面向对象的核心B.类是现实中事物的个体C.对象是根据类创建的,并且一个类只能对应一个对象D.对象描述的是现实的个体,它是类的实例构造方法的作用是(C)。A.一般成员方法B.类的初始化C.对象的初始化D.对象的建立构造方法是类的一个特殊方法,Python中它的名称为(C)。A.与类同名B._constructC._init_D.initPython类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员。A.selfB.meC.thisD.与类同名下列选项中,符合类的命名规范的是(A)。A.HolidayResortB.HolidayResortC.hoildayResortD.hoilidayresortPython中用于释放类占用资源的方法是(B)。A.__init__B.__del__C._delD.delete
二、判断题
面向对象是基于面向过程的。(×)通过类可以创建对象,有且只有一个对象实例。(×)方法和杉树的格式是完全一样的。(×)创建类的对象时,系统会自动调用构造方法进行初始化。(√)创建完对象后,其属性的初始值是固定的,外界无法进行修改。(×)使用del语句删除对象,可以手动释放它所占用的资源。(√)
三、填空题
在Python中,可以使用class关键字来声明一个类。面向对象需要把问题划分多个独立的对象,然后调用其方法解决问题。类的方法中必须有一个self参数,位于参数列表的开头。Python提供了名称为__init__的构造方法,实现让类的对象完成初始化。如果想修改属性的默认值,可以在构造方法中使用参数设置。
四、简答题
请简述self在类中的意义。不用实例化对象就能够在本类中访问自身的属性或方法。类是由哪三个部分组成的?类名,属性,方法。请简述构造方法和析构方法的作用。分别用于初始化对象的属性和释放类所占用的资源。
五、程序分析题
阅读下面的程序,分析代码是否能够编译通过。如果能编译通过,请列出运行的结果,否则请说明编译失败的原因。
代码一:
classPerson:
def__init__(self,name):
self.name=name
def__str__(self):
return"我的名字是"+self.name
person=Person("小明")
print(person)
结果为:我的名字是小明
代码二:
classPerson:
def__del__(self):
print("--del--")
person=Person()
delperson
print("--end--")
结果为: --del– --end–
第十二章
一、选择题
Python中定义私有属性的方法是(D)。A.使用private关键字B.使用public关键字C.使用__XX__定义属性名D.使用__XX定义属性名下列选项中,不属于面向对象程序设计的三个特征的是(A)。A.抽象B.封装C.继承D.多态以下C类继承A类和B类的格式中,正确的是(C)。A.classCA,B:B.classC(A:B)C.classC(A,B)D.classCAandB:下列选项中,与classPerson等价的是(C)。A.classPerson(Object)B.classPerson(Animal)C.classPerson(object)D.classPerson:object下列关于类属性和示例属性的说法,描述正确的是(B)。A.类属性既可以显示定义,又能在方法中定义B.公有类属性可以通过类和类的实例访问C.通过类可以获取实例属性的值D.类的实例只能获取实例属性的值下列选项中,用于标识为静态方法的是(C)。A.@classmethoodB.@instancemethodC.@staticmethodD.@privatemethod下列方法中,不可以使用类名访问的是(A)。A.实例方法B.类方法C.静态方法D.以上3项都不符合
二、判断题
Python中没有任何关键字区分公有属性和私有属性。(√)继承会在原有类的基础上产生新的类,这个新类就是父类。(×)带有两个下划线的方法一定是私有方法。(√)子类能继承父类的一切属性和方法。(×)子类通过重写继承的方法,覆盖掉跟父类同名的方法。(√)如果类属性和实例属性重名,对象有限访问类属性的值。(×)使用类名获取到的值一定是类属性的值。(√)静态方法中一定不能访问实例属性的值。(√)
三、填空题
如果属性名的前面加上了两个下划线,就表明它是私有属性。在现有类基础上构建新类,新的类称作子类,现有的类称作父类。父类的私有属性和方法是不能被子类继承的,更不能被子类访问。Python语言既支持单继承,也支持多继承。子类想按照自己的方式实现方法,需要重写从父类继承的方法。子类通过super()可以成功地访问父类的成员。位于类内部、方法外部的方法是类方法。类方法是类拥有的方法,使用修饰器@classmethod来标识。
四、简答题
请简述如何保护类的属性。(1)、把属性定义为私有属性,即在属性名的前面加上两个下划线;(2)、添加用于设置或者获取属性值的两个方法供外界调用。什么是继承?类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类,现有类被称作父类,子类会自动拥有父类的属性和方法。请简述私有属性无法访问的原理。当在一个类的内部定义了私有方法或者私有属性的时候,Python在运行的过程中,把属性或者方法的名字进行了修改,即在属性或者方法名称的前面加上“_类名”,导致原有的方法无法访问到。什么是多态?在Python中,多态是指在不考虑对象类型的情况下使用对象。请简述实例方法、类方法和静态方法的区别。(1)、类方法需要使用@classmethod进行标识,该方法可以访问类属性,无法访问实例属性,可以通过类实例和类进行调用。(2)、静态方法使用@staticmethod进行标识,该方法无法访问实例属性和类属性,起到类似于函数的作用,使用类或者类实例进行调用。(3)、实例方法直接在类中使用def进行定义,可以访问其实例属性和类属性,使用类实例进行调用。(4)、如果要修改实例属性的值,就直接使用实例方法;如果要修改类属性的值,就直接使用类方法;如果是辅助功能,比如打印菜单,这时可以考虑使用静态方法,可以在不创建对象的前提下使用。请简述Python中以下划线开头的变量名的特点。在Python中,以下划线开头的变量名有着特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:(1)、_xx:这样的对象叫做保护变量,不能用frommoduleimport*导入,只有类对象和子类对象能够访问这些变量。(2)、__xx__:系统定义的特殊成员名字。(3)、__xx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名.__类名__xx”这样特殊的方式来访问。Python中没有纯粹的C++意义上的私有成员。
END
如果本文有什么写的不对的地方或有什么更好地建议和想法,欢迎在下方评论留言或私信我,大家一起进步学习!
Python要处理的对象有:数字,字符串,列表,元组,字典,集合,文件,函数,方法,类,模块。
数字:很明显,像 1、3.5、-0.5
字符串:用引号表示,’123’ , ’rfv’, ’myname888’
列表:用[ ]表示,[1 , 3 , a , ‘wsx’]
元组:用( )表示,(1 , 3 , a , ‘wsx’)
字典:用{ }表示,{‘name’ : ‘peter’ , ‘score’ :98,’sex’ : ‘male’} 里面有key值,value值,一一对应。
集合:用[ ]表示,但里面只有key值,没有value值。
文件:既是存储在磁盘等地方的数据对象,可以理解为连续的字节序列。
★函数:pyhon里自带的像cos(), tan()等, 还有用def 语句定义的一段,作为自定义函数。
★方法: 即对象自身所带的内在一种处理方式,类似于属性。
★类:面向对象编程的重要概念,用class 语句定义一段,作为类。
模块:把相类似,相同的功能的函数放在一起,就是一个模块,上一节中讲python可以做很多事情,不同的事情,就调用不同的模块。比如做网站开发,和做数据分析,就调用不同模块了。
相关问题推荐
换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...
十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...
前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...
迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...
python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写
第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...
head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...
挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了
Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...
相当于 ... 这里不是注释
还有FIXME
python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。
单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:# 单行注释print(hello world)注释可以放在代码上面也可以放在代...
主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...
或许是里面有没被注释的代码
自学的话要看个人情况,可以先在B站找一下视频看一下