2013-03-12 21 views
0

我正在嘗試編寫一個程序,用於將類中接收的百分比轉換爲GPA格式,然後最終找到總體GPA。我希望它首先提示用戶輸入類的數量,然後輸入百分比。我遇到了一些麻煩,讓程序將百分比轉換成GPA格式(90或更大的等於4,80到89等於3,等等)。這是我到目前爲止在python中,如何根據特殊條件將列表中的特定值轉換爲不同的值

class_number = int(raw_input("How many classes do you have? ")) 
total_grade = list((raw_input("Enter Percentage: ")) for i in range(class_number)) 

a = total_grade 

def alter(x): 
    if x >= 90: 
    return 4 
    elif x >= 80: 
    return 3 
a = map(alter,a) 

print a 

問題是,這似乎只輸出4s不管原來的百分比。

任何幫助將不勝感激!謝謝!

回答

0

這是因爲x實際上是一個字符串。我認爲一個字符串總是會比一個數字更大。您需要將每個項目total_grade轉換爲int:

total_grade = list(int(raw_input("Enter Percentage: ")) for i in range(class_number)) 

另外,你可以只用一個列表理解:

total_grade = [int(raw_input("Enter Percentage: ")) for i in range(class_number)] 
相關問題