"""
1. 读入一个Python程序,将其单行的注释(即 每一行“#”后面的内容)删除后保存;
"""
def delet_python(filename1,filename2):
with open(filename1,'r') as f1,open(filename2,'w+') as f2:
for i in f1:
a=0
for t in i:
if t =='#':
a+=1
if a==0:
f2.write(i)
else:
li=i.split('#')
f2.write(li[0]+'\n')
delet_python('作业2.py','作业3.py')
"""
2. 随机生成100个学生的成绩保存在文件scores.txt文件中;
2). 从文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
3). 从文件中读出学生的成绩,统计90分以上学生的人数并输出。
4). 求出这次考试的平均成绩,并统计各分数段的人数(优秀:≥90,良好:≥80,中等:≥70,及格:≥60,不及格:<60)。
5). 将统计结果保存到数据文件statictic.txt中
"""
import random
#1.生成文件
def score_stu(filename):
with open (filename,'a+') as f:
for i in range(100):
f.write(str(random.randint(1,100))+'\n')
#2.从文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
def math_score(filename):
with open (filename,'r+') as f:
li = [int(i) for i in f.readlines()]
max_score=max(li)
min_score =min(li)
avg_score=sum(li)/len(li)
return max_score,min_score,avg_score
#3). 从文件中读出学生的成绩,统计90分以上学生的人数并输出。
def read_score(filename):
with open (filename) as f:
count=0
li = [int(i) for i in f.readlines()]
li1=[]
for i in li:
if i >=90:
count+=1
li1.append(i)
return count,li1
#4). 求出这次考试的平均成绩,并统计各分数段的人数(优秀:≥90,良好:≥80,中等:≥70,及格:≥60,不及格:<60)。
def dict_scores(filename):
scores_dict={}
with open (filename) as f:
li = [int(i) for i in f.readlines()]
count1=count2=count3=count4=count5=0
for i in li:
if i >=90:
count1+=1
elif 80<=i<90:
count2+=1
elif 70<=i<80:
count3+=1
elif 60<=i<70:
count4+=1
else:
count5+=1
scores_dict['优秀']=count1
scores_dict['良好']=count2
scores_dict['中等']=count3
scores_dict['及格']=count4
scores_dict['不及格']=count5
return scores_dict
# 5). 将统计结果保存到数据文件statictic.txt中
def save_scores(filename1,filename2):
with open(filename2,'w+') as f2:
f2.write(str(score_stu(filename1)) +'\n')
f2.write(str(math_score(filename1)) +'\n')
f2.write(str(read_score(filename1)) +'\n')
f2.write(str(dict_scores(filename1)) +'\n')
f2.seek(0,0)
print(f2.read())
save_scores('scores.txt','statictic.txt')