-2

私はPythonプログラミングの初心者です。私はクラスの宿題に取り組んでおり、これまでのところ以下のコードを取得しています。苦労している次のステップは、最低スコアと平均スコアを表示/出力する関数を作成することです。どんな方向性でも大歓迎です。

scores = """Aturing:Mark$86:
Inewton:Mark$67.5:
Cdarwin:Mark$90:
Fnightingale:Mark$99:
Cvraman:Mark$10:"""

students = {}
for studentdata in scores.split('\n'):
data = studentdata.split(':')
name = data[0]
students[name] = {}
for class_data in data[1:]:
    if class_data:
        Mark,class_score = class_data.split('$')
        students[name][Mark] = class_score

def Grade_Show(student,Mark):
    if student in students:
        if Mark in students[student]:
            print "Student %s got %s in the assignment %s" % (student,students[student][Mark],Mark)
        else:
            print "subject %s not found for student %s" % (Mark,student)
    else:
        print "student %s not found" % (student)

#do some testing
Grade_Show("Inewton","Mark")
4

2 に答える 2

0

テスト:scores = {'alex': 1, 'dave': 1, 'mike': 2};

まず、min()関数を使用して最低スコアを見つけます。

そう:

min_keys = [k for k, x in scores.items() if not any(y < x for y in scores.values())]

print('Lowest score:', str(min(scores.values())) + '.', 'Achieved by: ')
for student in min_keys:
    print(student)

出力:

Lowest score: 1. Achieved by: 
alex
dave

次に、平均を探していると仮定すると、次のようになります。

print('The average score was:', str(sum(scores.values()) / len(scores)))

出力:

The average score was: 1.3333333333333333

お役に立てば幸いです!- あとは、そのコードを含む関数を作成し、パラメータをdata. そうすれば、さまざまなクラスやテストを表す複数の辞書を持つことができます。scoreコード内の のすべてのインスタンスを に置き換えますdata

また、「最小スコア」コードは、最大スコアを与えるように簡単に変更できます。print最後に、プログラムのサイズによっては、後で呼び出すことができるように、ステートメントを使用するのではなく、出力を変数に格納することができます。returnこれは、結果ではなく、結果が必要であることも意味しますprint

于 2013-11-02T18:18:03.727 に答える
0

苦労している次のステップは、最低スコアと平均スコアを表示/出力する関数を作成することです。

ステップ1:

studentsデータ構造 ( ) とprintスコアだけを繰り返し処理できますか? それができれば、実行して最小スコアを見つけることができるはずです。

最低スコアを見つけるには、想定される最大値から始めて (たとえば、それが最高値の場合は変数を 100 に設定します)、すべてのスコア (for score in score...など) を反復処理し、各値が得られるかどうかをテストします。は、作成した変数よりも低くなります。

より低い場合は、作成した変数をそのより低い値に等しくします。その後、新しい値がこの新しい「最低」値よりも小さいかどうかを確認するために反復を続けます。最後に到達するまでに、最低値が提供されているはずです。

1 つのトリッキーな部分は、質問が必要とする場合、名前と最低値の両方を必ず出力することです。

ステップ2

平均の問題を解決するには、スコアを反復処理し、それらを新しいデータ構造に追加してから、それらの平均を取る方法を見つけるという、似たようなことを行います。

于 2013-11-02T17:31:14.550 に答える