Python期末实战:从零到及格的核心代码急救包
·
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分钟还有大题没做,按这个优先级:
- 先把输入输出框架写出来(占20%分)
- 写核心算法伪代码(用注释描述思路)
- 补全关键变量定义
- 最后处理边界条件
记住:Python考试通常按步骤给分,即使没写完,把结构搭好也能拿基础分。有次看到有个同学写了 # 这里应该用排序算法 的注释,老师居然给了1分步骤分!
更多推荐
所有评论(0)