1. 输入输出与数据类型急救包

期末考试最常见的题型就是处理各种输入数据。先记住这个万能模板:

# 处理单行输入(数字/字符串)
data = input()  # 默认字符串类型
num = int(input())  # 直接转整数
float_num = float(input())  # 转浮点数

# 处理多值输入(空格/逗号分隔)
a, b = map(int, input().split())  # 空格分隔转整数
x, y = map(float, input().split(','))  # 逗号分隔转浮点数

踩坑预警 :当题目要求"输入两个用空格分隔的整数"时,千万别用 eval(input()) !直接用 split() 处理更安全。我监考时见过有同学因为用eval导致程序崩溃,直接丢了10分。

2. 列表操作高频考点

列表绝对是考试中的VIP数据类型,这几个操作出现频率超高:

# 1. 列表创建与转换
nums = list(map(int, input().split()))  # 把输入直接转成数字列表
chars = list("hello")  # 字符串转字符列表

# 2. 列表增删改查(附考试得分技巧)
arr = [1, 2, 3]
arr.append(4)       # 尾部添加 → [1,2,3,4]
arr.insert(1, 9)    # 指定位置插入 → [1,9,2,3,4]
arr.pop()           # 删除末尾 → [1,9,2,3] 
arr.remove(9)       # 删除特定值 → [1,2,3]

# 3. 列表排序的两种必考写法
arr.sort()                   # 原列表排序(升序)
sorted_arr = sorted(arr, reverse=True)  # 生成新列表(降序)

实战技巧 :遇到"去掉最高分最低分求平均"这类题,记住这个套路:

scores = [85, 92, 78, 90, 88]
scores.remove(max(scores))
scores.remove(min(scores))
avg = sum(scores) / len(scores)

3. 字符串处理三板斧

字符串操作题往往看起来简单但容易丢分,这三个方法必须掌握:

text = "Python期末考试"

# 1. 切片操作([start:end:step])
print(text[2:5])    # 输出 'tho'
print(text[::-1])   # 逆序 → '试考末期nohtyP'

# 2. 字符串拼接(三种方式)
print("Hello " + text)          # 用+号
print(" ".join(["A", "B", "C"])) # 用join连接列表
print(f"现在进行:{text}")       # f-string(Python3.6+)

# 3. 字符串判断与转换
print("123".isdigit())  # 判断是否全数字 → True
print("ABC".lower())    # 转小写 → 'abc'

易错点 :遍历字符串时,直接用 for char in string 比用下标遍历更不容易出错。去年有个考题要求统计字母出现次数,用下标遍历的同学很多都漏掉了边界条件。

4. 文件操作速成模板

文件读写题记住这个"万能三件套":

# 1. 读取文件全部内容
with open('data.txt', 'r', encoding='utf-8') as f:
    content = f.read()  # 适合小文件

# 2. 逐行处理(推荐写法)
with open('data.txt', 'r') as f:
    for line in f:      # 自动处理换行符
        print(line.strip())  # 去掉首尾空白

# 3. 写入文件
with open('output.txt', 'w') as f:
    f.write("第一行\n")
    f.writelines(["第二行\n", "第三行\n"])

救命技巧 :遇到CSV文件处理题,直接用这个模板:

import csv
with open('data.csv', newline='') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row[0], row[1])  # 访问各列数据

5. 函数编写避坑指南

函数题最容易在参数传递和返回值上栽跟头:

# 1. 带默认参数的函数
def greet(name="同学"):
    return f"你好, {name}!"

# 2. 返回多个值的正确姿势
def min_max(nums):
    return min(nums), max(nums)  # 实际返回的是元组

# 3. 处理可变参数
def sum_all(*args):  # 可以接受任意数量参数
    return sum(args)

血泪教训 :去年有30%的同学在递归函数上丢分。记住这个阶乘函数的写法:

def factorial(n):
    return 1 if n == 0 else n * factorial(n-1)

6. 异常处理保命代码

即使题目没明确要求,加上异常处理能让你的代码更健壮:

try:
    age = int(input("请输入年龄: "))
except ValueError:
    print("请输入数字!")
else:
    print(f"你的年龄是{age}")
finally:
    print("程序执行完毕")  # 无论是否出错都会执行

考场策略 :时间紧迫时,至少要在文件操作和类型转换处加try-except,能避免程序因输入错误直接崩溃。

7. 字典操作高效写法

字典题通常和统计次数、数据分组相关:

# 1. 统计词频(高频考点!)
text = "apple banana apple orange"
words = text.split()
count = {}
for word in words:
    count[word] = count.get(word, 0) + 1

# 2. 字典推导式(简化代码)
squares = {x: x**2 for x in range(5)}  # {0:0, 1:1, 2:4,...}

# 3. 字典排序技巧
score_dict = {'Alice':88, 'Bob':95, 'Charlie':78}
sorted_scores = sorted(score_dict.items(), key=lambda x: x[1], reverse=True)

效率技巧 :当需要频繁检查元素是否存在时,用字典比用列表快10倍以上。比如检查重复元素:

unique_items = list(set(original_list))  # 快速去重

8. 时间不够时的抢分策略

如果只剩15分钟还有大题没做,按这个优先级:

  1. 先把输入输出框架写出来(占20%分)
  2. 写核心算法伪代码(用注释描述思路)
  3. 补全关键变量定义
  4. 最后处理边界条件

记住:Python考试通常按步骤给分,即使没写完,把结构搭好也能拿基础分。有次看到有个同学写了 # 这里应该用排序算法 的注释,老师居然给了1分步骤分!

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐