2017-04-06 35 views
1

以下是我所假設的做法 創建一個程序,用於在課程中對最終成績進行分析。該程序必須使用一個循環,並將每個成績附加到列表中。該計劃要求用戶輸入10名學生的最終成績(百分數作爲整數)。該程序將顯示以下數據:Python創建一個程序,在一門課程中對最終成績進行執行和分析

  • 該班最高分。
  • 該班最低分。
  • 該班的平均分數。

我不斷收到第12行的錯誤,但無法找出原因。

錯誤:

Traceback (most recent call last): 
    File "H:/COMS-170/program7.py", line 33, in <module> 
    main() 

    File "H:/COMS-170/program7.py", line 12, in main 
    total = sum(info) 
TypeError: unsupported operand type(s) for +: 'int' and 'str' 

CODE:

def main(): 
    info = get_values() 
    total = sum(info) 
    average = total/len(info) 
    print('Highest Grade: ', max(info)) 
    print('Lowest Grade: ', min(info)) 
    print('Average is: ', average) 

def get_values(): 
    num_grades = 10 
    #making of the list 
    grades = [] 
    #ask the user for the info 
    print('Please enter the final grades for 10 students: ') 

    #put the info into the list with a loop 
    for i in range(num_grades): 
    grade = input('Enter a grade: ') 
    grades.append(grade) 
    return grades 
main() 
+0

你得到了什麼錯誤。這是一個「意外縮進」錯誤?第12行之後的所有內容似乎都是使用3個空格而不是4個空格。 – TehTris

+0

@TehTris否它是追溯(最近呼叫最後): 文件「H:/COMS-170/program7.py」,第33行,在 main() 文件「H:/ COMS-170/program7 .py「,第12行,主 total = sum(info) TypeError:不支持的操作數類型爲+:'int'和'str' –

回答

0

問題是,當你從輸入中讀取數據後,你會得到一個字符串變量列表。 所以,你可以使用int方法來解析輸入:

grades.append(int(grade)) 
+0

YES!這固定一切謝謝你! –

+0

不客氣。如果你需要處理浮筒,原理是一樣的 – Olia

1

您的解決方案需要一個小幅盤整爲用戶輸入返回str值,並要sum的,但首先將它們轉換成int S,像這樣:

def main(): 
    info = get_values() 
    total = sum(info) 
    average = total/len(info) 
    print('Highest Grade: ', max(info)) 
    print('Lowest Grade: ', min(info)) 
    print('Average is: ', average) 

def get_values(): 
    num_grades = 10 
    #making of the list 
    grades = [] 
    #ask the user for the info 
    print('Please enter the final grades for 10 students: ') 

    #put the info into the list with a loop 
    for i in range(num_grades): 
     grade = int(input('Enter a grade: ')) # convert the input `str` to `int` 
     grades.append(grade) 
    return grades 
main() 

Al所以你應該注意在int轉換中沒有發生異常,例如ValueError

希望它有幫助!

相關問題