2017-10-27 13 views
0

生徒の複数のテストスコアを取得してリストに格納し、リストから最も低いスコアを落として平均スコアを計算するこのプログラムを設計することになっています。 私は、コードを実行すると、私は、文字列ではなく、整数を返しますinput()エラー関数を使用したリスト入力の平均の取得

TypeError: unsupported operand type(s) for +: 'int' and 'str'

def get_scores(grade): 
    test_num = int(input('How many test scores do you want to enter: ')) 
    for t in range(test_num): 
     print('Enter score for Test #', t+1, sep='') 
     grade.append(input('Enter Score: ')) 
    return grade 

def calculate_average(grade): 
    grade.remove(min(grade)) 
    grade = (sum(grade))/len(grade) 
    return grade 

def show_results(grade): 
    print('Average:', grade) 

def main(): 
    scores = [] 
    get_scores(scores) 
    calculate_average(scores) 
    show_results(scores) 


main() 
+0

合計リストには、数字のみで動作します。 https://docs.python.org/3/library/functions.html#sum – UglyCode

答えて

1

を取得します。つまり、scoresには整数ではなく、文字列の束があり、文字列のリストはsum()できません。

変更grade.append(input('Enter Score: '))

grade.append(int(input('Enter Score: ')))に編集:コメントに記載されたエラーを修正するために、あなたはあなたの主な機能を変更する必要があります。

def main(): 
    scores = [] 
    get_scores(scores) 
    final_score = calculate_average(scores) 
    show_results(final_score) 
+0

私はそれを試しましたが、エラーの代わりに、最小スコアのないリストを表示するだけですが、平均を計算しません – Adama

関連する問題