python期末复习——文件

当前目录下有一个文件名为score1.txt的文本文件, 存放着某班学生的Python课程成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占30%,期末成绩占70%的比例计算总评成绩(取整数),并分学号、总评成绩两列写入另一文件score2.txt。 同时在屏幕上输出学生总人数,按总评成绩计90以上 、80~89、70~79、60~69、60分以下各成绩档的人数和班级总平均分(取整数)。

f=open("score1.txt","r") 
a=f.readlines() 
del a[0] #删除第一行的中文标题 
list2=[] 
for line in a: 
	line=line.strip() #去掉最右边换行 
	list1=line.split() #调用split方法用空格切割
	f_score=int(int(list1[2])*0.3+int(list1[3])*0.7)#算总评成绩
	list2.append([list1[0],list1[1],f_score])#添加到写出的列表
f.close() 
c=[0,0,0,0,0] 
count=0 
sum=0 
f2=open("score2.txt",'w') 
f2.write("学号\t\t姓名 \t总评成绩\n"); #制表符的写法是\t,作用是对齐表格的各列。
for L2 in list2: 
	if 90<L2[2]<=100: 
		c[0]+=1 
	elif L2[2]>=80: 
		c[1]+=1 
	elif L2[2]>=70: 
		c[2]+=1 
	elif L2[2]>=60: 
		c[3]+=1
	else: 
		c[4]+=1 
	count+=1 
	sum+=L2[2] 
	f2.write(L2[0]+"\t"+L2[1]+"\t"+str(L2[2])+"\n") 
f2.close() 
avg_score=int(sum/count) 
print(“学生总人数为%d,按总评成绩计,90以上%d人、\ 8089%d人、7079%d人、6069%d人、\ 60分以下%d人。班级总平均分为%d分。\ "%(count,c[0],c[1],c[2],c[3],c[4],avg_score))  

电子点名程序。

import openpyxl 
import random 
n=119 
m=5 
filename=r'python点名册.xlsx' 
wb=openpyxl.load_workbook(filename) 
ws=wb.worksheets[0] 
stulist=[] 
#下面的程序添加学生信息 
for i in range(7,n+7):
 	stulist.append([ws['B'+str(i).strip()].value,ws['C'+str(i).strip()].value])
#随机产生M个数字(范围:0-(119-1)) 
for i in range(m): 
	num=random.randint(0,n-1) 
	print(stulist[num]) 
	dao=input("请输入是否到(1-到,2-不到):") 
	if dao=='1': 
		ws['E'+str(num+7).strip()]="√" 
	elif dao=='2': 
		ws['E'+str(num+7).strip()]="×" 
	else: 
		break 
	wb.save(filename)  

随机产生M个数字

#随机产生M个数字(范围:0-(119-1)) 
for i in range(m): 
	num=random.randint(0,n-1) 
	print(stulist[num]) 
	dao=input("请输入是否到(1-到,2-不到):") 
	if dao=='1':
	 	ws['E'+str(num+7).strip()]="√"
	elif dao=='2':
		ws['E'+str(num+7).strip()]="×"
	else: 
		break 
wb.save(filename) 

扶贫重点对象做题记
编写程序,根据附件的高考模拟考试成绩表,输出总分前五名的学生姓名,班别,总分(从高到低)csv文件有干扰数据,要用程序排除。考号都是以3开头。
注意:第5名的输出结果可能是不齐的,网上搜索"python format 中文对齐"找解决办法。

fo=open("位置.csv","r",encoding="utf-8")
print("总分前5名的学生情况")
print("名词\t班别\t姓名\t总分")
ls=[]
for line in fo:
	line=line.replace("\n","")
	if str(line[0])=="3":
		ls.append(line.split(","))
ls1=[]
ls2=[]
s=0
for i in ls:	
	s=eval(i[3])+eval(i[4])+eval(i[5])+eval(i[6])+eval(i[7])+eval(i[8])
	a=(i[1],i[2],s)
ls2=sorted(ls1,ley=lambda x:x[2])
ls2.reverse()
for c in range(5):
	print("{}\t{}\t{}\t{}".format(c+1,ls2[c][0],ls2[c][1],ls2[c][2]))

在当前目录下有一个文件名为movie.txt,文件中有6列数据,包括No Name Country Score Lasting,分别表示序号、电影吗、上映年份、国家、评分和电影时长。李华只想观看时长在90分钟一下(包括90分钟)的电影。请你编写程序帮他挑选出符合条件的电影序号。一行打印一个序号写到文件out.txt中。

file=open(r"movie.txt",encoding="UTF8")
m=file.readlines()
del m[0]
num=[]
for line in m:
	line=line.strip()
	line=line.split()
	if int(line[5])<=90:
		num.append(line[0])
file.close()
infile=open("out.txt","w",encoding="UTF8")
for i in num:
	infile.write(i+"\n")
infile.close()
### Python 数据结构与算法期末考试复习资料 #### 一、二叉树定义及其基本操作 在Python中实现类似于C语言中的二叉树结构,可以通过类来模拟。下面是一个简单的例子: ```python class BiTNode: def __init__(self, data=None): self.data = data self.lchild = None self.rchild = None def create_bitree(): root = BiTNode(data='A') b = BiTNode(data='B') c = BiTNode(data='C') d = BiTNode(data='D') e = BiTNode(data='E') f = BiTNode(data='F') root.lchild = b root.rchild = c b.lchild = d b.rchild = e c.rchild = f return root ``` 此部分展示了如何创建一个简单的二叉树[^1]。 #### 二、作业调度问题简介 对于多机并行环境下的作业调度问题,在特定条件下可采用贪心算法获得较优解。当待处理的任务数量小于等于可用机器数时,可以直接分配;而当任务量超过机器数目,则需设计更复杂的贪婪策略来进行优化[^2]。 #### 三、Pandas库的数据读取与保存功能介绍 利用`pandas`库能够方便快捷地完成CSV文件的导入导出工作。通过指定不同的参数选项还可以满足更多样化的实际需求,比如自定义分隔符或是设定索引列等特性[^3]。 #### 四、孩子表示法详解 为了更好地理解和掌握复杂数据结构的应用场景之一——森林转换成二叉树的过程,有必要了解孩子表示法的概念。这种方法涉及到两种类型的节点以及相应的辅助数据结构的设计思路[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值