计算student_grade.txt 中 语文成绩的平均值, 找出数学成绩最高的学生是谁

题目要求: 计算student_grade.txt 中 语文成绩的平均值, 找出数学成绩最高的学生是谁

方法一:

with open(‘student_grade.txt‘, ‘r‘, encoding=‘utf-8‘) as f:
    data = f.read()                                         #读取student_grade.txt的内容给data(文本)
data_lines=data.splitlines()                                #把文本转换成列表,同时去掉换行
empty={}                                                    #定义一个空字典
for i in data_lines:
    data_list=i.split(‘\t‘)
    empty[data_list[0]]=data_list[1:]                        #遍历列表data_lines中的每个元素,去掉‘\t‘后生成姓名和成绩对应的字典.
empty.pop(‘姓名‘)                                            #弹出标题行
shuxue=0
yuwen=0
for k,v in empty.items():
    yuwen=yuwen+int(v[0])                                   #遍历字典,求语文成绩的总和
    if int(v[1])>shuxue:
        shuxue=int(v[1])                                    #遍历字典empty,求出最高的数学成绩
        name=k
print(name+‘同学的数学成绩最高,为%d分.‘%shuxue,‘\n‘,‘语文成绩的平均值为%d分.‘%(yuwen/len(empty)))

  

原文地址:https://www.cnblogs.com/theoup/p/9777068.html

时间: 2024-10-19 06:50:45

计算student_grade.txt 中 语文成绩的平均值, 找出数学成绩最高的学生是谁的相关文章

java 从键盘输入学生成绩,找出最高分,并输出学生成绩等级。

/*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入学生人数,根据人数创建int数组,存放学生成绩:*/ package study01; import java.util.Scanner; public class Score { public static void main(String[] args) { Scanner sc = new Scanne

(要求使用指针方法)一个班有四名学生,五门课。(1)求第一门课的平均分;(2)找出有两门以上课不及格的学生,输出他们的学号、全部课程成绩和平均成绩;(3)找出平均成绩在90分以上或全部课程成绩均在85

(3)找出平均成绩在90分以上或全部课程成绩均在85分以上的学生.分别编写3个函数实现以上3个功能. #include<stdio.h> #include<stdlib.h> void aver1(float *b) { int i,j; float s=0; for(i=0;i<4;i++) {  s=s+*(b+j); j=j+5;} printf("%f\n",s/4); } void excellent(float (*b)[5]) { int n

在一个SQL Server表中的多个列找出最大值

在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(40), UpdateByApp1Date DATE

poj 2253 一条路径中的最大边 再找出最小的

题目大意,有两只青蛙,分别在两个石头上,青蛙A想要到青蛙B那儿去,他可以直接跳到B的石头上,也可以跳到其他石头上,再从其他石头跳到B那儿,求青蛙从A到B的所有路径中最小的Frog Distance,我们定义Frog Distance为从A到B的一条路径中最大的一条边假如点0到点1有3条路第一条路径 会经过2个点 3条边 边的值为 1 4 3第二条路径 一条边 5第三条路径 1 3 2 那么 Frog Distance 分别为 4 5 3 则最终输出3 Sample Input 20 03 4 3

poj 1797 一条路径中的最小边 再找出最大的

Sample Input 1 // T3 3// n m1 2 3//u v w1 3 42 3 5Sample Output Scenario #1:4 1 # include <iostream> 2 # include <cstdio> 3 # include <cstring> 4 # include <algorithm> 5 # include <cmath> 6 # define LL long long 7 using names

一个链表中包含环,请找出该链表的环的入口结点

方法一.用HashSet来解决 1 public ListNode EntryNodeOfLoop(ListNode pHead){ 2 HashSet<ListNode> hs = new HashSet<ListNode>(); 3 while(pHead!=null){ 4 if(!hs.add(pHead))//如果包含了,那么这个就是入口结点 5 return pHead; 6 pHead = pHead.next; 7 } 8 return null; 9 } 方法二.

一个数组中只有两个数是不同的,其他数字是成对出现的,下面代码可将该数组中不同的两数字找出并输出

#include<stdio.h>int main(){ void function(int * str, int size, int *p1, int *p2); int i = 0; int num1 = 0, num2 = 0; int arr[10] = {0}; int len = sizeof(arr) / sizeof(arr[0]); for (i = 0; i < len; i++) {  scanf("%d", &arr[i]); }  f

找出给定的一个字符串中最大的不重复子串,不重复子串即一个子串中不出现两个相同的字符

思路一:先找出一个字符串中所有子串,再找出所有子串中最长的那一个:思路二:每次找出的子串长度都比上一次的子串长,则最后的子串即是最长子串的长度数.我选择的是第二种方法. public class FindSubstringMaxlengthNoduplicate { public static void main(String[] args) { String s = "adcdghcwioizhfksjdyuiodfhjskhgkhgeisdcjdkh"; ArrayList<

JAVA写个东西读取TXT中的数据 且要计算出平均值和总值 最后还要按总值排序

AVA写个东西读取TXT中的数据 且要计算出平均值和总值 最后还要按总值排序 例如:要计算a.txt文档中内容可如下: 学号 姓名    语文 数学 英语 平均值 总值 排序 1    肯德基   90   98   97 2    经典款   98   97   92 3    肯德的   93   92   97 import java.io.*; import java.io.File; import java.util.ArrayList; import java.util.Iterat