学生';s平均成绩和科目';python中的s级平均计算器
我正在用python制作一个计算器,它能给我学生的平均成绩和科目的平均成绩。 下面是我需要如何输入和输出的图片学生';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):
我正在尝试使用嵌套列表和函数。我已经尝试过了。您可以使用
而循环和函数轻松实现这一点
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。