1. ホーム
  2. python

[解決済み] テストの点数を5つ入力させるプログラムを作成しなさい。それをレターグレードに対応させる

2022-01-31 04:06:50

質問内容

Determine_grade - 引数として一つの数値を受け取り、以下の採点基準に基づいて得点の文字等級を表示します。

Score 90-100 80-89 70-79 60-69 Below 60

Letter Grade A
B
C
D
F

  • calc_average - 引数として成績のリストを受け取り、その平均と、その平均に相当する文字の成績を表示します。
  • main - ユーザーに5つのテストの点数を入力させ、それを数字としてリストに入れます。
  • showLetters - ユーザーが入力した点数を、文字による等級付けを行い、echo で表示します。

主要なステップごとにコメントを書きます。以下はプログラムの実行例です。

成績を入力する:65,80,90,71,85

65.0 is D
80.0 is B
90.0 is A
71.0 is C
85.0 is B

平均は78.2であり、Cである。

def main():
    enter code herescores = input("Enter five test scores seperated by commas:")
    listScores = scores.split(",")`enter code here`
    determine_grade(listScores)
    calc_average(listScores)

def determine_grade(grades):
    for num in grades:
        if int(num) >= 90 and int(num) <= 100:
            print("A")
        elif int(num) >=80 and int(num) <= 89:
            print("B")
        elif int(num) >=70 and int(num) <= 79:
            print("C")
        elif int(num) >=60 and int(num) <= 69:
            print("D")
        else:
            print("F")


def calc_average(grades):
    total = 0
    for num in grades:
        total += int(num)
    average = total / 5
    print(average)


#def show_letters(values):
main()

これは、私がこれまでに持っているものですが、それをフォーマットする方法を理解するように見えることはありません?

どのように解決するのですか?

これは、あなたが望むように出力をフォーマットします。

def main():
    scores = input("Enter five test scores separated by commas: ")
    return [int(num) for num in scores.split(",")]


def determine_grade(num):
    if 90 <= num <= 100:
        letter_grade = "A"
    elif 80 <= num <= 89:
        letter_grade = "B"
    elif 70 <= num <= 79:
        letter_grade = "C"
    elif 60 <= num <= 69:
        letter_grade = "D"
    else:
        letter_grade = "F"
    return letter_grade


def calc_average(grades):
    average = sum(grades) / len(grades)
    grade = determine_grade(average)
    print("The average is: {:.1f} which is {}".format(average, grade))


def show_letters(num, letter_grade):
    print("{:.1f} is {}\n".format(num, letter_grade))


lst = main()
for n in lst:
    show_letters(n, determine_grade(n))
calc_average(lst)