2013-05-01 107 views
-2

我手邊有一個Python任務,我想知道你們是否可以將我指向正確的方向。我已經完成了迄今爲止的任務,但這一個似乎更加先進,我週五有一個期中將會有這個程序的元素,我很樂意爲你們添加任何見解你可能認爲這對於這個計劃是有益的。謝謝。GPA Python作業

「的投入將是一個文本文件級的,我在我的情況被稱爲grade_file.py,因此,如下圖所示,我可以與IDLE編輯器編輯它,在一種形式。

COURSE A 4 
COURSE B 3 
COURSE C 5 
COURSE D 5 

注意每行有三條信息,用空格隔開,第一個是課程名稱,第二個是字母等級,第三個是單位數目,爲了計算等級的數值一個簡單的公式中的字母等級,唯一的合法值或字母等級爲A,B,C,d,和E,和數值點值

A 4 
B 3 
C 2 
D 1 
E 0 

這樣E就像我們的F一樣,在字母后面不會加+或 - 。

總數值點由相加產品的單位時間等級的數值點值用於所有的課程,然後通過單元的總數除以計算。

編寫一個程序,可以提示輸入級文件的名稱的用戶,並計算從文件中的數據的GPA。 GPA應打印出小數點右側3個位置。以下是我的程序對上述輸入數據的結果,用戶輸入爲粗體。 (請注意,平地機將使用不同等級的數據文件,以不同的名稱。)

輸入等級的文件的名稱:grade_file.py 的GPA是2.353"

再次感謝你們

+1

等待第二個。 「輸入將是一個文本等級文件... grade_file **。py ** ...所以我可以用IDLE編輯器編輯它」這是一個文本文件('課程A 4課程B 3課程C 5課程D 5')??你的教授是個白癡嗎? – 2013-05-01 07:07:53

+2

此外,除了複製和粘貼的能力外,您還沒有在這裏展示過任何努力。這不是StackOverflow的工作方式,請閱讀[FAQ](http://stackoverflow.com/faq)。你需要自己寫這個任務。也就是說,如果您遇到特定*代碼段的特定問題,請隨時尋求幫助。但是「我怎麼寫這個程序」的問題在這裏是無效的。 – 2013-05-01 07:10:17

+0

你還沒有顯示出努力和清楚,你還沒有研究過。你試圖通過巧妙地要求'提示'來讓社區爲你做功課。很好玩。 (不)。 – 2013-05-01 07:24:25

回答

2

編輯:的效果好很多版本(也固定REQ迫使浮師2.7.x等):

from re import findall 
GPAG = {"A":4,"B":3,"C":2,"D":1,"E":0} 

def calcGPA(ResultStr): 
    courses = [ dict(zip(["grade","units"],score)) for score in findall(r'COURSE\s(\w)\s(\d+)',ResultStr) ] 
    print(courses) 
    unitCount = sum([int(course["units"]) for course in courses]) 
    return sum([GPAG[course["grade"]]*int(course["units"]) for course in courses])/float(unitCount) 

fname = raw_input("Enter the name of the file of grades: ") 
with open(fname+".txt") as f: 
    print("The GPA is: %.3f" % calcGPA(f.read())) 

隨着文件:

COURSE A 4 
COURSE B 3 
COURSE C 5 
COURSE D 5 

產地:

>>> 
Enter the name of the file of grades: GPA 
The GPA is: 2.353 
+0

你太好客了。你去寫了這個人的全部內容! – 2013-05-01 07:44:49

+0

我對GPA的工作原理有所瞭解 – HennyH 2013-05-01 07:48:01