簡単な質問...私は、「宿題」、「クイズ」、および「テスト」に基づいて最終成績のパーセンテージを計算する小さなプログラムに取り組んでいます。これは私が新しいことをテストしているプログラムであり、クラスで、またはクラス内でこれらすべてをどのように使用できるか疑問に思っていました。
機能的なものはそのままにして、基本的にクラスを使用して、生徒の名前、最終的な成績、パーセンテージの素敵な文字列を出力することを考えました。授業内で簡単にプリントアウトしても、外部データを持ち込めなくて困っています。何か案は?
また、ユーザーの入力によって新しい空の辞書を作成できるようにする方法はありますか? (複数の辞書を作成できれば、クラス平均を計算する関数またはメソッドを作成できるかもしれません) よろしくお願いします。ありがとう!
student1 = {}
student = [student1]
def maker_d():
name = raw_input("Please enter the student's name: ")
student1['Name'] = name
homework = raw_input("Please enter all of the student's homework grades separated by a space: ")
homework = [float(i) for i in homework.split()]
student1['homework']= homework
quizzes = raw_input("Please enter all of the student's quiz scores separated by a space: ")
quizzes = [float(i) for i in quizzes.split()]
student1['quizzes'] = quizzes
tests = raw_input("Please enter all of the student's test scores separated by a space: ")
tests = [float(i) for i in tests.split()]
student1['tests'] = tests
def average(student):
return sum(student) / len(student)
def get_average(student):
h = average(student['homework'])
q = average(student['quizzes'])
t = average(student['tests'])
total_average = (h * 0.1) + (q * 0.3) + (t * 0.6) #designates homework as 10%, quizzes as 30% and tests as 60% of final grade average
return total_average
def get_letter_grade(score):
if score >= 90:
return "A"
elif 80<= score <90:
return "B"
elif 70 <= score < 80:
return "C"
elif 60 <= score < 70:
return "D"
else:
return "F"
def get_class_average(student):
total = 0
for each in student:
total += get_average(each)
return total / len(student)
return get_class_average(get_average[student])
class FinalGradePrinter(object):
def __init__(self,name):
self.name = name
def __str__(self,name):
print "% ',' your final grade is a %s based on your overall percentage of %f" % (self.name)
def main():
maker_d()
print get_class_average(student)
print get_letter_grade(get_class_average(student))
if __name__ == '__main__':
main()