第1章、简介及示例
1-01 Python简介随堂测验
1、Python的优点不包括( )。
A、简单易学
B、免费开源
C、丰富的库
D、强制缩进
参考答案:D
2、使用Python进行系统编程时,利用( )可以方便地进行系统维护和管理。
A、API
B、Tkinter/PyQT
C、Numpy
D、DB-API
参考答案:A
1-02程序基础和Python编程环境随堂测验
1、( )是计算机完成的一个最基本的操作。
A、程序
B、指令
C、代码
D、命令
参考答案:B
2、Python程序在执行一次之后会自动生成扩展名为( )的字节码文件,以提高运行效率。
A、.py
B、.pyc
C、.pyb
D、.pyf
参考答案:B
3、Python语言环境的提示符是>>>。
参考答案:正确
1-03HelloWorld程序随堂测验
1、在Python编程环境提示符下直接输入Python代码并执行的运行方式称为( )。
A、交互式运行
B、脚本式运行
C、代码式运行
D、即时式运行
参考答案:A
2、Python3.x环境创建Python脚本文件时,需要将文件编码格式设置为( )。
A、ANSI
B、GBK
C、UTF-8
D、UNICODE
参考答案:C
3、注释的作用是增强程序可读性,并不会实际运行。
参考答案:正确
1-04输入、输出及IDLE环境介绍随堂测验
1、下列选项中,用于接收标准输入数据(即从键盘输入)、返回为string类型(字符串)的函数是( )。
A、eval
B、input
C、print
D、get
参考答案:B
2、下列选项中,用于将各种类型的数据(字符串、整数、浮点数、列表、字典等)输出到屏幕上的函数是( )。
A、eval
B、input
C、print
D、get
参考答案:C
3、调试是为了解决语法错误。
参考答案:错误
第一章单元测试
1、Python程序在执行一次之后会自动生成扩展名为( )的字节码文件,以提高运行效率。
A、.py
B、.pyc
C、.pyb
D、.pyf
参考答案:B
2、Python3.x环境创建Python脚本文件时,需要将文件编码格式设置为( )。
A、ANSI
B、GBK
C、UTF-8
D、UNICODE
参考答案:C
3、下列选项中,用于将各种类型的数据(字符串、整数、浮点数、列表、字典等)输出到屏幕上的函数是( )。
A、eval
B、input
C、print
D、get
参考答案:C
4、Python是一种( )语言。
A、编译型语言
B、解释型语言
C、高级语言
D、低级语言
参考答案:BC
5、Python的运行方式包括( )。
A、交互式运行
B、脚本式运行
C、代码式运行
D、即时式运行
参考答案:AB
6、Python程序使用( )进行多行注释。
A、三个连续单引号
B、三个连续双引号
C、分号
D、井号
参考答案:AB
7、下列选项中,属于IDLE窗口模式的是( )。
A、Shell
B、Script
C、Editor
D、Window
参考答案:AC
8、解释是将源代码全部翻译成机器指令,再加上一些描述信息,生成可执行文件。
参考答案:错误
9、Python程序中每条语句以分号结尾。
参考答案:错误
10、程序执行时遇到断点就暂停执行,并且可以查看当前各变量的状态。
参考答案:正确
第2章、基础语法
2-01变量的定义随堂测验
1、下列选项中,( )不是常量。
A、12
B、35.7
C、'Python'
D、abc
参考答案:D
2、通过语句“m,n=3,5”,定义了( )个变量。
A、0
B、1
C、2
D、报错
参考答案:C
3、Python中的变量在使用前必须先定义。
参考答案:错误
2-02Number数据类型随堂测验
1、执行“print(0o20)”,则在屏幕上会输出( )。
A、20
B、0o20
C、16
D、32
参考答案:C
2、执行“print(0x20)”,则在屏幕上会输出( )。
A、20
B、0x20
C、16
D、32
参考答案:D
3、1.25e3表示浮点数1250.0的科学记数法表示方式。
参考答案:正确
2-03String数据类型随堂测验
1、下列选项中,执行时会报错的语句是( )。
A、int('23')
B、int('23+1')
C、int('23',8)
D、int('2a',16)
参考答案:B
2、下列选项中,执行时不会报错的语句是( )。
A、int('23.5')
B、float('23.5+1')
C、float('23.5')
D、int('2a',8)
参考答案:C
3、已知s="学习",则执行s[0]='复'后s中存储的字符串被修改为“复习”。
参考答案:错误
2-04List数据类型随堂测验
1、下列选项中,描述错误的选项是( )。
A、列表中的元素类型必须相同
B、列表中的元素之间用逗号分隔
C、列表中的元素可以是列表类型
D、列表中可以包含数字类型的元素
参考答案:A
2、已知ls=[12,34.5,True,'test',3+5j],则下列选项中,输出结果为“['test']”的选项是( )。
A、ls[3]
B、ls[4]
C、ls[3:4]
D、ls[4:5]
参考答案:C
3、通过下标“[]”不仅可以访问列表中的某个元素,还可以对元素进行修改。
参考答案:正确
2-05Tuple数据类型随堂测验
1、已知t=(12,34.5,True,'test',3+5j),则下列选项中,输出结果为“('test',)”的选项是( )。
A、t[3]
B、t[4]
C、t[3:4]
D、t[4:5]
参考答案:C
2、已知t=(12,1.5,[True,3+5j]),则下列选项中,执行时不会报错的语句包括( )。
A、t[2]=1
B、t[2:]=1
C、t[2][1]='test'
D、print(t[2])
参考答案:CD
3、通过下标“[]”不仅可以访问元组中的某个元素,还可以对元素进行修改。
参考答案:错误
2-06Set数据类型随堂测验
1、下列选项中,执行时会报错的语句是( )。
A、set('Python')
B、set(35.2,True)
C、set([35.2,True])
D、set((35.2,True))
参考答案:B
2、下列选项中,执行时不会报错的语句是( )。
A、{['Python',True]}
B、{3.5,[1.2,True]}
C、{3.5,{1.2,True}}
D、{3.5,1.2,True}
参考答案:D
3、通过“{}”可以创建一个空集合。
参考答案:错误
2-07Dictionary数据类型随堂测验
1、下列选项中,错误的描述是( )。
A、字典中的每一个元素是一个键:值对
B、字典中不同元素的键不能相同
C、字典中不同元素的值不能相同
D、通过“{}”可以创建一个空字典
参考答案:C
2、下列选项中,不能创建字典对象的语句是( )。
A、{'one':1, 'two':2, 'three':3}
B、dict('one':1, 'two':2, 'three':3)
C、dict([('one',1), ('two',2), ('three',3)])
D、dict(zip(['one','two','three'], [1,2,3]))
参考答案:B
2-08占位运算符和算术运算符随堂测验
1、下列占位运算符中,表示有符号整型十进制数的占位符是( )。
A、%d
B、%%
C、%f
D、%s
参考答案:A
2、3**4的运算结果为( )。
A、12
B、81
C、7
D、报错
参考答案:B
2-09赋值运算符、比较运算符和逻辑运算符随堂测验
1、下列选项中,可以用于判断c中保存的字符是否是英文字母的表达式是( )。
A、c>='a' and c<='Z'
B、c>='A' and c<='z'
C、c>='a' and c<='z' and c>='A' and c<='Z'
D、c>='a' and c<='z' or c>='A' and c<='Z'
参考答案:D
2、已知a=15,则执行“a%=6”后,a的值为( )。
A、15
B、2.5
C、3
D、2
参考答案:C
2-10位运算符随堂测验
1、十进制数37转为二进制数结果为( )。
A、100101B
B、101001B
C、100100B
D、100001B
参考答案:A
2、7^10的运算结果为( )。
A、17
B、15
C、13
D、2
参考答案:C
2-11身份运算符和成员运算符随堂测验
1、程序在运行时,输入数据和输出数据都是存放在( )中。
A、外存
B、内存
C、CPU
D、硬盘
参考答案:B
2、下列选项中,返回结果为True的表达式为( )。
A、1 in {'ab':1}
B、'ab' in 'abc'
C、'ac' in 'abc'
D、'ab' in ['abc',1]
参考答案:B
2-12序列运算符和运算符优先级随堂测验
1、3*5**2的运算结果为( )。
A、30
B、225
C、75
D、报错
参考答案:C
2、已知x=5,则执行“x*=3+6”后,x的值为( )。
A、15
B、21
C、45
D、报错
参考答案:C
3、表达式a=b=1中两个运算符的运算顺序是从右至左。
参考答案:正确
2-13条件语句概述随堂测验
1、在绘制流程图时,条件判断应放在( )中。
A、圆角矩形
B、圆
C、矩形框
D、菱形框
参考答案:D
2、在绘制流程图时,只有( )后面允许有多个分支。
A、圆角矩形
B、圆
C、矩形框
D、菱形框
参考答案:D
3、伪代码必须符合Python语言的语法要求。
参考答案:错误
2-14条件语句实现和pass随堂测验
1、下面程序的输出结果是( )。 score=80 if score<60: print('成绩为%d'%score, end=',') print('不及格')
A、成绩为80,不及格
B、成绩为80
C、不及格
D、无输出
参考答案:C
2、下面程序的输出结果是( )。 score=80 if score<60: print('不及格') else: pass
A、不及格
B、pass
C、报错
D、无输出
参考答案:D
2-15循环语句概述和for循环随堂测验
1、已知有代码“for x in y:”,则y必然是一个( )。
A、可哈希对象
B、可迭代对象
C、列表对象
D、集合对象
参考答案:B
2、print(list(range(5)))的输出结果为“[0, 1, 2, 3, 4] ”。
参考答案:正确
2-16while循环和索引随堂测验
1、下面程序的输出结果是( )。 m=5 while(m==0): m-=1 print(m)
A、0
B、4
C、5
D、-1
参考答案:C
2、已知t=(5,10,15),则list(range(len(t)))的输出结果是[1, 2, 3]。
参考答案:错误
2-17break、continue和else随堂测验
1、用于跳出循环的命令是( )。
A、break
B、continue
C、else
D、pass
参考答案:A
2、用于结束本次循环并开始下一次循环的命令是( )。
A、break
B、continue
C、else
D、pass
参考答案:B
第二章单元测试
1、执行“print(0o20)”,则在屏幕上会输出( )。
A、20
B、0o20
C、16
D、32
参考答案:C
2、下列选项中,执行时会报错的语句是( )。
A、int('23')
B、int('23+1')
C、int('23',8)
D、int('2a',16)
参考答案:B
3、已知ls=[12,34.5,True,'test',3+5j],则下列选项中,输出结果为“['test']”的选项是( )。
A、ls[3]
B、ls[4]
C、ls[3:4]
D、ls[4:5]
参考答案:C
4、下列选项中,不能创建字典对象的语句是( )。
A、{'one':1, 'two':2, 'three':3}
B、dict('one':1, 'two':2, 'three':3)
C、dict([('one',1), ('two',2), ('three',3)])
D、dict(zip(['one','two','three'], [1,2,3]))
参考答案:B
5、下面程序的输出结果是( )。 score=80 if score<60: print('成绩为%d'%score, end=',') print('不及格')
A、成绩为80,不及格
B、成绩为80
C、不及格
D、无输出
参考答案:C
6、已知有代码“for x in y:”,则y的数据类型可以是( )。
A、列表
B、元组
C、数值
D、字符串
参考答案:ABD
7、下列选项中,+作为拼接运算符使用的表达式是( )。
A、[1.2]+[2.5]
B、1.2+2.5
C、'abc'+'def'
D、[1.2+2.5]
参考答案:AC
8、下列选项中,可以用于判断x和y是否对应同样存储单元的语句是( )。
A、x==y
B、x is y
C、id(x)==id(y)
D、not x!=y
参考答案:BC
9、已知两个数某个二进制位的值分别是0和1,结果位的值为1,则正在做的位运算可能为( )。
A、^
B、|
C、&
D、~
参考答案:AB
10、下列占位运算符中,表示有符号浮点型十进制数的占位符是( )。
A、%f
B、%d
C、%F
D、%s
参考答案:AC
11、已知s="学习",则执行s[0]='复'后s中存储的字符串被修改为“复习”。
参考答案:错误
12、通过下标“[]”不仅可以访问元组中的某个元素,还可以对元素进行修改。
参考答案:错误
13、执行“print('%.2f%%'%52.50)”,输出结果为“52.50%”。
参考答案:正确
14、二进制数转十进制数的规则是“按权展开求和”。
参考答案:正确
15、print(list(range(5)))的输出结果为“[0, 1, 2, 3, 4] ”。
参考答案:正确
第二章 编程练习
1、输入n,输出n是奇数或者n是偶数
参考答案:暂无答案
第二章 编程练习2
1、使用for循环编写程序实现以下功能:计算1-1/3+1/5-1/7+...-1/99+......,结果保留2位小数。
参考答案:暂无答案
第3章、函数
3-01函数的定义与调用随堂测验
1、在完成一项较复杂的任务时,我们通常会将任务分解成若干个子任务,通过完成这些子任务逐步实现任务的整体目标,采用这种思想的程序设计方法称为( )程序设计方法。
A、面向对象
B、面向类
C、结构化
D、分解化
参考答案:C
2、Python中的函数定义通过define关键字完成。
参考答案:错误
3-02形参和实参随堂测验
1、定义函数时函数名后面的一对小括号中给出的参数称为( )。
A、实参
B、形参
C、类型参数
D、名字参数
参考答案:B
2、调用函数时函数名后面的一对小括号中给出的参数称为( )。
A、实参
B、形参
C、类型参数
D、名字参数
参考答案:A
3-03默认参数和关键字参数随堂测验
1、下面程序的输出结果是( )。 def StudentInfo(country='中国',name): print('%s,%s'%(name,country)) StudentInfo('美国','大卫')
A、大卫,美国
B、美国,大卫
C、大卫,中国
D、报错
参考答案:D
2、对于没有默认参数值的形参,在函数调用时必须为其指定实参。
参考答案:正确
3-04不定长参数随堂测验
1、不定长的位置参数在传递给函数时会被封装成( )。
A、元组
B、列表
C、集合
D、字典
参考答案:A
2、对于一个带不定长参数的函数,其普通形参可以有默认参数值。
参考答案:正确
3-05拆分参数列表随堂测验
1、已知函数调用Fun(**a),则a可能是( )。
A、元组
B、列表
C、集合
D、字典
参考答案:D
2、字典拆分出来的结果是作为关键字参数。
参考答案:正确
3-06返回值随堂测验
1、将一个函数的运算结果返回到函数调用的地方,应使用( )。
A、print
B、return
C、break
D、continue
参考答案:B
2、如果在一个函数中没有显示地写return语句,则该函数有一个隐式的什么数据都不返回的retrun语句。
参考答案:正确
3-07模块概述和import语句随堂测验
1、当要使用一个模块中的某些功能时,我们可以通过( )语句将该模块导入。
A、include
B、import
C、export
D、load
参考答案:B
2、通过import语句一次只能导入一个模块。
参考答案:错误
3-08全局变量__name__和系统模块随堂测验
1、一个脚本文件M.py单独执行时,其__name__变量的值为( )。
A、M
B、__main__
C、M.py
D、不存在
参考答案:B
2、每个模块中都有一个全局变量__name__。
参考答案:正确
3-09from...import随堂测验
1、已知M模块中有一个无参函数fun,且在脚本文件N.py中有“from M import fun”,则在N.py中调用M模块中fun函数的方式为( )。
A、fun()
B、N.fun()
C、M.fun()
D、N.M.fun()
参考答案:A
2、已知M模块中有两个函数f1和f2,则在脚本文件N.py中通过“from M import *”必然可以将M模块中的f1和f2导入。
参考答案:错误
3-10包随堂测验
1、已知在脚本文件N.py中有函数调用“A.B.C.d()”,则import语句的正确写法是( )。
A、from A.B import C
B、from A.B.C import d
C、import A.B.C
D、import A.B.C.d
参考答案:C
2、模块可以放在任何一个包或子包中。
参考答案:正确
3-11猴子补丁和第三方模块获取安装随堂测验
1、第三方模块的获取与安装可以使用( )工具。
A、pip
B、get
C、install
D、setup
参考答案:A
2、猴子补丁是指在运行时动态替换已有的代码,而不需要修改原始代码。
参考答案:正确
3-12变量的作用域和局部变量随堂测验
1、一个函数中定义的变量是( )
A、局部变量
B、全局变量
C、静态变量
D、函数变量
参考答案:A
2、在一个函数中定义的变量在另一个函数中不能使用。
参考答案:正确
3-13全局变量和global关键字随堂测验
1、所有函数之外定义的变量是( )。
A、局部变量
B、全局变量
C、静态变量
D、文件变量
参考答案:B
2、在所有函数外定义的变量就是全局变量。
参考答案:正确
3-14nonlocal关键字随堂测验
1、内层函数使用外层函数中定义的变量,应使用( )关键字。
A、local
B、nonlocal
C、global
D、nonglobal
参考答案:B
2、内层函数要使用外层函数定义的变量,必须使用nonlocal关键字。
参考答案:正确
3-15递归函数随堂测验
1、递归函数是指( )。
A、在一个函数内部通过调用自己完成问题的求解
B、在一个函数内部通过不断调用其他函数完成问题的求解
C、一个函数不断被其他函数调用完成问题的求解
D、把函数作为参数的一种函数
参考答案:A
2、对于计算1+2+…+n的这个问题,可以设计递归函数完成求解。
参考答案:正确
3-16高阶函数和lambda函数随堂测验
1、高阶函数是指( )。
A、在一个函数内部通过调用自己完成问题的求解
B、在一个函数内部通过不断调用其他函数完成问题的求解
C、一个函数不断被其他函数调用完成问题的求解
D、把函数作为参数的一种函数
参考答案:D
2、lambda函数可以作为实参传给高阶函数的形参。
参考答案:正确
3-17闭包随堂测验
1、对于闭包,定义在外层函数中但由内层函数使用的变量称为( )。
A、外层变量
B、闭包变量
C、自由变量
D、约束变量
参考答案:C
2、外层函数中定义的局部变量被内层函数使用,则每调用一次外层函数则会形成一个闭包。
参考答案:错误
3-18装饰器随堂测验
1、下列选项中,描述正确的是( )。
A、一个装饰器可以为多个函数注入代码
B、一个装饰器值可以为一个函数注入代码
C、一个函数可以注入多个装饰器的代码
D、一个函数值可以注入一个装饰器的代码
参考答案:AC
2、装饰器的作用是在不修改已有函数情况下向已有函数注入代码。
参考答案:正确
第三章单元测试
1、在完成一项较复杂的任务时,我们通常会将任务分解成若干个子任务,通过完成这些子任务逐步实现任务的整体目标,采用这种思想的程序设计方法称为( )程序设计方法。
A、面向对象
B、面向类
C、结构化
D、分解化
参考答案:C
2、定义函数时函数名后面的一对小括号中给出的参数称为( )。
A、实参
B、形参
C、类型参数
D、名字参数
参考答案:B
3、下面程序的输出结果是( )。 def StudentInfo(country='中国',name): print('%s,%s'%(name,country)) StudentInfo('美国','大卫')
A、大卫,美国
B、美国,大卫
C、大卫,中国
D、报错
参考答案:D
4、不定长的位置参数在传递给函数时会被封装成( )。
A、元组
B、列表
C、集合
D、字典
参考答案:A
5、已知函数调用Fun(**a),则a可能是( )。
A、元组
B、列表
C、集合
D、字典
参考答案:D
6、将一个函数的运算结果返回到函数调用的地方,应使用( )。
A、print
B、return
C、break
D、continue
参考答案:B
7、当要使用一个模块中的某些功能时,我们可以通过( )语句将该模块导入。
A、include
B、import
C、export
D、load
参考答案:B
8、一个脚本文件M.py单独执行时,其__name__变量的值为( )。
A、M
B、__main__
C、M.py
D、不存在
参考答案:B
9、全局变量的作用域是( )。
A、从定义变量的位置到文件结束位置
B、从定义变量的位置到函数结束位置
C、所有函数
D、整个程序
参考答案:D
10、对于闭包,定义在外层函数中但由内层函数使用的变量称为( )。
A、外层变量
B、闭包变量
C、自由变量
D、约束变量
参考答案:C
11、下列选项中,描述错误的是( )。
A、函数的形参名和实参名必须完全相同
B、在函数体中为形参赋值会影响对应实参的值
C、如果实参是列表等对象时,可在函数体中通过形参修改实参列表中对应元素的值
D、当有多个形参时,各形参之间用逗号分隔
参考答案:AB
12、下列选项中,描述错误的是( )。
A、对于有默认参数值的形参,在函数调用时可以不为其传实参
B、对于没有指定默认参数值的形参,如果在函数调用时没有为其传实参,则形参的值为None
C、对于有默认参数值的形参,如果在函数调用时为其指定实参,则该形参使用传入的实参值
D、如果多个形参具有默认参数值,则函数调用时这些形参或者都使用默认参数值或者都使用传入的实参值
参考答案:BD
13、已知M模块中有两个函数f1和f2,则在脚本文件N.py中要导入M模块的f1和f2,正确的写法是( )。
A、from M import f1,f2
B、from M import f1 and f2
C、from M import *
D、from M import f1 as f2
参考答案:AC
14、下列选项中,属于局部变量的是( )。
A、函数中定义的变量
B、函数的形参
C、函数外定义的变量
D、函数名
参考答案:AB
15、下列选项中,描述正确的是( )。
A、一个函数的函数体中可以包含另一个函数的定义
B、一个函数的函数体中可以包含另一个函数的调用
C、一个函数的函数体中不可以包含另一个函数的定义
D、一个函数的函数体中不可以包含另一个函数的调用
参考答案:AB
16、解释是将源代码全部翻译成机器指令,再加上一些描述信息,生成可执行文件。
参考答案:错误
17、Python程序中每条语句以分号结尾。
参考答案:错误
18、通过“{}”可以创建一个空集合。
参考答案:错误
19、二进制数转十进制数的规则是“按权展开求和”。
参考答案:正确
20、外层函数定义了局部变量x,如果内层函数只获取x的值、不修改x的值,则可以不使用nonlocal关键字。
参考答案:正确
第三章编程练习
1、编写程序实现以下功能:输入若干个整数(输入0结束),将不能被3整除的整数相加,并将求和结果输出。要求判断一个整数n是否能被另一个整数m整除的功能用一个函数实现。
参考答案:暂无答案
第4章、面向对象
4-01面向对象概述随堂测验
1、面向对象方法的基本观点是一切系统都是由( )构成。
A、类
B、对象
C、函数
D、方法
参考答案:B
2、利用一个类可以创建多个对象,且每个对象可以存储不同的数据。
参考答案:正确
4-02类的定义和创建实例随堂测验
1、类中的( )对应一个类可以用来保存哪些数据。
A、属性
B、方法
C、数据
D、对象
参考答案:A
2、类的封装性是指将一个数据相关的属性封装在一起。
参考答案:错误
4-03类属性定义及其访问随堂测验
1、已知Student类是一个空类,则通过“Student.name='unknown'”语句增加的属性可以通过( )访问。
A、类名或对象名
B、仅类名
C、仅对象名
D、无法访问
参考答案:A
2、为一个对象动态绑定的新属性,只能通过该对象访问。
参考答案:正确
4-04类中普通方法定义及调用随堂测验
1、第一个参数对应类的实例对象的方法是( )。
A、类方法
B、静态方法
C、内置方法
D、普通方法
参考答案:D
2、已知类的普通方法func有3个形参且都没有默认参数值,则调用该方法时必须传入对应的3个实参。
参考答案:错误
4-05私有属性随堂测验
1、已知一个类属性的名字是__id,则该属性是( )。
A、内置属性
B、私有属性
C、普通属性
D、外置属性
参考答案:B
2、已知Student类有一个属性__id,stu是Student类的对象,则通过“stu.__id='1810101'”可以将stu对象中的__id属性赋值为字符串'1810101'。
参考答案:错误
4-06构造方法随堂测验
1、构造方法的方法名是( )。
A、__construct__
B、__init__
C、__begin__
D、__start__
参考答案:B
2、构造方法可以没有形参。
参考答案:错误
4-07析构方法随堂测验
1、析构方法的方法名是( )。
A、__destruct__
B、__term__
C、__del__
D、__end__
参考答案:C
2、析构方法可以没有形参。
参考答案:错误
4-08常用内置方法随堂测验
1、已知stu是Student类对象,则执行“print(stu)”时会自动执行Student类的( )方法。
A、__init__
B、__str__
C、__format__
D、__print__
参考答案:B
2、__str__方法的返回值可以是整数。
参考答案:错误
4-09继承的概念随堂测验
1、如果一个类C1通过继承已有类C而创建,则将C1称作( )。
A、子类
B、基类
C、父类
D、超类
参考答案:A
2、基于已有的类创建新的类是面向对象中的多态性。
参考答案:错误
4-10子类的定义随堂测验
1、如果已A和B作为父类定义子类C,则定义C时第一行代码正确的写法是( )。
A、class C:A,B
B、class C:A,C:B
C、class C(A,B)
D、class C(A),C(B)
参考答案:C
2、已知A类中定义了方法fa1和fa2,B类中定义了方法fb,A是B的子类,则B类中包含了3个方法。
参考答案:错误
4-11方法重写和鸭子类型随堂测验
1、在执行同样代码的情况下,系统会根据对象实际所属的类去调用相应类中的方法,这个特性是类的( )。
A、封装性
B、继承性
C、多态性
D、自适应性
参考答案:C
2、方法重写是指子类可以对从父类中继承过来的方法进行重新定义,从而使得子类对象可以表现出与父类对象不同的行为。
参考答案:正确
4-12super方法随堂测验
1、用于获取父类代理对象的方法是( )。
A、parent
B、proxy
C、delegate
D、super
参考答案:D
2、使用获取到的父类代理对象可以在子类中调用被重写的父类方法。
参考答案:正确
4-13内置函数isinstance、issubclass和type随堂测验
1、判断一个对象所属的类是否是指定类或指定类的子类,应使用内置函数( )。
A、isinstance
B、issubclass
C、type
D、isclass
参考答案:A
2、已知B是A的父类,a是A类的对象,b是B类的对象,则“isinstance(a,type(b))”返回结果为True。
参考答案:正确
4-14类方法和静态方法随堂测验
1、类方法是指使用( )修饰的方法。
A、@classmethod
B、@class
C、@staticmethod
D、@static
参考答案:A
2、如果使用类的实例对象调用类方法,则类方法中的第一个参数指向该实例对象。
参考答案:错误
4-15动态扩展类与实例和__slots__变量随堂测验
1、已知A类中__slots__定义为“__slots__=('a1','a2')”,B类没有__slots__定义,B是A的子类,则B类可以动态扩展的属性包括( )。
A、a1
B、a2
C、a1和a2
D、任意属性
参考答案:D
4-16@property装饰器随堂测验
1、为A类中的t属性定义一个获取属性值的方法(即getter),则应使用( )装饰器。
A、@property
B、@t.getter
C、@property.getter
D、t.property.getter
参考答案:A
2、如果一个属性只有用于获取属性值的getter方法,而没有用于设置属性值的setter方法,则该属性是一个只读属性。
参考答案:正确
第四章单元测试
1、类中的( )对应一个类可以支持哪些操作。
A、属性
B、方法
C、数据
D、对象
参考答案:B
2、为A类中的t属性定义一个获取属性值的方法(即getter),则应使用( )装饰器。
A、'@property
B、@t.getter
C、@property.getter
D、t.property.getter
参考答案:A
3、类方法的第一个形参对应( )。
A、类
B、对象
C、第一个实参
D、第二个实参
参考答案:A
4、判断一个类是否是另一个类的子类,应使用内置函数( )。
A、isinstance
B、issubclass
C、type
D、isclass
参考答案:B
5、在A类的某个方法中,“super()”等价于( )。
A、super(A)
B、super(A,self)
C、super(self)
D、super
参考答案:B
6、在执行同样代码的情况下,系统会根据对象实际所属的类去调用相应类中的方法,这个特性是类的( )。
A、封装性
B、继承性
C、多态性
D、自适应性
参考答案:C
7、下列选项中,描述正确的是( )。
A、父类会继承子类中定义的所有属性和方法,也可以在父类中增加新的属性和方法
B、父类会继承子类中定义的所有属性和方法,在父类中不允许增加新的属性和方法
C、子类会继承父类中定义的所有属性和方法,也可以在子类中增加新的属性和方法
D、子类会继承父类中定义的所有属性和方法,在子类中不允许增加新的属性和方法
参考答案:C
8、已知stu1和stu2是Student类的两个对象,则执行“stu1>stu2”时会自动执行Student类的( )方法。
A、__gt__
B、__ge__
C、__lt__
D、__le__
参考答案:A
9、析构方法的方法名是( )。
A、__destruct__
B、__term__
C、__del__
D、__end__
参考答案:C
10、已知通过“stu=Student('1810101','李晓明')”可以创建一个Student类对象并赋给stu,则创建该对象时所执行的构造方法的形参个数(不考虑不定长参数的情况)为( )。
A、1
B、2
C、3
D、4
参考答案:C
11、我们使用对象名调用类中的一个普通方法,则该普通方法至少有( )个参数。
A、0
B、1
C、2
D、3
参考答案:B
12、已知Student类是一个空类,则通过“Student.name='unknown'”语句增加的属性可以通过( )访问。
A、类名或对象名
B、仅类名
C、仅对象名
D、无法访问
参考答案:A
13、已知在A类中定义了方法fa,在B类中定义了属性b,在C类中定义了方法fc和属性c,A是B的父类,B是C的父类,则B类中的成员包括( )。
A、fa
B、b
C、fc
D、c
参考答案:AB
14、下列选项中,描述正确的是( )。
A、在一个继承关系中只能有一个子类
B、在一个继承关系中只能有一个父类
C、一个类可能在一个继承关系中是子类、而在另一个继承关系中是父类
D、一个类可能在多个继承关系中是子类
参考答案:AC
15、下列选项中,描述正确的是( )。
A、如果一个类属性名是以两个下划线开头,则该类属性是私有属性
B、类中的私有属性只能在类内访问
C、类中的私有属性可以在类外访问,但不能直接用私有属性名
D、类中的方法不可以有默认参数值
参考答案:AC
16、下面选项中,描述正确的是( )。
A、可以基于一个已有类创建新类
B、定义类的同时必须定义好该类的所有属性和方法
C、定义一个类后还可以为其动态添加属性和方法
D、可以基于多个已有类创建新类
参考答案:ACD
17、如果一个属性只有用于设置属性值的setter方法,而没有用于获取属性值的getter方法,则该属性是一个只写属性。
参考答案:错误
18、已知B是A的父类,b是B类的对象,则“A==type(b)”返回结果为True。
参考答案:错误
19、使用获取到的父类代理对象可以在子类中调用被重写的父类方法。
参考答案:正确
20、方法重写是指子类可以对从父类中继承过来的方法进行重新定义,从而使得子类对象可以表现出与父类对象不同的行为。
参考答案:正确
21、如果一个子类有两个或更多父类,则这种继承关系称为多重继承。
参考答案:正确
第四章编程练习
1、请定义一个Circle类,具体要求为:(1)每个Circle类对象可以存储圆心和半径信息;(2)具有设置圆心和半径的方法SetCenter和SetRadius;(3)具有输出圆信息的方法PrintInfo;(4)具有计算圆面积的方法GetArea。
参考答案:暂无答案
第四章程序填空和程序改错
1、4-06程序填空。
参考答案:暂无答案
2、4-07程序填空。
参考答案:暂无答案
3、4-08程序填空
参考答案:暂无答案
4、4-10程序填空
参考答案:暂无答案
5、4-11程序填空
参考答案:暂无答案
6、4-12程序填空
参考答案:暂无答案
7、4-14程序填空
参考答案:暂无答案
8、4-15程序填空
参考答案:暂无答案
9、4-16程序改错
参考答案:暂无答案
10、4-04程序改错
参考答案:暂无答案
第5章、序列、集合和字典
5-01可变类型和不可变类型随堂测验
1、对于不可变类型的对象a,可以通过“a=b”修改a的值。
参考答案:正确
2、对于可变类型的对象a,通过“a=b”可以修改a的值,但赋值前和赋值后a所对应的内存地址可能会发生变化。
参考答案:正确
5-02创建列表和拼接列表随堂测验
1、已知“a=list((1,2))+list((2,3))”,则a的值是( )。
A、[1,2,3]
B、[1,2,2,3]
C、(1,2,3)
D、(1,2,2,3)
参考答案:B
2、list函数返回的结果必然是一个列表。
参考答案:正确
5-03复制列表元素随堂测验
1、已知“a=[1,2,3]”且“b=a”,则执行“a[1]=10”后,b的值为( )。
A、[10,2,3]
B、[1,10,3]
C、[1,2,10]
D、[1,2,3]
参考答案:B
2、已知“a=[1,2,3]”且“b=a[:]”,则执行“a[1]=10”后,b的值为( )。
A、[10,2,3]
B、[1,10,3]
C、[1,2,10]
D、[1,2,3]
参考答案:D
5-04列表元素的查找、插入和删除随堂测验
1、通过列表中的( )方法可以根据指定值查找第一个匹配的列表元素的位置。
A、index
B、find
C、search
D、at
参考答案:A
2、已知“ls=[0,1,2,3,4,5,6,7,8,9]”,则“del ls[7:9]”与“ls[7:9]=[]”得到的ls中的元素相同。
参考答案:正确
5-05列表元素的最大值、最小值、出现次数和列表长度随堂测验
1、计算列表ls中的元素个数应使用( )。
A、ls.count()
B、count(ls)
C、ls.len()
D、len(ls)
参考答案:D
2、通过“ls.max()”可以得到列表ls中最大元素的值。
参考答案:错误
5-06列表元素排序随堂测验
1、已知“ls=[1,3,2,5]”,则执行“ls.sort()”后ls的值为( )。
A、[1,3,2,5]
B、[1,2,3,5]
C、[5,3,2,1]
D、[5,2,3,1]
参考答案:B
2、列表的sort方法的key参数接收的函数必须有返回值。
参考答案:正确
5-07元组的操作随堂测验
1、已知“a=tuple([1,2])+tuple([2,3])”,则a的值是( )。
A、[1,2,3]
B、[1,2,2,3]
C、(1,2,3)
D、(1,2,2,3)
参考答案:D
2、通过“max(t)”可以得到元组t中最大元素的值。
参考答案:正确
5-08集合的创建和插入元素随堂测验
1、使用集合的update方法,要求传入的实参必须是( )。
A、元组
B、列表
C、可哈希对象
D、可迭代对象
参考答案:D
2、已知s={1,20,25},则通过“s.add([2,3])”可以向s中添加一个新的列表类型的元素。
参考答案:错误
5-09集合的运算随堂测验
1、如果要计算两个集合的交集,应使用集合中的( )方法。
A、intersection
B、union
C、difference
D、symmetric_difference
参考答案:A
2、已知s1和s2是两个集合,则“s1.issubset(s2)”与“s2.issuperset(s1)”返回结果必然相同。
参考答案:正确
5-10字典的创建和初始化随堂测验
1、已知“d1={'age':19}”,则执行“d1.fromkeys(['sno','name'])”后,d1中的元素个数为( )。
A、0
B、1
C、2
D、3
参考答案:B
2、已知“d1={'age':19}”,则执行“d2=d1.fromkeys(['sno','name'])”后,d1中的元素个数为( )。
A、0
B、1
C、2
D、3
参考答案:B
5-11字典元素的修改、插入和删除随堂测验
1、使用字典中的( )方法可以一次插入多个元素。
A、add
B、update
C、push
D、insert
参考答案:B
2、已知执行“d=dict(sno='1810100', name='李晓明', age=19)”,则执行“r=del d['age']”后,r的值为19。
参考答案:错误
5-12字典的浅拷贝和深拷贝随堂测验
1、已知“a=dict(x=1,y=2)”且“b=a”,则执行“a['y']=10”后,则print(b)的输出结果为( )。
A、{x=1,y=10}
B、{x=1,y=2}
C、{'x':1,'y':10}
D、{'x':1,'y':2}
参考答案:C
2、如果字典a中包含可变类型的元素,则在用a给b赋值时,应使用copy模块的deepcopy函数,以使得a和b中各元素的取值具有完全的独立性。
参考答案:正确
5-13判断字典中是否存在键及拼接两个字典随堂测验
1、已知“d=dict(x=1,y=2)”,则d.get('z')返回的结果是( )。
A、None
B、default
C、null
D、报错
参考答案:A
2、已知d1和d2是两个字典对象,则直接执行“dMerge=dict(d1,**d2)”与先执行“dMerge=d1.copy()”、再执行“dMerge.update(d2)”的效果完全相同。
参考答案:正确
5-14字典的其他常用操作随堂测验
1、已知“d=dict(x=1,y=2)”,则执行“d.clear()”后,“len(d)”返回的结果是( )。
A、0
B、1
C、2
D、报错
参考答案:A
2、通过“d.keys()”可以获取由字典d中所有键组成的一个对象。
参考答案:正确
5-15切片和列表生成表达式随堂测验
1、从一个序列对象中取部分元素形成一个新的序列对象的操作被称作( )。
A、选择
B、切片
C、子序列
D、投影
参考答案:B
2、列表生成表达式的返回结果是一个列表。
参考答案:正确
5-16生成器随堂测验
1、生成器解决了使用列表存储数据可能存在的( )问题。
A、内存不足
B、访问速度慢
C、元素值不能重复
D、元素可修改
参考答案:A
2、借助yield关键字可以利用函数实现生成器的功能。
参考答案:正确
5-17迭代器随堂测验
1、利用iter函数可以根据可迭代对象获取迭代器。
参考答案:正确
2、能够使用next函数获取下一个元素值的对象都是迭代器。
参考答案:错误
第五章单元测试
1、已知“a=list('my')+list('book')”,则a的值是( )。
A、'['m','y','b','o','k']
B、['m','y','b','o','o','k']
C、'mybook'
D、'mybok'
参考答案:B
2、已知“a=[1,2,3]”且“b=a[:]”,则执行“a[1]=10”后,b的值为( )。
A、[10,2,3]
B、[1,10,3]
C、[1,2,10]
D、[1,2,3]
参考答案:D
3、已知“a=[1,[2,3]]”且“b=a[:]”,则执行“a[1]=10”后,b的值为( )。
A、[1,10]
B、[1,[2,3]]
C、[1,[10,3]]
D、报错
参考答案:B
4、通过列表中的( )方法可以将一个元素插入到列表的指定位置。
A、insert
B、append
C、add
D、push
参考答案:A
5、计算列表ls中的元素个数应使用( )。
A、ls.count()
B、count(ls)
C、ls.len()
D、len(ls)
参考答案:D
6、已知“ls=[1,3,2,5]”,则执行“ls.sort(reverse=True)”后ls的值为( )。
A、[1,3,2,5]
B、[1,2,3,5]
C、[5,3,2,1]
D、[5,2,3,1]
参考答案:C
7、已知“a=tuple('my')+tuple('book')”,则a的值是( )。
A、'('m','y','b','o','k')
B、('m','y','b','o','o','k')
C、'mybook'
D、'mybok'
参考答案:B
8、使用集合的add方法,要求传入的实参必须是( )。
A、元组
B、列表
C、可哈希对象
D、可迭代对象
参考答案:C
9、如果要计算两个集合的对称差集,应使用集合中的( )方法。
A、intersection
B、union
C、difference
D、symmetric_difference
参考答案:D
10、已知“d1={'age':19}”,则执行“d2=d1.fromkeys(['sno','name'])”后,d1中的元素个数为( )。
A、0
B、1
C、2
D、3
参考答案:B
11、使用字典中的( )方法可以删除指定键的元素。
A、del
B、delete
C、pop
D、remove
参考答案:C
12、已知“a=dict(x=1,y=2)”且“b=a.copy()”,则执行“a['y']=10”后,则print(b)的输出结果为( )。
A、{x=1,y=10}
B、{x=1,y=2}
C、{'x':1,'y':10}
D、{'x':1,'y':2}
参考答案:D
13、已知“t=tuple(range(0,10))”,则print(t[-1:3:-2])的结果是( )。
A、[9,7,5]
B、(9,7,5)
C、[9,7,5,3]
D、(9,7,5,3)
参考答案:B
14、使用集合的add方法,传入的实参可以是( )。
A、数字
B、元组
C、列表
D、字符串
参考答案:ABD
15、已知s1和s2是两个集合,则返回结果必然为True的选项包括( )。
A、s1.union(s2).issubset(s1)
B、s1.union(s2).issuperset(s1)
C、s1.difference(s2).issubset(s1)
D、s1.difference(s2).issuperset(s1)
参考答案:BC
16、对于一个字典对象d,如果需要判断d中是否包含键为'x'的元素(包含返回True,不包含返回False),则可以使用的语句包括( )。
A、d.get('x')!=None
B、d.get('x')!=default
C、'x' in d
D、d.has('x')
参考答案:AC
17、下列选项中,描述正确的是( )。
A、所有迭代器都是可迭代对象
B、所有可迭代对象都是迭代器
C、通过“isinstance(x,Iterator)”可以判断x是否是迭代器
D、如果一个可迭代对象可以通过next函数不断获取下一个元素的值,则它是一个迭代器
参考答案:ACD
18、通过“min(ls)”可以得到列表ls中最小元素的值。
参考答案:正确
19、已知“t=(True)”,则t是一个元组。
参考答案:错误
20、已知s={1,20,25},则通过“s.add((2,3))”可以向s中添加一个新的元组类型的元素。
参考答案:正确
21、已知s1和s2是两个集合,则执行“s1.union(s2)”后,s1中的元素是原来s1和s2两个集合中的元素的并集。
参考答案:错误
22、能够使用next函数获取下一个元素值的对象都是迭代器。
参考答案:错误
第五章编程练习
1、编写程序实现以下功能:根据指定值从一个列表中查找所有匹配元素的位置,要求使用列表中的index方法进行查找。
参考答案:暂无答案
第6章、字符串
6-01创建字符串和引号的区别随堂测验
1、使用三引号创建字符串时允许直接将字符串写成多行的形式。
参考答案:正确
2、使用三引号创建字符串时不允许使用转义符。
参考答案:错误
6-02字符串比较随堂测验
1、使用strcmp函数可以进行字符串的比较。
参考答案:错误
6-03字符串切割随堂测验
1、已知“str='a**b*c*d'”,则“str.split('*',2)”的返回结果是( )。
A、['a','','b','c','d']
B、['a','b','c','d']
C、['a','','b*c*d']
D、['a','b','c*d']
参考答案:C
2、已知“str='a**b*c*d'”,则“str.split('**',2)”的返回结果是( )。
A、['a','b','c','d']
B、['a','b','c*d']
C、['a','b*c*d']
D、报错
参考答案:C
6-04字符串检索和替换随堂测验
1、已知“str='Python#C++##Python'”,则“str.find('Python')”返回的结果是( )。
A、0
B、12
C、-1
D、报错
参考答案:A
2、已知“str='abcdefabc'”,则执行“str.replace('abc','cba')”后,str中保存的字符串为'cbadefcba'。
参考答案:错误
6-05去除字符串空格和大小写转换随堂测验
1、如果要去除字符串中的所有空格,可以使用字符串的( )方法。
A、strip
B、lstrip
C、rstrip
D、replace
参考答案:D
2、已知“str='Like'”,则执行“str.upper()”后,str保存的数据为字符串'LIKE'。
参考答案:错误
6-07占位符和format方法随堂测验
1、已知n=31,则“print('%X'%n)”执行后的输出结果为( )。
A、31
B、1F
C、1f
D、37
参考答案:B
2、使用字符串的format方法进行字符串格式化时,替换字段在字符串中需要用一对大括号括起来。
参考答案:正确
6-08正则表达式的基础语法随堂测验
1、与正则表达式“^ab[a-z]+c”匹配的字符串是( )。
A、abdec
B、abc
C、ab0c
D、cabc
参考答案:A
2、与正则表达式“^ab[a-z]?c”匹配的字符串是( )。
A、abdec
B、abc
C、ab0c
D、cabc
参考答案:B
6-09re模块使用-compile和match随堂测验
1、使用re.match函数进行正则表达式匹配时,如果要忽略大小写,则应在匹配选项中指定( )。
A、re.A
B、re.I
C、re.M
D、re.S
参考答案:B
2、使用re.match函数进行正则表达式匹配时,如果指定的匹配选项中包括re.MULTILINE,则会对每一行开头的若干字符作匹配。
参考答案:错误
6-10re模块使用-search随堂测验
1、re.search(r'py$','puppy')返回的是一个Match对象。
参考答案:正确
2、re.search(r'^py','puppy\npython',re.M)返回的是一个Match对象。
参考答案:正确
6-11re模块使用-匹配对象随堂测验
1、已知m是一个Match对象,则m.group(1)返回的结果必然是一个( )。
A、字符串
B、元组
C、列表
D、不确定
参考答案:A
2、已知m是一个Match对象,则m.start(0)返回的是第1个分组的匹配结果字符串在原字符串中的开始位置。
参考答案:错误
6-12re模块使用-findall和finditer随堂测验
1、re.findall函数的返回结果必然是( )。
A、列表
B、元组
C、字符串
D、迭代器
参考答案:A
2、re.finditer函数的返回结果必然是( )。
A、列表
B、元组
C、字符串
D、迭代器
参考答案:D
6-13re模块使用-split、sub和subn随堂测验
1、re.subn函数返回的结果是( )。
A、字符串
B、元组
C、列表
D、不确定
参考答案:B
2、re.split(r'<[^<]*?>','
t
c
')的返回结果是['t','c']。
参考答案:错误
第六章单元测试
1、已知“str='a**b*c*d'”,则“str.split('**',2)”的返回结果是( )。
A、['a','b','c','d']
B、['a','b','c*d']
C、['a','b*c*d']
D、报错
参考答案:C
2、已知“str='a\rb\r\nc\n'”,则“str.splitlines(True)”的返回结果是( )。
A、['a','b','c']
B、['a\r','b\r\n','c\n']
C、['a\r','b\r','c']
D、['a\r','b','c']
参考答案:B
3、已知“str='Python#C++##Python'”,则“str.rfind('Python')”返回的结果是( )。
A、0
B、12
C、-1
D、报错
参考答案:B
4、如果要去除字符串中头部的空格,可以使用字符串的( )方法。
A、strip
B、lstrip
C、rstrip
D、replace
参考答案:B
5、如果要将字符串中的首字母大写、其他字母都小写,应使用字符串的( )方法。
A、capitalize
B、lower
C、upper
D、swapcase
参考答案:A
6、已知f=1234.5,则“print('%.2e'%f)”执行后的输出结果为( )。
A、1.2345e+03
B、1.23e+03
C、1.2e+03
D、1234.50
参考答案:B
7、与正则表达式“^ab[a-z]?c”匹配的字符串是( )。
A、abdec
B、abc
C、ab0c
D、cabc
参考答案:B
8、使用re.match函数进行正则表达式匹配时,如果要忽略大小写,则应在匹配选项中指定( )。
A、re.A
B、re.I
C、re.M
D、re.S
参考答案:B
9、已知m是一个Match对象,则m.groups()返回的结果必然是一个( )。
A、字符串
B、元组
C、列表
D、不确定
参考答案:B
10、re.finditer函数的返回结果必然是( )。
A、列表
B、元组
C、字符串
D、迭代器
参考答案:D
11、re.subn函数返回的结果是( )。
A、字符串
B、元组
C、列表
D、不确定
参考答案:B
12、下列选项中,返回结果为True的表达式是( )。
A、'Python'>'python'
B、'Python3.7'>'Python'
C、'Python'!='python'
D、'C++'<'Python'
参考答案:BCD
13、下列选项中,按照从左至右的顺序进行字符串检索的方法包括( )。
A、find
B、rfind
C、index
D、rindex
参考答案:AC
14、与正则表达式“<[^"]*?>”匹配的字符串包括( )。
A、
B、
C、
D、<>
参考答案:ABD
15、如果要替换字符串中与指定正则表达式匹配的子串,可以使用re模块的( )函数。
A、replace
B、split
C、sub
D、subn
参考答案:CD
16、使用三引号创建字符串时不允许使用转义符。
参考答案:错误
17、已知“str='abcdefabc'”,则执行“str.replace('abc','cba')”后,str中保存的字符串为'cbadefcba'。
参考答案:错误
18、已知“str='{s1}的职业是{s2}'”,则执行“str.format(s2='教师',s1='李晓明')”会因传参顺序不正确而报错。
参考答案:错误
19、正则表达式“^ab[\s\S]*c$”可以与任一以“ab”开头、以“c”结尾的字符串匹配。
参考答案:正确
20、re.match(r'py$','puppy')返回的是一个Match对象。
参考答案:错误
21、re.split(r'<[^<]*?>','
t
c
')的返回结果是['t','c']。
参考答案:错误
第六章编程练习
1、编写程序实现以下功能:利用正则表达式得到一段HTML文本中所有超链接对应的网址。
参考答案:暂无答案
第7章、IO编程与异常
7-02os模块的使用-目录创建和删除随堂测验
1、os模块中用于依次创建路径中所有不存在的目录的函数是( )。
A、makedirs
B、makedir
C、mkdirs
D、mkdir
参考答案:A
2、下面选项中,描述错误的是( )。
A、如果要创建的目录已经存在,则os.mkdir函数会报错
B、如果要创建的目录已经存在,则os.makedirs函数不会报错
C、如果要删除的目录不存在,则os.rmdir函数会报错
D、如果要删除的目录已存在但目录不为空,则os.rmdir函数会报错
参考答案:B
7-03os模块的使用-获取绝对路径、路径分离和连接随堂测验
1、os.path.join('.','src','tools')与'.{0}src{0}tools'.format(os.sep)返回的字符串相同。
参考答案:正确
7-05文件打开和关闭随堂测验
1、open函数的默认文件打开方式是( )。
A、w
B、w+
C、r
D、r+
参考答案:C
2、下面文件文件打开方式中,不能对打开的文件进行写操作的是( )。
A、w
B、wt
C、r
D、a
参考答案:C
7-07文件对象的readline、readlines和seek方法随堂测验
1、要从文件中按行读取所有数据,则应使用文件对象的( )方法。
A、read
B、readall
C、readline
D、readlines
参考答案:D
7-10异常的定义和分类随堂测验
1、对于if语句序列的两条语句,如果第一条语句前面有4个空格、第二条语句前面有1个制表符,则运行时会产生( )异常。
A、IndentationError
B、TabError
C、IndexError
D、SyntaxError
参考答案:B
2、执行“a=10*1/0”语句时,会产生( )异常。
A、TypeError
B、ValueError
C、ZeroDivisionError
D、KeyError
参考答案:C
7-11异常处理-try except随堂测验
1、“try except”语句中使用“except:”表示( )。
A、捕获所有异常
B、捕获未被前面except子句捕获的异常法
C、等价于“except None:”
D、错误的写法
参考答案:B
2、如果一个异常无法被任何的except子句捕获,则程序会抛出该异常并停止。
参考答案:正确
7-12异常处理-else、finally和raise随堂测验
1、无论try子句执行时是否发生异常,都会执行的子句是( )。
A、else
B、finally
C、except
D、不存在
参考答案:B
2、只有try子句的语句序列执行时未发生异常才会执行的子句是( )。
A、else
B、finally
C、except
D、不存在
参考答案:A
7-13异常处理-断言和自定义异常随堂测验
1、已知有语句“assert num==0”,则当num的值为0时会引发AssertionError异常。
参考答案:错误
第七章单元测试
1、os模块中用于依次创建路径中所有不存在的目录的函数是( )。
A、makedirs
B、makedir
C、mkdirs
D、mkdir
参考答案:A
2、下面选项中,描述错误的是( )。
A、如果要创建的目录已经存在,则os.mkdir函数会报错
B、如果要创建的目录已经存在,则os.makedirs函数不会报错
C、如果要删除的目录不存在,则os.rmdir函数会报错
D、如果要删除的目录已存在但目录不为空,则os.rmdir函数会报错
参考答案:B
3、os模块中用于删除指定路径的最后多层目录的函数是( )。
A、removedirs
B、removedir
C、rmdirs
D、rmdir
参考答案:A
4、下面文件文件打开方式中,不能对打开的文件进行写操作的是( )。
A、w
B、wt
C、r
D、a
参考答案:C
5、要从文件中按行读取所有数据,则应使用文件对象的( )方法。
A、read
B、readall
C、readline
D、readlines
参考答案:D
6、对于if语句序列的两条语句,如果第一条语句前面有4个空格、第二条语句前面有1个制表符,则运行时会产生( )异常。
A、IndentationError
B、TabError
C、IndexError
D、SyntaxError
参考答案:B
7、“try except”语句中使用“except:”表示( )。
A、捕获所有异常
B、捕获未被前面except子句捕获的异常
C、等价于“except None:”
D、错误的写法
参考答案:B
8、只有try子句的语句序列执行时未发生异常才会执行的子句是( )。
A、else
B、finally
C、except
D、不存在
参考答案:A
9、除了系统遇到错误产生异常外,我们也可以使用( )产生异常。
A、exception
B、error
C、raise
D、except
参考答案:C
10、已知在D:\Python目录下有一个test.dat文件,则下列选项中返回True的是( )。
A、os.path.isfile('D:\\Python\\test.dat')
B、os.path.isdir('D:\\Python')
C、os.path.exists('D:\\Python')
D、os.path.exists('D:\\Python\\test.dat')
参考答案:ABCD
11、os.path.join('.','src','tools')与'.{0}src{0}tools'.format(os.sep)返回的字符串相同。
参考答案:正确
12、如果一个异常无法被任何的except子句捕获,则程序会抛出该异常并停止。
参考答案:正确
13、如果一个except子句捕获多个异常,则多个异常名应写为元组的形式。
参考答案:正确
14、已知有语句“assert num==0”,则当num的值为0时会引发AssertionError异常。
参考答案:错误
第七章编程练习
1、请将程序补充完整。
参考答案:暂无答案
期末考试
1、Python的优点不包括( )。
A、简单易学
B、免费开源
C、丰富的库
D、强制缩进
参考答案:D
2、Python程序在执行一次之后会自动生成扩展名为( )的字节码文件,以提高运行效率。
A、.py
B、.pyc
C、.pyb
D、.pyf
参考答案:B
3、Python3.x环境创建Python脚本文件时,需要将文件编码格式设置为( )。
A、ANSI
B、GBK
C、UTF-8
D、UNICODE
参考答案:C
4、下列选项中,用于将各种类型的数据(字符串、整数、浮点数、列表、字典等)输出到屏幕上的函数是( )。
A、eval
B、input
C、print
D、get
参考答案:C
5、下列选项中,( )不是常量。
A、12
B、35.7
C、'Python'
D、abc
参考答案:D
6、下列选项中,执行时会报错的语句是( )。
A、int('23')
B、int('23+1')
C、int('23',8)
D、int('2a',16)
参考答案:B
7、下列选项中,不能创建字典对象的语句是( )。
A、{'one':1, 'two':2, 'three':3}
B、dict('one':1, 'two':2, 'three':3)
C、dict([('one',1), ('two',2), ('three',3)])
D、dict(zip(['one','two','three'], [1,2,3]))
参考答案:B
8、3*5**2的运算结果为( )。
A、30
B、225
C、75
D、报错
参考答案:C
9、下面程序的输出结果是( )。 m=5 while(m==0): m-=1 print(m)
A、0
B、4
C、5
D、-1
参考答案:C
10、用于跳出循环的命令是( )。
A、break
B、continue
C、else
D、pass
参考答案:A
11、调用函数时函数名后面的一对小括号中给出的参数称为( )。
A、实参
B、形参
C、类型参数
D、名字参数
参考答案:A
12、已知函数调用Fun(**a),则a可能是( )。
A、元组
B、列表
C、集合
D、字典
参考答案:D
13、已知在脚本文件N.py中有函数调用“A.B.C.d()”,则import语句的正确写法是( )。
A、from A.B import C
B、from A.B.C import d
C、import A.B.C
D、import A.B.C.d
参考答案:C
14、递归函数是指( )。
A、在一个函数内部通过调用自己完成问题的求解
B、在一个函数内部通过不断调用其他函数完成问题的求解
C、一个函数不断被其他函数调用完成问题的求解
D、把函数作为参数的一种函数
参考答案:A
15、面向对象方法的基本观点是一切系统都是由( )构成。
A、类
B、对象
C、函数
D、方法
参考答案:B
16、类中在特定情况下由系统自动执行的方法是( )。
A、类方法
B、静态方法
C、内置方法
D、普通方法
参考答案:C
17、如果一个类C1通过继承已有类C而创建,则将C1称作( )。
A、子类
B、基类
C、父类
D、超类
参考答案:A
18、类方法的第一个形参对应( )。
A、类
B、对象
C、第一个实参
D、第二个实参
参考答案:A
19、已知“a=list((1,2))+list((2,3))”,则a的值是( )。
A、[1,2,3]
B、[1,2,2,3]
C、(1,2,3)
D、(1,2,2,3)
参考答案:B
20、已知“a=[1,2,3]”且“b=a[:]”,则执行“a[1]=10”后,b的值为( )。
A、[10,2,3]
B、[1,10,3]
C、[1,2,10]
D、[1,2,3]
参考答案:D
21、使用集合的update方法,要求传入的实参必须是( )。
A、元组
B、列表
C、可哈希对象
D、可迭代对象
参考答案:D
22、已知“a=dict(x=1,y=2)”且“b=a”,则执行“a['y']=10”后,则print(b)的输出结果为( )。
A、{x=1,y=10}
B、{x=1,y=2}
C、{'x':1,'y':10}
D、{'x':1,'y':2}
参考答案:C
23、已知“str='a\rb\r\nc\n'”,则“str.splitlines()”的返回结果是( )。
A、['a','b','c']
B、['a\r','b\r\n','c\n']
C、['a\r','b\r','c']
D、['a\r','b','c']
参考答案:A
24、与正则表达式“^ab[a-z]+c”匹配的字符串是( )。
A、abdec
B、abc
C、ab0c
D、cabc
参考答案:A
25、已知m是一个Match对象,则m.group(1)返回的结果必然是一个( )。
A、字符串
B、元组
C、列表
D、不确定
参考答案:A
26、如果要去除字符串中头部的空格,可以使用字符串的( )方法。
A、strip
B、lstrip
C、rstrip
D、replace
参考答案:B
27、下面选项中,描述错误的是( )。
A、如果要创建的目录已经存在,则os.mkdir函数会报错
B、如果要创建的目录已经存在,则os.makedirs函数不会报错
C、如果要删除的目录不存在,则os.rmdir函数会报错
D、如果要删除的目录存在但目录不为空,则os.rmdir函数会报错
参考答案:B
28、open函数的默认文件打开方式是( )。
A、w
B、w+
C、r
D、r+
参考答案:C
29、要从文件中按行一次性读取所有数据,则应使用文件对象的( )方法。
A、read
B、readall
C、readline
D、readlines
参考答案:D
30、执行“a=10*1/0”语句时,会产生( )异常。
A、TypeError
B、ValueError
C、ZeroDivisionError
D、KeyError
参考答案:C
31、下列选项中属于Python应用领域的是( )。
A、图形界面开发
B、Web开发
C、网络爬虫
D、人工智能
参考答案:ABCD
32、Python程序使用( )进行多行注释。
A、三个连续单引号
B、三个连续双引号
C、分号
D、井号
参考答案:AB
33、下列选项中,属于位运算符的选项包括( )。
A、|
B、||
C、&
D、&&
参考答案:AC
34、已知有代码“for x in y:”,则y的数据类型可以是( )。
A、列表
B、元组
C、数值
D、字符串
参考答案:ABD
35、已知有函数定义: def StudentInfo(name,country='中国',age=18): print('%s,%s,%d'%(name,country,age)) 则下列函数调用中正确的是( )。
A、StudentInfo('大卫','美国',20)
B、StudentInfo('大卫',,20)
C、StudentInfo('大卫',age=20)
D、StudentInfo(name='大卫','美国')
参考答案:AC
36、已知脚本文件N.py中有一个函数调用“A.B.C.d()”,则下列选项中表示包名的是( )。
A、A
B、B
C、C
D、d
参考答案:AB
37、下列选项中,比较对象大小关系时自动执行的内置方法包括( )。
A、__str__
B、__eq__
C、__ne__
D、__nq__
参考答案:BC
38、已知B是A的父类,a是A类的对象,b是B类的对象,则下列选项中返回结果为True的是( )。
A、isinstance(a,A)
B、type(a)==A
C、issubclass(A,B)
D、issubclass(type(a),type(b))
参考答案:ABCD
39、已知A类中__slots__定义为“__slots__=('a1','a2')”,B类中__slots__定义为“__slots__=('b1','b2')”,B是A的子类,则B类可以动态扩展的属性包括( )。
A、a1
B、a2
C、b1
D、b2
参考答案:ABCD
40、使用集合的update方法,传入的实参可以是( )。
A、数字
B、元组
C、列表
D、字符串
参考答案:BCD
41、下列选项中,描述正确的是( )。
A、所有迭代器都是可迭代对象
B、所有可迭代对象都是迭代器
C、通过“isinstance(x,Iterator)”可以判断x是否是迭代器
D、如果一个可迭代对象中具有__next__和__iter__两个内置方法,则它是一个迭代器
参考答案:ACD
42、字符串检索时,检索失败时不会引发异常的方法包括( )。
A、find
B、rfind
C、index
D、rindex
参考答案:AB
43、如果要替换字符串中与指定正则表达式匹配的子串,可以使用re模块的( )函数。
A、replace
B、split
C、sub
D、subn
参考答案:CD
44、如果要一次完成字符串中所有满足正则表达式规则的子串的匹配,可以使用re模块的( )函数。
A、searchall
B、findall
C、finditer
D、search
参考答案:BC
45、已知在D:\Python目录下有一个test.dat文件,则下列选项中返回True的是( )。
A、os.path.isfile('D:\\Python\\test.dat')
B、os.path.isdir('D:\\Python')
C、os.path.exists('D:\\Python')
D、os.path.exists('D:\\Python\\test.dat')
参考答案:ABCD
46、Python语言环境的提示符是>>>。
参考答案:正确
47、注释的作用是增强程序可读性,并不会实际运行。
参考答案:正确
48、Python程序中每条语句以分号结尾。
参考答案:错误
49、调试是为了解决语法错误。
参考答案:错误
50、Python是一种弱类型的语言,变量的类型由其值的类型决定。
参考答案:正确
51、Boolean类型是整型的子类型,在作为数字参与运算时,False自动转为1,True自动转为0。
参考答案:错误
52、通过“{}”可以创建一个空集合。
参考答案:错误
53、不能使用数字索引形式的下标可以访问字典中的元素。
参考答案:正确
54、二进制数转十进制数的规则是“按权展开求和”。
参考答案:正确
55、对于表达式x in y,其中y必须是可迭代对象。
参考答案:正确
56、定义函数只是规定了函数会执行什么操作,但并不会真正执行;只有调用函数时才会真正去执行函数中的代码。
参考答案:正确
57、对于一个带不定长参数的函数,其普通形参可以有默认参数值。
参考答案:正确
58、使用“import M1; M2; M3”可以一次导入M1、M2和M3这3个模块。
参考答案:错误
59、变量的作用域是指在哪些地方可以使用这个变量。
参考答案:正确
60、类的普通方法的第一个参数自动对应调用该方法时所使用的类对象。
参考答案:正确
61、__str__方法的返回值可以是整数。
参考答案:错误
62、Python中的多态是借助鸭子类型实现的。
参考答案:正确
63、已知B是A的父类,b是B类的对象,则“A==type(b)”返回结果为True。
参考答案:错误
64、通过“ls.max()”可以得到列表ls中最大元素的值。
参考答案:错误
65、已知s={1,20,25},则通过“s.add([2,3])”可以向s中添加一个新的列表类型的元素。
参考答案:错误
66、已知执行“d=dict(sno='1810100', name='李晓明', age=19)”,则执行“r=d.pop('age')”后,r的值为19。
参考答案:正确
67、利用iter函数可以根据可迭代对象获取迭代器。
参考答案:正确
68、使用三引号创建字符串时允许直接将字符串写成多行的形式。
参考答案:正确
69、已知“str='abcdefabc'”,则执行“str.replace('abc','cba')”后,str中保存的字符串为'cbadefcba'。
参考答案:错误
70、re.match(r'py$','puppy')返回的是一个Match对象。
参考答案:错误
71、正则表达式“\Aabc”与正则表达式“^abc”的功能相同,都用于匹配以abc开头的字符串。
参考答案:正确
72、'os.path.join('.','src','tools')与'.{0}src{0}tools'.format(os.sep)返回的字符串相同。
参考答案:正确
73、如果一个异常无法被任何的except子句捕获,则程序会抛出该异常并停止。
参考答案:正确
74、如果一个except子句捕获多个异常,则多个异常名应写为元组的形式。
参考答案:正确
75、已知有语句“assert num==0”,则当num的值为0时会引发AssertionError异常。
参考答案:错误
还木有评论哦,快来抢沙发吧~