怎么将standard = f1.readlines()逐行读取答案改成逐个,用;间隔
时间: 2024-02-29 15:51:35 浏览: 142
python: line=f.readlines()消除line中\n的方法
如果你想将`standard = f1.readlines()`逐行读取答案改为逐个,并且用分号`;`来分隔答案,可以使用`split()`方法将每行答案拆分为一个个单独的答案,并使用`extend()`方法将它们添加到列表中。以下是修改后的代码示例:
```python
# 打开标准答案文件和答题答案文件
with open('standard_answers.txt', 'r') as f1, open('student_answers.txt', 'r') as f2:
# 逐个读取答案,并用分号分隔
standard = []
for answer in f1:
standard.extend(answer.strip().split(';'))
student = []
for answer in f2:
student.extend(answer.strip().split(';'))
# 计算每个答案是否正确,并计算分数
score = 0
wrong = []
for i in range(len(standard)):
if standard[i] == student[i]:
score += 1
else:
wrong.append(f"第{i+1}题:标准答案是{standard[i]},你的答案是{student[i]}")
# 输出分数和错误的内容
print(f"你的得分是{score}分(满分{len(standard)}分)")
if wrong:
print("以下是你的错误答案:")
for w in wrong:
print(w)
```
在这个修改后的代码示例中,我们首先将`standard`和`student`定义为空列表。然后,我们使用`for`循环逐行读取答案,并使用`strip()`方法去掉每行答案的换行符和空格。接着,我们使用`split(';')`方法将每行答案按照分号`;`拆分为多个单独的答案,并使用`extend()`方法将它们添加到列表中。最后,我们逐个对比每个答案,并计算得分和错误的内容。
阅读全文