实验步骤
全国统一考试参加的考生为9万,现在请你伪造考试成绩数据,数据格式如下:
保存为文本格式:
要求与限制:
1、伪造学生人数不得少于900万
2、每条记录中的分隔符用空格
3、学生姓名只需要英文即可,不可重复
4、学生的每科成绩须符合正态分布,语文满分150,数学150,英语150,综合300.
请编写软件模拟考试成绩数据,同时输出整个程序的运行时间。
测试数据生成代码:
fromfakerimportFaker
importrandom
importnumpyasnp
importtime
importsys
defget_random_name():# 生成随机姓名
fake1 = Faker()
returnfake1.name()
defget_random_id():# 生成10位准考证号
id_list = []
foriinrange(10):
random_num = random.randint(,9)
id_list.append(random_num)
num_list =''.join(str(i)foriinid_list)# 遍历list的元素,把他转化成字符串
returnnum_list
defget_random_score():# 生成随机成绩
random_score = np.random.normal(96,6)# 正态分布
returnint(random_score)
defget_random_score2():# 生成随机综合成绩
random_score2 = np.random.normal(250,8)# 正态分布
returnint(random_score2)
defget_fake_data():
temp = sys.stdout# 记录当前输出指向,默认是consle
foriinrange(60): # 这里以生成60条数据为测试
id_num = get_random_id()
name = get_random_name()
Chinese = get_random_score()
Math = get_random_score()
English = get_random_score()
Zonghe = get_random_score2()
Total = Chinese+Math+English+Zonghe
withopen("D:\新建文件夹\FakeData.txt","a")asf:# 两次输出重定向
sys.stdout = f# 输出指向txt文件
print(id_num,name,Chinese,Math,English,Zonghe,Total)
sys.stdout = temp# 输出重定向回consle
if__name__ =='__main__':
start = time.clock()
get_fake_data()
end = time.clock()
print('Running time:%s Seconds'% (end-start))
生成文件内容部分截图:
好了,本次实验目的主要是学习使用Python文件读写和掌握Python字符处理。
See U next time!
领取专属 10元无门槛券
私享最新 技术干货