Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
学生';s平均成绩和科目';python中的s级平均计算器_Python - Fatal编程技术网

学生';s平均成绩和科目';python中的s级平均计算器

学生';s平均成绩和科目';python中的s级平均计算器,python,Python,我正在用python制作一个计算器,它能给我学生的平均成绩和科目的平均成绩。 下面是我需要如何输入和输出的图片 我正在尝试使用嵌套列表和函数。我已经尝试过了。您可以使用而循环和函数轻松实现这一点 import pandas list_marks = {} subjects = int(input("Number of subjects: ")) while(True): name = input("Name of student (leave empty if finished):

我正在用python制作一个计算器,它能给我学生的平均成绩和科目的平均成绩。 下面是我需要如何输入和输出的图片


我正在尝试使用嵌套列表和函数。我已经尝试过了。

您可以使用
循环和函数轻松实现这一点

import pandas

list_marks = {}

subjects = int(input("Number of subjects: "))

while(True):
    name = input("Name of student (leave empty if finished): ")
    if not name:
        break

    scores = []
    for i in range(1, subjects + 1):
        scores.append(int(input("Subject %d: " % i)))

    list_marks[name] = scores

scores = pandas.DataFrame(list_marks)
print(scores)
#     student1  student2  student3
# 0       100        90        80
# 1       100        90        60
print(scores.mean(axis=0))
# student1    100.0
# student2     90.0
# student3     70.0
# dtype: float64
print(scores.mean(axis=1))
# 0    90.000000
# 1    83.333333
# dtype: float64
或者使用NumPy:

import numpy

scoresarray = numpy.array(list(list_marks.values()))
print(numpy.mean(scoresarray, axis=0))
# [ 90.          83.33333333]
print(numpy.mean(scoresarray, axis=1))
# [ 100.   90.   70.]
试试这个代码

  def calc(student_count):
        list_marks = []
        for i in range(int(student_count)):
            student_name = input("name of student?")
            sub1_score = input("Score of subject 1?")
            sub2_score = input("Score of subject 2?")
            average = (int(sub1_score) + int(sub2_score))/2
            list_marks.append([student_name,sub1_score,sub2_score,average])
        print (list_marks)
        return list_marks                    


    no_of_students = input("How many students?")
    #no_of_subjects = input("How many subjects?")
    calc(no_of_students)  
这将为两个主题生成所需的输出


如果你有很多主题,求和并除以它们的计数

Nils,先生,你能发布你在开始时发布的上一个答案吗?我已经添加了Pandas和NumPy解决方案。谢谢,在你的代码中,当询问“学生姓名”时,我们必须将输入更改为原始输入。还有什么办法可以打印平均分吗?@SRingne我把它添加到代码中,没有测试它,但它应该可以很好地工作。科目的数量也是动态的,不仅仅是2。我认为将所有成绩放在excel或csv文件中更为实际,其中的列或行可以读入python。要计算平均值,请查阅numpy mean。