首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

高考结束了,教你用Python来伪造900万条成绩数据!

实验步骤

全国统一考试参加的考生为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!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180608A21SUV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券