python小实验

要求:

创建一个文件,通过input()函数向文件中写入学生相关信息,格式为“姓名,性别,年龄,语文成绩,数学成绩,英语成绩”,当输入“-1”时结束输入。统计所有学生的总成绩、排序,并写入新文件中。

思路:

通过两个函数,Write()和Count()来分别实现读和写;

代码片段:
import csv
#通过input()函数向文件中写入学生相关信息,格式为“姓名,性别,年龄,语文成绩,数学成绩,英语成绩”,当输入“-1”时结束输入
def Write():
    headers = ['Name','Sex','Age','chNum','maNum']
    list1=[('二哈','男',21,44,44),('阿拉斯加','男',33,33,55),('泰迪','女',22,34,25)]
    
    tu=()
    n=None
    while(n != '-1'):
        t1 = str(input("输入名字:"))
        t2 = str(input("输入性别:"))
        t3 = int(input("输入年龄:"))
        t4 = float(input("输入语文分数:"))
        t5 = float(input("输入数学分数:"))
        tu = (t1,t2,t3,t4,t5)
        list1.append(tu)
        n = input('任意键回车继续,输入 -1 开始写入:')
       
    try:
        with open("F:\python学习\exe6\grade.csv","w",encoding='utf-8',newline = '') as file:
            fw = csv.writer(file)
            fw.writerow(headers)
            fw.writerows(list1)
            print("将文件写入grade.csv成功")
    except Exception as ex:
        print(ex)
        print("将文件写入grade.csv失败")


#统计所有学生的总成绩、排序,并写入新文件statistics.csv中
def Count():
    ch = []
    ma = []
    chn = 0
    man = 0
    list1 = []
    try:
        with open("F:\python学习\exe6\grade.csv","r",encoding='utf-8',newline = '') as file:
            fr = csv.reader(file)
            list1 = [li for li in fr]

            print("读取文件grade.csv成功")
    except Exception as ex:
        print(ex)
        print("读取grade.csv失败")
    try:
        with open("F:\python学习\exe6\statistics.csv","w",encoding='utf-8',newline = '') as file:
            fw = csv.writer(file)
            list1[0].append('总成绩')
            fw.writerow(list1[0])
            #按语文成绩从小到大排名
            for x in range(1,len(list1)):
                list1[x].append(float(list1[x][3])+float(list1[x][4]))
                print(list1[x])
            list1 = sorted(list1[1:], key = lambda x:float(x[3]))
  
            fw.writerows(list1)
            print("写入statisticx.csv成功")

    except Exception as ex:
        print(ex)
        print("写入statisticx.csv失败")


Write()
Count()

结果显示:

statisticx.csv

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值