计算机二级备考——刷完python基础选择题
1、Python语言数字类型
语言提供三种基本的数字类型,分别是:整数类型、浮点类型、复数类型
备注:Python 提供的三种基本数字类型是:
- 整数类型(int):用于表示整数,如 1、-5、100。
- 浮点类型(float):用于表示带小数的数字,如 3.14、-0.5。
- 复数类型(complex):用于表示复数,如 2+3j。
注意!!!二进制类型并不是 Python 中独立的数字类型,它只是整数的一种表示形式。
2、python不合法的标识符
python$(只能有下划线,除此以外不能有其他特殊符号);
3python(不能由数字开头)
if(不能是python的关键字)
备注:Python 标识符的命名规则如下:
- 只能由字母(A-Z, a-z)、数字(0-9)和下划线(_)组成。
- 不能以数字开头。
- 不能是 Python 的关键字。
3、python语言中用来表示代码块所属关系的语法是:缩进
4、列表相关选择题考点
列表的索引序号是从1开始的(错,从0开始)
使用append()函数可以向列表的指定位置插入元素(错,只能插在末尾)
列表中的值可以是任何数据类型(对,列表和元组类似,可以存储不同类型的数据)
使用remove()函数可以从列表中删除元素,但必须知道元素在列表中的位置(错,可以直接删除,只需要知道元素即可)
列表变量lis共包含10个元素,lis索引的取值范围是:[0,9]((0,9)是元组)
列表是包含0个或多个元组的有序序列,属于序列类型。
列表可以进行元素增加、删除、替换、查找等操作。
列表使用方括号[]定义,并且作为序列类型的一种,继承了序列的通用属性和方法(如索引、切片、拼接等)
- 索引规则
- 列表索引号从0开始(如
lst[0]是第一个元素,lst[-1]是最后一个元素); - 索引范围:有效索引为
0 ~ len(lst)-1,超出范围会报IndexError(考试常考异常判断)。 10个元素索引:0~9(含)、-1~-10(含)
- 列表索引号从0开始(如
- 列表特性
- 可变类型:可直接修改元素值、增删元素(区别于字符串的不可变);
- 元素多样性:列表中可包含任意数据类型(整数、字符串、列表、字典、函数等);
- 有序序列:元素有固定顺序,可通过索引精准访问。
| 方法 | 语法 | 作用 | 考试易错点 |
| append() | lst.append(元素) | 向列表末尾添加 1 个元素 | 只能加 1 个元素,不能指定位置 |
insert() | lst.insert(索引, 元素) | 向指定索引位置插入元素 | 索引超出范围时,默认插入到末尾 |
| extend() | lst.extend(可迭代对象) | 批量添加多个元素(末尾) | 区别于append:extend([1,2])加 2 个元素,append([1,2])加 1 个列表元素 |
| 方法 | 语法 | 作用 | 考试易错点 |
| remove() | lst.remove(元素值) | 删除第一个匹配的指定值 | 元素不存在会报ValueError;只删第一个匹配项 |
| pop() | lst.pop(索引) | 删除指定索引的元素,返回该元素 | 无参数时默认删除最后一个元素 |
del语句 | del lst[索引]/del lst | 删除指定索引元素 / 删除整个列表 | 直接删除,无返回值(区别于 pop) |
5、元组相关选择题考点
元组是不可以被修改,创建后不能再更改元素
python中元组使用圆括号和逗号表示
元组中的元素要求是相同类型(错,元组与列表相似,可以存储不同类型的数据)
一个元组可以作为另一个元组的元素,可以采用多级索引获取信息
6、python机器学习的第三方库
- 核心机器学习算法库(传统 ML)
scikit-learn(sklearn):经典机器学习算法一站式库(分类、回归、聚类、降维、预处理等)
XGBoost:高性能梯度提升树库(竞赛 / 工业界首选)
LightGBM:轻量、快速的梯度提升框架
CatBoost:自动处理类别特征的梯度提升库
MLlib:Spark 生态下的分布式机器学习库
Imbalanced-learn:专门处理不平衡数据集的扩展库
- 深度学习框架
TensorFlow:Google 开源,工业级深度学习框架(内置 Keras)
PyTorch:Facebook 开源,动态图优先,科研 / 原型开发首选
Keras:高层神经网络 API(已整合到 TensorFlow)
MXNet:轻量级、跨平台深度学习框架
PaddlePaddle(飞桨):百度开源的国产深度学习框架
Hugging Face Transformers:NLP 预训练模型库(BERT/GPT 等)
TorchVision/TensorFlow Hub:计算机视觉预训练模型库
- 数据处理与特征工程
NumPy:数值计算基础库(数组操作)
Pandas:结构化数据处理(表格、数据清洗、特征构造)
SciPy:科学计算库(统计、线性代数、优化)
Feature-engine:专业特征工程库
Category Encoders:类别特征编码专用库
- 模型评估与解释
SHAP:模型可解释性分析库
LIME:局部模型解释工具
Yellowbrick:可视化模型评估库
scikit-optimize:超参数优化库
Optuna:自动化超参数调优框架
- 可视化库(辅助 ML 分析)
Matplotlib:基础绘图库
Seaborn:统计可视化库(基于 Matplotlib)
Plotly:交互式可视化库
Altair:声明式可视化库
7、python关键字
python的关键字:Python 的关键字是语言内置的、具有特殊含义的保留字,不能用作变量名、函数名、类名等标识符;
Python 3.10+ 核心关键字(常用版本)
以下是日常开发中最常接触的关键字,按用途分类更易记忆:
a. 流程控制
if/elif/else:条件判断(分支逻辑的保留字)for/while:循环(循环逻辑保留字)break/continue:循环控制(循环逻辑保留字)match/case:模式匹配(3.10+ 新增)
Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径。其中,else子句是可选的。
b. 逻辑与运算
and/or/not:逻辑运算符in/not in:成员判断is/is not:身份判断
c. 定义与声明
def:定义函数class:定义类import/from/as:导入模块return:函数返回值yield:生成器返回值lambda:匿名函数
d. 异常处理
try/except/finally/raise:异常捕获与抛出(捕获特定类型的异常)
e. 变量与作用域
global:声明全局变量nonlocal:声明非局部变量del:删除对象引用
f. 其他核心关键字
True/False/None:常量(布尔值、空值)async/await:异步编程with:上下文管理器(如文件操作)pass:空语句(占位)assert:断言(调试用)
使用注意事项
- 关键字区分大小写:
True是关键字,true/TRUE不是; - 不能修改关键字:无法给关键字赋值(如
if = 10会直接报错); - 命名避坑:如果非要用关键字相关的名称,可加下划线(如
if_/class_)。
总结
- Python 关键字是保留字,不能作为标识符使用,可通过
keyword模块查看和验证; - 核心关键字按用途可分为流程控制、逻辑运算、定义声明、异常处理等类别,重点记忆常用的
if/for/def/class/import等; - 不同 Python 版本关键字略有差异,用代码查询是最准确的方式。
# 导入关键字模块 import keyword # 打印所有关键字 print("Python关键字列表:") print(keyword.kwlist) # 检查某个单词是否是关键字(示例) print("\n检查 'if' 是否是关键字:", keyword.iskeyword('if')) print("检查 'python' 是否是关键字:", keyword.iskeyword('python'))8、python字符串
在Python字符串中,可以混合使用正整数和负整数进行索引和切片;
Python字符串采用N:M格式进行切片,获取字符串从索引IN到M的子字符串(包含N和M)(错,不包含M);
字符串'C:\\python.py'中第一个\表示转义符;
空字符串可以表示为"或";
字符串切片
这道题考察的是Python 中输出字符串的正确语法。
- A:
print('Hello World')✅ 正确。在 Python 中,print()是内置函数,字符串需要用单引号或双引号包裹。 - B:
print(Hello World)❌ 错误。Hello World没有被引号包裹,Python 会将其视为变量名,而该变量未定义,会报错。 - C:
printf("Hello World")❌ 错误。printf是 C 语言的输出函数,在 Python 中不存在,会导致NameError。 - D:
printf('Hello World')❌ 错误。与 C 同理,Python 中没有printf函数。
所以,能正确输出'Hello World'的选项是A。
9、python代码注释
#单行注释
##多行注释
10、python运算
代码print (0.1 + 0.2 == 0.3)的输出结果是False
解释:在Python语言中,0.1+0.2=0.30000000000000004。原因是:对于十进制数,它只能表示以进制数的质因子为分母的分数。10的质因子有2和5,因此1/2、1/4、1/5、1/8和1/10都可以精确表示;相反,1/3、1/6和1/7都是循环小数,因为它们的分母使用了质因子3或者7。二进制下(进制数为2),只有一个质因子,即2,因此只能精确表示分母质因子是2的分数。二进制中,1/2、1/4和1/8都可以被精确表示,但1/5或者1/10就变成了循环小数。所以,在十进制中能够精确表示的0.1与0.2 (1/10与1/5),到了计算机所使用的二进制中就变成了循环小数。当对这些循环小数进行数学运算并将二进制数据转换成人类可读的十进制数据时,会对小数尾部进行截断处理。在不同的语言中,运行0.1+0.2会输出不同的结果。
11、python函数
函数只能通过 print 语句和 return 语句给出运行结果
- 错误。函数还可以通过修改全局变量、写入文件、发送网络请求等多种方式产生运行结果,
print和return只是最常见的两种。
函数的全局变量是列表类型的时候,函数内部可以直接引用该全局变量。
如果函数内部创建跟外部的全局变量同名的组合数据类型的变量,则函数内部引用的就是这个局部变量。
python 的函数里如果没有创建同名变量,则可以直接引用和修改同名的全局变量。
在 Python 函数中引用组合数据类型(如列表、字典)变量时,并不会自动创建新对象,而是传递对象的引用。只有在执行修改操作时,才会影响原对象。
函数可以没有return值或者有多个return值
计算机二级 Python 函数中全局变量与局部变量核心考点
作用域规则
- 局部变量:定义在函数内部,仅在函数内部可见,函数执行结束后销毁。
- 全局变量:定义在函数外部,整个程序范围内可见。
访问规则
- 函数内部可以直接访问全局变量(如读取值),但不能直接修改简单数据类型(如
int、str)的全局变量。 - 对于组合数据类型(如
list、dict)的全局变量,函数内部可以直接修改其内部元素(如append),但不能直接重新赋值整个变量。
- 函数内部可以直接访问全局变量(如读取值),但不能直接修改简单数据类型(如
global关键字- 若要在函数内部修改简单数据类型的全局变量,必须先用
global关键字显式声明。 - 若要在函数内部重新赋值组合数据类型的全局变量,也需要用
global关键字声明。
- 若要在函数内部修改简单数据类型的全局变量,必须先用
同名变量优先级
- 当函数内部定义了与全局变量同名的局部变量时,函数内部优先使用局部变量,全局变量会被 “遮蔽”。
nonlocal关键字(嵌套函数)- 用于在嵌套函数中修改外层函数的非全局变量。
12、python语言基本控制结构
顺序、选择和循环(跳转结构不属于)
13、python语言技术特点
Python语言是一种被广泛使用的高级通用脚本编程语言,具有通用性,可以用于几乎任何与程序设计相关应用的开发,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、web开发等具体的技术领域。
静态语言:C语言、C++(静态语言、编译型语言)
脚本语言:python(动态语言、解释型语言)
14、Python字符编码
使用ASCII编码和Unicode编码。
15、python字典
16、python数据维度
字典类型不仅可以表示一维和二维数据,还可以通过嵌套的方式表示更高维度的数据(如三维、四维),因此 “仅用于表示一维和二维数据” 的说法是错误的。
一、一维数据(线性结构)
- 列表 (list):有序、可重复、可修改,适用于绝大多数通用一维数据场景(如数值序列、字符串列表),示例:
nums = [1, 2, 3, 4] - 元组 (tuple):有序、可重复、不可修改,适用于需要固定 / 只读的一维数据(如坐标、配置项),示例:
point = (10, 20) - 集合 (set):无序、不可重复、可修改,适用于需要去重或集合运算的一维数据(如标签、唯一值),示例:
tags = {"Python", "Data", "AI"} - 字典 (dict):键值对形式,适用于需要 “名称 - 值” 映射的一维数据(如配置、属性),示例:
user = {"name": "小明", "age": 18}
二、二维数据(表格结构)
- 列表的列表:外层列表代表行,内层列表代表列,灵活易操作,适用于绝大多数简单二维数据场景(如成绩表、矩阵),示例:
scores = [["小明", 90], ["小红", 85]] - 字典的列表:外层列表代表行,内层字典代表列(带列名),可读性高,适用于需要 “列名 - 值” 映射的二维数据(如数据库记录),示例:
students = [{"name": "小明", "age": 18}, {"name": "小红", "age": 17}] - pandas.DataFrame:专业表格结构,支持筛选、统计等海量操作,适用于数据分析 / 处理的工业级二维数据场景,示例:
import pandas as pd; df = pd.DataFrame(students)
三、多维数据(三维及以上)
- 嵌套列表:多层列表嵌套,结构直观,适用于简单多维数据(如三维矩阵、多维坐标),示例:
cube = [[[1,2], [3,4]], [[5,6], [7,8]]] - 嵌套字典:多层键值对嵌套,语义化强,适用于复杂业务数据(如带层级的配置、用户画像),示例:
user_profile = {"basic": {"name": "小明"}, "scores": {"math": 90, "chinese": 85}} - numpy.ndarray:专业多维数组,高性能数值计算,适用于科学计算 / 机器学习场景(如图片像素、张量),示例:
import numpy as np; arr = np.array(cube)
总结
- 一维数据:通用场景选列表,需去重选集合,需只读选元组,需键值映射选字典。
- 二维数据:简单场景用列表的列表,需列名用字典的列表,数据分析用 pandas.DataFrame。
- 多维数据:简单结构用嵌套列表 / 字典,数值计算优先用 numpy.ndarray。
