2

簡単な質問...私は、「宿題」、「クイズ」、および「テスト」に基づいて最終成績のパーセンテージを計算する小さなプログラムに取り組んでいます。これは私が新しいことをテストしているプログラムであり、クラスで、またはクラス内でこれらすべてをどのように使用できるか疑問に思っていました。

機能的なものはそのままにして、基本的にクラスを使用して、生徒の名前、最終的な成績、パーセンテージの素敵な文字列を出力することを考えました。授業内で簡単にプリントアウトしても、外部データを持ち込めなくて困っています。何か案は?

また、ユーザーの入力によって新しい空の辞書を作成できるようにする方法はありますか? (複数の辞書を作成できれば、クラス平均を計算する関数またはメソッドを作成できるかもしれません) よろしくお願いします。ありがとう!

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()
4

1 に答える 1

4

クラスは、アプリケーションで使用するオブジェクトのテンプレートであり、オブジェクトは、その「もの」の属性をカプセル化することによって「もの」をカプセル化することを目的としています。また、それらの属性を操作する関数 (属性値に基づいて値を計算するなど) 、それらを変更するなど)。このトピックはあまりにも複雑すぎて、ここで紹介することはできません。オブジェクト指向プログラミングについて調査する価値があります。

あなたの場合、間違いなくStudentクラスとして持つケースがあります。これは、属性を持つコード内の「もの」であり、それらの属性で動作する関数でもあります。以下は、独自の Student クラスを作成するための良い出発点です。クラスに入力して、それを使用するようにコードを変更することをお勧めします (オブジェクト指向プログラミングについて学習する必要があります)。サンプルを大きくするにつれて、クイズ、テスト、および宿題用のクラスも作成することが必要になる場合があります。

class Student:

    # Constructor
    def __init__(self, name, homework, quizzes, tests):
        self.name = name
        self.homework = homework
        self.quizzes = quizzes
        self.tests = tests

    # Function to return average for this student
    def get_average(self):
        h = average(self.homework)
        ...
        return total_average

頑張って楽しんでね!

于 2013-07-03T08:35:40.660 に答える