一、考试结构与评分规则
(一)题型分布(总分100分)
题型 题量 每题分值 总分占比 考察重点
单选题 15 2 30% 语法细节、内置函数、数据类型
多选题 5 3 15% 概念辨析、组合判断
填空题 10 2 20% 输出结果、关键语法、变量值
简答题 5 6 30% 原理阐述、优缺点对比、应用场景
编程题 3 5~10 15% 综合应用、算法实现、调试能力。
(二)评分标准详解(以编程题为例)
|
评分维度 |
权重 |
说明 |
|
功能正确性 |
40% |
程序能否通过所有测试用例(输入输出匹配) |
|
代码规范性 |
20% |
命名规范、缩进、注释、PEP8风格 |
|
算法效率 |
20% |
时间/空间复杂度是否合理(如避免嵌套循环暴力解法) |
|
健壮性与异常处理 |
10% |
是否处理边界情况(空列表、负数、除零等) |
|
创新与扩展 |
10% |
是否使用更优算法、模块化设计、文档字符串等 |
二、核心知识点梳理
(一)Python基础语法
1. 变量与数据类型
• 变量命名规则:只能包含字母、数字、下划线;不能以数字开头;区分大小写;避免使用关键字;推荐使用小写字母+下划线(snake_case)。
• 常见数据类型:整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、空值(None)。
• 类型转换:int()、float()、str()、bool()。注意:int("3.14")会报错,需先转float再转int。
• 类型检查:type()、isinstance()。
2. 运算符
• 算数运算符:+、–、*、/、//(整除)、%(取余)、**(幂运算)。
• 逻辑运算符:and、or、not。
• 比较运算符:==、!=、>、<、>=、<=。
• 成员运算符:in、not in。
• 身份运算符:is、is not。注意:==比较值是否相等,is比较内存地址是否相同。
3. 条件语句
• if、elif、else的使用,注意冒号和缩进。
• 条件表达式(Ternary Operator):x if condition else y。
4. 循环语句
• for循环:遍历列表、字符串、范围(range())。range(start, stop, step)左闭右开。
• while循环:条件为真时持续执行,注意避免死循环,循环变量别忘更新。
• 循环控制:break跳出整个循环,continue跳过本次循环剩余代码,else子句(仅当循环正常结束时执行)。
(二)函数
1. 函数定义与调用
• 定义:def 函数名(参数):。
• 参数:位置参数、关键字参数、默认参数、可变参数(*args、**kwargs)。注意:可变默认参数的陷阱,如def add_item(item, target_list=[]):多次调用会共享同一个列表对象,正确做法是def add_item(item, target_list=None): if target_list is None: target_list = []。
• 返回值:return。
2. 函数嵌套与作用域
• 局部变量和全局变量,使用global声明后,函数内可修改全局变量。
3. 模块和包
• 导入模块:import、from … import、as别名。
• 常见内置模块:math、random、time、sys等。
(三)数据类型与常用数据结构
1. 基本类型
• int、float、str、bool。字符串可以切片:s = "hello"[1:4]结果为ell。
2. 容器类型
• 列表(list):可变,常用方法append()、insert()、pop()、sort()、reverse()等。支持列表推导式:[x for x in range(10) if x % 2 == 0]。
• 元组(tuple):不可变,可用于函数多返回值、字典键等。
• 字典(dict):键值对,常用方法keys()、values()、items()、get()等。支持字典推导式:{x: x**2 for x in range(5)}。
• 集合(set):无序、去重,支持交集&、并集|、差集–等运算。
(四)文件操作
• 读取与写入文件:open()函数,推荐使用with语句自动关闭文件。
• 文件打开模式:r(只读)、w(覆盖写)、a(追加写)、r+(读写)等。
• 处理中文文件需指定编码:encoding="utf-8"。
(五)异常处理机制
• try-except-finally结构,捕获具体异常,别直接用except:。
• 常见异常类型:SyntaxError、TypeError、ValueError、IndexError、KeyError等。
• 自定义异常类:继承Exception类。
(六)面向对象基础(OOP)
• 类的定义与使用:class 类名:,__init__()构造方法,self表示实例本身。
• 继承与多态:class 子类名(父类名):,super()调用父类方法。
• 封装与私有属性:使用_和__表示私有属性和方法。
三、期末必考题型汇总
(一)基础语法类
1. 个人信息格式化输出
// python
# 考点:input、类型转换、f-string格式化
name = input("请输入姓名:")
age = int(input("请输入年龄:")) # 重点:input转int
height = float(input("请输入身高(米):"))
# f-string格式化(最推荐的方式)
print(f"姓名:{name} | 年龄:{age}岁 | 身高:{height:.2f}米 | 成年:{age>=18}")
2. 简易计算器(带异常处理)
// python
# 考点:运算符、条件判断、异常处理(期末大题常考!)
try:
a = float(input("输入第一个数:"))
op = input("输入运算符(+,-,*,/):")
b = float(input("输入第二个数:"))
if op == '+':
print(f"结果:{a+b}")
elif op == '-':
print(f"结果:{a-b}")
elif op == '*':
print(f"结果:{a*b}")
elif op == '/':
if b == 0: # 重点:除零错误处理
print("错误:除数不能为零!")
else:
print(f"结果:{a/b:.2f}")
else:
print("错误:无效运算符")
except ValueError:
print("错误:请输入有效数字!") # 重点:异常捕获
(二)流程控制类
1. 猜数字游戏(循环+条件+随机数)
// python
import random
target = random.randint(1, 100)
count = 0
while True:
try:
guess = int(input("猜一个1-100的数字:"))
count += 1
if guess > target:
print("太大了!")
elif guess < target:
print("太小了!")
else:
print(f"恭喜猜中!用了{count}次")
break # 重点:跳出循环
except ValueError:
print("请输入有效整数!")
2. 九九乘法表(嵌套循环经典题)
// python
# 左下角格式(最常考)
for i in range(1, 10): # 外层:行
for j in range(1, i+1): # 内层:列,注意i+1
print(f"{j}×{i}={i*j:2}", end=" ") # :2占位对齐
print() # 换行
# 右上角格式(进阶考法)
for i in range(1, 10):
print(" " * (9-i) * 4, end="") # 打印前导空格
for j in range(i, 10):
print(f"{i}×{j}={i*j:2}", end=" ")
print()
(三)数据结构类
1. 学生成绩统计(列表嵌套+排序)
// python
# 数据:[[姓名, 语文, 数学, 英语], …]
students = [
["张三", 85, 90, 78],
["李四", 92, 88, 95],
["王五", 78, 85, 80]
]
# 计算总分并排序(lambda表达式必考!)
for stu in students:
total = sum(stu[1:]) # 切片求和
stu.append(total) # 添加总分列
# 按总分降序排序(key参数重点)
students.sort(key=lambda x: x[4], reverse=True)
# 输出成绩单
print("排名\\t姓名\\t总分\\t平均分")
for i, stu in enumerate(students, 1):
avg = stu[4] / 3
print(f"{i}\\t{stu[0]}\\t{stu[4]}\\t{avg:.1f}")
2. 词频统计(字典应用经典题)
// python
text = "hello world hello python world hello"
# 方法1:基础字典法
word_count = {}
for word in text.lower().split(): # 转小写+分割
word_count[word] = word_count.get(word, 0) + 1 # get方法重点
# 方法2:collections.Counter(进阶写法)
from collections import Counter
top3 = Counter(text.lower().split()).most_common(3)
print("高频词:", top3)
# 按词频排序输出(sorted+lambda)
sorted_words = sorted(word_count.items(), key=lambda x: x[1], reverse=True)
(四)面向对象类
1. 定义圆类并计算面积和周长
// python
import math
class Circle:
def __init__(self, radius):
if radius <= 0:
raise ValueError("半径必须为正数")
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
def perimeter(self):
return 2 * math.pi * self.radius
# 测试
c = Circle(3)
print(f"面积: {c.area():.2f}, 周长: {c.perimeter():.2f}")
四、考试易错点总结
(一)语法类易错点
• 缩进错误:混用空格与Tab、缩进不一致(Python语法核心,必扣分)。
• 字符串不可变:直接修改s[0]报错,需用切片或replace()。
• 列表索引:lst[-1]是最后一个元素,索引越界(lst[len(lst)])报错。
• 字典键:必须是不可变类型(列表不能作为键),键不存在直接访问报错(推荐用dict.get())。
(二)逻辑类易错点
• 浮点数精度:0.1+0.2≠0.3,需用round()或decimal模块。
• 循环条件:range(1,5)是1 – 4(不含5),while循环忘记更新条件导致死循环。
• 递归缺少出口:无限递归导致栈溢出(必须有终止条件)。
• 全局变量修改:函数内修改全局变量未用global声明(变量被视为局部变量)。
(三)操作类易错点
• 文件操作:忘记关闭文件(推荐用with语句)、中文编码未指定encoding="utf-8"。
• 类型转换:int("3.14")报错,需先转float再转int。
• 集合无序:set去重后会打乱顺序,需保持顺序用dict.fromkeys(lst)。
• 函数参数:默认参数放在位置参数前面(语法错误)。
五、学习建议与考试技巧
(一)学习建议
• 多写代码+少背语法,代码写熟自然会。
• 关注函数、循环、列表、字典的灵活运用。
• 熟悉错误调试过程,出错别慌。
• 模拟题是最好的实战训练。
(二)考试技巧
• 选择题:仔细阅读题目,排除明显错误选项,对于不确定的选项可以采用排除法和推理法。
• 填空题:注意语法细节和拼写错误,对于输出结果类题目可以在草稿纸上简单推导。
• 简答题:条理清晰,分点作答,结合代码示例说明更佳。
• 编程题:先理清思路,写出大致的代码框架,再逐步填充细节。注意代码规范和异常处理,写完后可以简单测试一下边界情况。


