-1

ユーザーがモジュールと成績を入力し続け、それを辞書 {module:grades} として保存し、この辞書をリストに保存できるようにしようとしています。

これには3つの問題があります。

  1. F7 である 2 番目の raw_input で F6 を使用できません。
  2. 次に、「done」を使用してループを停止しています。情報を印刷すると、次のようになります。

{完了: 100} {完了: 80}

などなど..そのため、モジュール名は「完了」という単語に置き換えられ続けます。

  1. そして最後に、印刷物を次のように表示しようとしています:(これは今は起こっていません..)

成績: コンピューター サイエンス: 100 コンピューター グラフィックス: 80

私は立ち往生しているこの部分を除いて、残りの作業を完了しました。どんな援助でも、深く感謝します。どうもありがとう。

students = []

class Student:
    grades = {}

    def setGrades(self, grades):
        self.grades = grades

    def addStudent():
        while F6 != 'done':
            F6 = raw_input("Please enter module name. type 'done' to quit: ")
            if F6 == 'done':
                break
            F7 = raw_input("Please enter the grades for " ,F6, ':')


student.setGrades({F6:F7})
4

1 に答える 1

0

まず、コード (そのまま) は次のようになります。

students = []

class Student:
    grades = {}

    def setGrades(self, grades):
        self.grades = grades

    def addStudent():
        while True:
            F6 = raw_input("Please enter module name. type 'done' to quit: ")
            if F6 == 'done':
                break
            F7 = raw_input("Please enter the grades for " ,F6, ':')
            student.setGrades({F6:F7})

私の意見では、成績を設定するためのより良い API も必要です。このようなもので十分です:

def set_grades(self, lesson, grade):
    self.grades[lesson] = grade

最後に、成績を印刷するには、次のようなメソッドが必要です。

def print_grades(self):
    for lesson, grade in grades.items():
        print lesson, grade

最後になりましたが、生の入力で F6 を使用するには、次のようにする必要があります。

F7 = raw_input("Please enter the grades for %s: " % F6)

要約すると、私があなただったら、私のコードは次のようになります。

class Student:
    grades = {}

    def set_grades(self, lesson, grade):
        self.grades[lesson] = grade

    def addStudent():
        while True:
            F6 = raw_input("Please enter module name. type 'done' to quit: ")
            if F6 == 'done':
                break
            F7 = raw_input("Please enter the grades for %s: " % F6)
            student.setGrades(F6, F7)

    def print_grades(self):
        for lesson, grade in grades.items():
            print lesson, grade
于 2012-12-07T09:33:31.897 に答える