实操题目:从.csv文件中的谜语中随机抽十道题组成试卷,试卷共五套。
程序:
import os
import csv
import random
def getDic(Name):#创建字典,用谜面做键,用谜底做值
dic = {}
with open(Name, 'r') as file:
reader = csv.reader(file)
for row in reader:
dic[row[0]] = row[1]
pass
return dic
def creatPaper(dic, n):#创建试卷
test = []
items = list(dic.keys())
for i in range(n):
random.shuffle(items)#将谜题顺序打乱
list10 = items[:10]#取乱序中的前十个作为试卷内容
test.append(list10)
pass
return test
def createFile(lsPaper, lsAnswer, n):创建试卷文件和答案文件
for i in range(n):
fpn = 'paper' + str(i + 1) + '.txt'#创建试卷文件,文件名自加1
with open(fpn, 'w', encoding='utf-8') as filep:
filep.writelines([item + 'n' for item in lsPaper[i]])#将内容写入文件
fan = 'answer' + str(i + 1) + '.txt'#创建答案文件,文件名自加1
with open(fan, 'w', encoding='utf-8') as filea:
filea.writelines([item + 'n' for item in lsAnswer[i]])
os.chdir('E:pythonProject')#改变当前工作目录到指定的路径
fn = 'doc2.csv'#文件名
n = 5#五套试卷和答案
doc = getDic(fn)#将创建的字典赋给doc
papers = creatPaper(doc, n)#用doc中的内容确定试卷中的十道题的内容
answers = []
for paper in papers:
ans = [doc[item] for item in paper]#为每份试卷写对应的答案
answers.append(ans)
createFile(papers, answers, n)
CSV中的谜语可以参考下图。
这个题难度适中,在大家学完‘文件和异常’篇章后,可以尝试进行编程。对于代码中的问题欢迎讨论交流。



