读入一个Python程序,将其单行的注释(即 每一行“#”后面的内容)删除后保存;
with open('05_with.py') as f, open('delete.txt', 'w+') as f1:
for str in f:
a = 0
for i in str:
if i == '#':
a += 1
if a == 0:
f1.write(str)
else:
li = str.split('#')
f1.write(li[0] + '#' + '\n')
随机生成100个学生的成绩保存在文件scores.txt文件中;
2). 从文件中读出学生的成绩,输出最高、最低,以及平均成绩(平均成绩为小数)。
3). 从文件中读出学生的成绩,统计90分以上学生的人数并输出。
4). 求出这次考试的平均成绩,并统计各分数段的人数(优秀:≥90,良好:≥80,中等:≥70,及格:≥60,不及格:<60)。
5). 将统计结果保存到数据文件statictic.txt中
import random
def studentscores(filename):
with open(filename, 'a+') as f:
for i in range(100):
f.write(str(random.randint(0, 100)) + '\n')
def max_min_avg_scores(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
def scores(filename):
with open(filename, 'r+') as f:
li = [int(i) for i in f.readlines()]
li1=[i for i in li if i>90]
return len(li1), li1
def scores1(filename):
score = dict()
with open(filename, 'r+') as f:
li=[int(i) for i in f.readlines()]
count1,count2,count3,count4,count5=0,0,0,0,0
for i in li:
if i >= 90:
count1 += 1
elif i >= 80 and i < 90:
count2 += 1
elif i >= 70 and i < 80:
count3 += 1
elif i >= 60 and i < 70:
count4 += 1
else:
count5 += 1
score['优秀']=count1
score['良好']=count2
score['中等']=count3
score['及格']=count4
score['不及格']=count5
return score
def main(filename1, filename2):
a = studentscores(filename1)
b = max_min_avg_scores(filename1)
c = scores(filename1)
d = scores1(filename1)
with open(filename2, 'w+') as f:
f.write(str(a)+'\n')
f.write(str(b)+'\n')
f.write(str(c)+'\n')
f.write(str(d)+'\n')
f.seek(0, 0)
print(f.read())
main('socres.txt','statictic.txt')
运行结果
生成的文件