我用python做了一個計算器,它給了我學生成績平均值和學科成績平均值。下面的 是我如何需要我的輸入和我的輸出應該如何看的圖片。python的學生平均成績和科目成績平均值計算器
我想使用嵌套列表和函數。我試過這個。
我用python做了一個計算器,它給了我學生成績平均值和學科成績平均值。下面的 是我如何需要我的輸入和我的輸出應該如何看的圖片。python的學生平均成績和科目成績平均值計算器
我想使用嵌套列表和函數。我試過這個。
您可以輕鬆地用while
循環做到這一點,熊貓
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)
這將產生你想要的輸出爲兩個科目。
如果你有很多科目,由他們計數
我認爲這是更實際的把所有的成績在Excel或CSV文件,該行或列,其中可以讀入蟒蛇它們求和,然後除以。要計算平均值,請查看numpy平均值。 – mikey