0
missing = 0
highscore = 0
inclass = 0
takenexam = 0
count = 0
total = 0

minGrade = 100 #assuming 100 is the highest grade possible.
maxGrade = 0

score = int(input("Enter a score (-1 to quit): "))

while score > -1 :
    if score >= 80 :
        highscore = highscore + 1
    if score == 0 :
        missing = missing + 1
    if 0 <= score <= 100 :
        inclass = inclass + 1
    if 0 < score <= 100 :
        takenexam = takenexam + 1
    # Determine if the score is the min or max score.
    if score < minGrade :
        minGrade = score
    if score > maxGrade :
        maxGrade = score
    # Add the grade to the running total
    total = total + score
    count = count + 1

    # Read the next grade.
    score = int(input("Enter a score (-1 to quit): "))

# Print the results.
if count > 0 :
    average = total / count
print("number of students in the class: ", inclass)
print("number of students who missed the exam: ", missing)
print("number of students who took the exam: ", takenexam)
print("number of students who scored high: ", highscore)
print("The average of all students in the class %.2f" % average)

これは私が現在コーディングしている方法です。これがセンテニアル制御ループを満たすのにどのように役立つか、また、試験を受けるすべての学生の平均を追加する方法に興味がありました。

4

4 に答える 4

0

次のブロックをインデントしてwhileループ内に入れたいようです。

# Add the grade to the running total
total = total + score
count = count + 1

# Read the next grade.
score = int(input("Enter a score (-1 to quit): "))
于 2013-10-05T02:26:26.170 に答える
0

このコードを試してください。あなたのロジックはほとんど問題ありませんでした。インデント、印刷ステートメント、いくつかの変数名をいくつかの場所でサニタイズする必要がありました (max Grade代わりに、maxGradeなどを使用しました)。maxGradmaxGrade

#current code
missing = 0
highscore = 0
inclass = 0
takenexam = 0
count = 0
total = 0
average_taken = 0
minGrade = 100 #assuming 100 is the highest grade possible.
maxGrade = 0

score = int(input("Enter a score (-1 to quit): "))

while score > -1 :
    if score >= 80 :
        highscore = highscore + 1
    if score == 0 :
        missing = missing + 1
    if 0 <= score <= 100 :
        inclass = inclass + 1
    if 0 < score <= 100 :
        takenexam = takenexam + 1
    # Determine if the score is the min or max score.
    if score < minGrade :
        minGrade = score
    if score > maxGrade :
        maxGrade = score
    # Add the grade to the running total
    total = total + score
    count = count + 1

    # Read the next grade.
    score = int(input("Enter a score (-1 to quit): "))

# Print the results.
if count > 0 :
    average = float(total) / count
if takenexam > 0 :
    average_taken = float(total) / takenexam

print("\n\n")
print "Grade Result -------------\n"
print "Total number of students in the class: ", count
print "number of students who missed the exam: ", missing
print "number of students in the class: ", inclass
print "number of students who took the exam: ", takenexam
print "number of students who scored high: ", highscore
print("The average grade is %.2f" % average)
print("The average grade for students taking the exam is %.2f" % average_taken)
于 2013-10-05T02:34:31.160 に答える
0

delim を使用する場合は、while ループで設定してください。

元:

While X != -1.....

値が -1 の場合、何らかの終了コードを使用できます。ただし、一般に、それは while ループを終了する delim です。それ以外の場合は、値を追加し続けるオプションがあります。一方、平均は、合計されたすべてのスコアで割った合計金額から取得されます。

例: 1 人の生徒が 1 つの試験を受けて合格し、もう 1 つの試験を受けなかった。100 + 0(totalScores) = 100 / 2(exams taken) = .550%とも呼ばれます。受験した試験にカウント変数を設定し、それらすべてに追加されたスコアに別の変数を設定します。これは、平均を見つけるのに役立ちます。頑張ってください!

于 2014-06-25T20:48:54.140 に答える
0

これはあなたのコードの簡単な改良です... ansh0lのように、私はそれを少しきれいにしました。私は何かを最適化したり、エラーをキャッチするためにコードを改善するための強力な努力をしたりして、あなたの宿題をしませんでした (数字を入力しないとどうなりますか? --- エラー!)。しかし、これを試してみてください。これは私にとってはうまくいくようで、あなたprintの 's を機能させることができました。

注意!!! 私は python 2.7 を使用していますが、あなたは python 3.* を使用しています。これを機能させるには、おそらく上部の私のimportステートメントを削除する必要があります。

from __future__ import print_function

#current code
missing = 0
highscore = 0
inclass = 0
takenexam = 0
count = 0
total = 0
## Setting the initial score so the 'while' condition kicks-off.
score = 0 
minGrade = 100 #assuming 100 is the highest grade possible.
maxGrade = 0

while score > -1 :
    score = int(input("Enter a score (-1 to quit): "))
    if score == -1:
        break
    elif score >= 80 :
        highscore = highscore + 1
    elif score == 0 :
        missing = missing + 1
    else:
        ## Just being explicit!
        pass


    if 0 <= score <= 100 :
        inclass = inclass + 1
        takenexam = takenexam + 1
    else:
        ## Just being explicit!
        pass

# Determine if the score is the min or max score.
    if score < minGrade :
        minGrade = score
    if score > maxGrade :
        maxGrade = score

    # Add the grade to the running total
    total = total + score
    count = count + 1

# Print the results.
if count > 0 :
    average = total / count


print("number of students in the class: ", inclass)
print("number of students who missed the exam: ", missing)
print("number of students who took the exam: ", takenexam)
print("number of students who scored high: ", highscore)
print("The average grade is %.2f" % average)
于 2013-10-05T02:41:17.747 に答える