#完成下面示例体验性实训(理解命令格式及功能,输出结果等)
#【示例】请编程,模拟将44名学生的基本数据(学号,姓名,性别,成绩)输出。并存入的学生成绩表.xlsx。
import numpy as np
import pandas as pd
import random
xb=['林','谢','张','王','吕','李','黄','陈','孙','毛','文','蒋','卢','杨','吴','郭','许','姚','马','邹','金','牛']
mj=['芳','军','明','华','玉','素','小','红','伟','青','文','章','宏','志','中','宫','金','吴','辉','鹏','京','松','福','彬','赞','海','伟']
hm=np.arange(2104100101,2104100145,1) #生成44个在[a,b)之间的数 列表
cg=np.random.randint(50,100, 45) #均匀分布,随机生成45个在[a,b)之间的整数 列表
xsdata=[('学号','姓名','性别', '成绩')]
xsdataw=[('学号','姓名','性别', '成绩')]
for k in range(44):
j=random.randint(0,20)
t=random.randint(0,20)
xm=xb[j]+mj[j]+mj[t] # 姓 随机取一个 xb[j] 名字 随机取两个字 mj[j]+mj[t]
sex='男'
if j%3==0:
sex='女';xsdataw=xsdataw+[(hm[k],xm,sex,int(cg[k]))]
xsdata=xsdata+[(hm[k],xm,sex,int(cg[k]))]
print(hm[k],xm,sex,int(cg[k]),'\n')
print("-"*60)
print(xsdata)
#输出女同学数据
for k in range(44):
if "女" in xsdata[k]:
print(xsdata[k])
#排序后输出成绩
print("成绩排序输出")
print(np.sort(cg))
# 模拟数据写入 .xlsx
writer = pd.ExcelWriter('HX21学生成绩表.xlsx')
df1 = pd.DataFrame(data=xsdata)
df2= pd.DataFrame(data=xsdataw)
df1.to_excel(writer,'21计应1班')
df2.to_excel(writer,'21计应1班女生表')
writer.save()
print("===模拟数据写入 HX21学生成绩表.xlsx 任务完成!===")
########## 模拟数据写入 .txt ##########
filename='hxstbd21.txt'
f= open(filename, 'a+')
if f==None:
f0=open(filename,'w')
f0.close()
f= open(filename, 'a+')
w=input("要将数据写入文本文件吗?(y/n) ")
if w=='y' or w=='Y' :
for k in range(44):
f.write(str(xsdata[k])) # f.writelines(w+"\n") 写入文件
f.close()
print("将数据写入",filename," ! \n")
print("===工作任务完成!===")

