1. Python编程实战:10个典型问题解析与优化
作为一名有多年Python开发经验的程序员,我经常遇到各种数据处理和算法问题。今天整理了一组非常实用的Python编程题目,涵盖了文件处理、类型转换、算法实现等常见场景。这些题目都来自实际开发需求,每个解决方案都经过反复优化,希望能给Python学习者带来启发。
1.1 文件数据处理与爱好提取
第一个问题涉及CSV文件处理和条件筛选。我们需要从UTF-8编码的CSV文件中提取特定人员的爱好信息。这种场景在实际开发中非常常见,比如用户画像分析、兴趣推荐等场景。
python复制import csv
def main(name):
alist = []
with open('data131.csv', 'rt', encoding='utf-8') as f: # 使用with确保文件正确关闭
csv_data = csv.reader(f)
headers = next(csv_data) # 单独读取标题行
for row in csv_data:
if row[0] == name:
for i in range(1, len(row)):
if row[i] == '是':
alist.append(headers[i])
return ','.join(alist)
return '未找到该用户' # 添加默认返回值
注意事项:
- 使用with语句管理文件资源,避免忘记关闭文件
- 先读取标题行,再处理数据行,逻辑更清晰
- 添加默认返回值,增强代码健壮性
- CSV文件处理要考虑编码问题,特别是中文内容
1.2 成绩等级转换与代码优化
第二个问题要求将百分制成绩转换为字母等级。原始代码存在几个问题:范围判断不准确、循环效率低、返回值格式不一致。
python复制grades = {'A': (90, 101), 'B': (80, 90),
'C': (70, 80), 'D': (60, 70),
'F': (0, 60)}
def main(score):
try:
score = float(score)
except ValueError:
return '无效成绩'
if score < 0 or score > 100:
return '无效成绩'
for grade,
