0

ファイルを開いて全体の GPA を計算するプログラミングの課題があります。

ここで、A= 4、B = 3、C = 2、D = 1、E = 0 .txt ファイルには以下が含まれます。

ECS10A4

ECS20B3

JPN4 C 5

PHY9A D 5

最後の要素は単位数で、その前の文字は成績です。最後の要素と文字しか取得できませんでしたが、行き詰まりました。forループでifステートメントを使用して文字から数字を取得し続けていますが、うまくいかないようです。(私はプログラミングが初めてなので、どんな種類の助けも大歓迎です)ありがとう!

ここに私がこれまでに持っているものがあります:

f = open("grade_file.txt", "r")

line = f.readlines()

数字を分離します

for i in (行):

i = i.strip()

print(i[-1:])

文字を分離します

print("\n")

for i in (行):

i = i.strip()

print(i[-3:-2])

GPAは、単位数に受け取った成績を掛け、それを総単位数で割ることによって計算できます。

4

1 に答える 1

2

このコードを試してください:

#!/usr/bin/env python3.3-32

grade_mapping = {'A':4, 'B':3, 'C':2, 'D':1, 'E':0}
weighted_sum = 0
credits = 0

for line in open("grade_file.txt", "r"):
    elems = line.split(' ')
    weighted_sum += grade_mapping[elems[1]] * int(elems[2])
    credits += float(elems[2])

gpa = weighted_sum / credits
print(gpa)

このファイルを使用してテストしました:

ECS10 A 4
ECS20 B 3
JPN4 C 5
PHY9A D 5

結果は2.35294117647

于 2013-05-03T04:58:47.103 に答える