Python 基础知识考题与解答(2020 版)
一、 单项选择题(每题 2 分,总共 20 分)
1、 [1,2,3]+[4,5,6] 的结果是多少? ( D )
A.[6][15]
B . [1,2,3][4,5,6]
C. [21]
D. [1,2,3,4,5,6]
2、 可以避免类型错误的函数是?( A )
A. str()
B. vars()
C. type()
D. chr()
3、 假设有这样的一个示例:types=['娱乐','体育','科技']
我们在使用列表时,以下哪个选项,会引起索引错误?( D )
A. types[-1]
B. types[-2]
C. types[0]
D. types[3]
4、 range() 函数的作用,描述正确的是?( B )
A. 可以将结果转换为列表
B. 生成一系列的数字
C. 可以解析列表
D. 可以统计计算
5、 列表 books=['半生缘','往事并不如烟','心是孤独的猎手'] ,执行切片操作,以下代码输出错误的是?( C )
A. books[0:2],输出:['半生缘','往事并不如烟']
B. books[:2],输出:['半生缘','往事并不如烟']
C. books[1:],输出:['半生缘','往事并不如烟']
D. books[-2:],输出:['往事并不如烟','心是孤独的猎手']
6、 pip 的作用是?( D )
A. 对操作系统进行操作
B. 字符加密功能
C. 输出运行日志
D. Python 包安装器
7、 关于 python 类继承,下列描述错误的是?( B )
A. 定义子类的实例时, 可以通过 子类的 init() 方法,给父类的所有属性赋值。
B. 对于继承而来的父类方法, 如果它不符合子类所期望的行为,那么就必须建立新的类。
C. super() 是一个特殊函数, 它会把父类和子类关联起来。
D. 子类除了拥有继承父类而来的属性和方法之外,还可以自定义子类自己的属性和方法。
8、 关于 python 导入类,下列描述正确的是?( C )
A. 一次性导入所有类,这样后续方便处理。
B. 不能在在一个模块中导入多个类。
C. 导入类可以把大部分逻辑存储在独立的文件中,然后在主程序中编写高级逻辑。
D. 同一个模块中的类,即使完全不相关,也没有关系。
9、 关于 python 读取文件,下列描述错误的是?( B )
A. 关键字 with 会在程序不再需要访问文件或出现异常的情况下,关闭文件 。
B. Python 对数据量没有大小限制,需要读取的文件多大都可以。
C. 函数 open(),入参如果只有文件名,那么 Python 会在当前执行的 .py 文件的所在目录中,查找文件 。
D. 读取文本文件时, Python 会将文件中的所有文本都解释为字符串 。
10、 关于TestCase 类的方法,下列描述正确的是?( B )
A. setUp(),在每一个测试用例执行之前,会先执行此方法。一般用于业务逻辑。
B. tearDown(),在每一个测试用例执行之后,会执行此方法。一般用于释放资源。
C. setUpClass(),在类中的所有测试用例执行之后,会先执行此方法。
D. tearDownClass(),在类中的所有测试用例执行之前,会执行此方法。
二、 多项选择题(每题 3 分,总共 30 分)
1、 关于注释,下列描述正确的是?( ABD )
A. 注释用井号( # ) 标识。
B. 编写注释的主要目的是阐述代码要做什么, 以及是如何做的。
C. 写不写注释,无所谓。
D. 必须编写有意义的注释。
2、 关于变量的命名和使用,下列描述正确的是?( BDE )
A. 变量名可以包含字母、 数字、下划线和特殊字符。
B. 变量名不能包含空格, 但可使用下划线来分隔其中的单词。
C. 可以将Python关键字和函数名用作变量名。
D. 变量名应既简短又具有描述性。
E. 慎用小写字母l和大写字母O, 因为它们可能被人错看成数字1和0。
3、 在列表中添加元素的方法有哪些? ( AB )
A. append()
B. insert()
C. tuple()
D. add()
4、 在列表中删除元素的方法有哪些? ( ACD )
A. delete()
B. del()
C. pop()
D. remove()
5、 关于元组的描述,以下选项正确的是?( ABCDE )
A. 元组是使用圆括号来标识的。
B. 定义好元组后, 我们就可以使用索引来访问其中的元素。
C. 定义好元组后,可以访问,但不能修改。
D. 修改元组,Python 会返回类型错误。
E. 虽然不能修改元组中的元素,但我们可以,为原来存储元组的变量重新赋值。
6、 以下条件测试表达式,正确的是?( ABDE )
A. name == 'deniro'
B. name.upper() == 'DENIRO'
C. name !== 'lily'
D. count < 2 and count > 2
E. '约翰·克利斯朵夫' not in books,其中 books 为列表
7、 以下关于字典,描述正确的是?( ABDE )
A. 字典是一系列的键值对 。
B. 与键相关联的值可以任何 Python 对象,比如数字、 字符串、 列表甚至是字典。
C. 使用 delete 语句指定字典名和要删除的键,即可删除键值对。
D. 可以先使用一对空的花括号,定义一个空字典, 然后再分行添加键值对。
E. 可以指定字典名、 用方括号括起的键以及与该键相关联的新值,来修改字典值。
8、 关于提示参数,以下描述正确的是?( ABC )
A. 指定清晰、明确的提示信息, 准确地告知用户,需要提供什么样的信息。
B. 提示参数带有提示结束符(比如冒号或者问号) ,这样可以分开提示参数与用户输入,看起来更直观。
C. 有的提示内容可能很长,这种情况,我们可以把提示内容存储在变量中, 然后再将变量传递给 input() 函数。
D. 使用函数 input() 时, 用户输入内容会被解析为字符串 。 如果试图将输入的内容进行数值比较时,python会自动处理。
9、 关于实参与形参,以下描述正确的是?( ACDE )
A. 位置实参指的是,实参的顺序与形参相同。
B. 位置实参与参数顺序无关。
C. 关键字实参指的是:传递给函数的是 “名称-值对” 。这样在调用函数时就不用考虑实参顺序, 而且还可以清楚地指出实参各个值的用途。
D. 使用关键字实参时, 必须准确地指出定义中的形参名。
E. 可以给每个形参指定默认值 。 如果在调用函数时,有给形参提供实参, 那么将使用指定的实参值; 如果没有,那么将使用默认值。
10、 关于函数编写格式规范,以下描述正确的是?( ABCE )
A. 使用描述性名称来定义函数名。通过描述性名称,可以让我们很容易理解这个函数可以做什么。
B. 只使用小写字母与下划线。
C. 包含可以简要阐述其功能的注释, 该注释以文档字符串格式定义,并且紧跟在函数定义之后。
D. 如果程序或模块包含多个函数, 即使挤在一起,也没有关系。
E. 所有的 import 语句,都应该放在文件开头,程序级注释之后。
三、 简答题(每题 5 分,总共 50 分)
1、 为什么下面这个表达式会导致错误?如何修复?
‘我有’+ 10 + ‘个苹果。’
10是一个整数,只有字符串能用+操作符与其他字符串连接。
正确的方式是‘我有’+ str(10) + ‘个苹果。’
2、 如果一个程序陷在一个无限循环中, 该如何处理?
按 Ctrl+C 来停止程序。
3、 使用函数有什么好处?
函数可以减少重复的代码,实现程序复用。从而让程序更短,并且更容易阅读与修改。
4、 什么是全局作用域?什么是局部作用域?
全局作用域指的是在整个程序中都有效;而局部作用域,只在代码块中有效,比如函数内部。
5、 如何防止程序在遇到异常时发生崩溃?如何处理异常?
把可能导致异常的代码放在 try 代码块中;发生异常时要执行的代码放在 except
代码块中。
6、 假定 data 包含列表['a', 'b', 'c', 'd']。【1】data[int(int('3' * 2) / 11)] 值为多少?【2】data[-1] 值为多少?【3】data[:3] 值为多少?
【1】d;因为 '3' * 2,是字符串复制,变为 '33'。
【2】d;
【3】['a', 'b', 'c']
7、 列表值和字符串有哪些相似之处?
- 列表和字符串都可以传入 len();
- 都有下标和切片功能;
- 用于 for 循环,连接或复制;
- 都可以与 in 和 not in 操作符一起使用。
8、 列表和元组之间的区别是什么?
- 列表是可以修改的,它可以添加、删除和修改值。而元组是不可修改;
- 元组使用的是括号(和),而列表使用的是方括号 [和]。
9、 字典和列表的主要区别是什么?
保存在字典中的项是无序的,而列表中的项是有序的。
10、 请说说 Python 类的编码原则?
- 类名应该采用驼峰命名法 , 即类名中的每个单词,首字母大写, 并且不使用下划线。 而实例名和模块名采用小写格式, 并在单词之间使用下划线。
- 每个类都应该在类定义第一行之后,加上文档字符串。它描述了该类所能提供的功能。每个模块也都应该定义文档字符串。
- 在类中, 可以使用一个空行来分隔方法; 而在模块中, 可以使用两个空行来分隔类。
- 如果需要同时导入标准库中的模块和我们自定义的模块时, 建议先导入标准库的模块, 然后添加一个空行, 接着导入自定义模块 。这样有利于理解主程序所使用的各个模块来自哪里 。