2016-09-30 9 views
0

プログラムは、与えられた生徒の平均パーセンテージを計算して出力することになっています。配列から生徒の平均パーセンテージを印刷する

残念ながら、私は残念ながら配列内の最後の生徒の平均パーセンテージを印刷することができません。 コーディングでどこが間違っているのかを知りたい。おかげさまで 私のコードは下にheres。あなたの最初のループでは

def averagepercentage(): 

    scores = int(name_marks[1]),int(name_marks[2]),int(name_marks[3]) 
    ap = sum(scores)/3 

    return ap 

N = int(input('Number of students: ')) # total number of students 
marks = int() 
arr = [] 

for i in range(N): 
    name_marks = input('name & marks').split() #enter name & three different scores 
    name = str(name_marks[0]) 
    arr.append(name) 
    print(arr) 

student_name = str(input('student_name')) 
for x in arr: 
    if student_name in x: 

     print (x) 

     print("%.2f" %averagepercentage()) 
+0

あなたは '名前= STR(name_marks [0])' と交換する必要があるの 'name = averagepercentage(name_marks)' を –

答えて

0

:あなたは以前、学生のマークを格納しない

for i in range(N): 
    name_marks = input('name & marks').split() #enter name & three different scores 
    name = str(name_marks[0]) 
    arr.append(name) 
    print(arr) 

、あなたの入力から最後のマークで

if student_name in x:ルックスをあなたの変数name_marksを置き換えますstudent_namexに含まれている場合は、正確には実行したくない場合は、if student_name == x:を実行してください。その後

def averagepercentage(): 

    scores = int(name_marks[1]),int(name_marks[2]),int(name_marks[3]) 
    ap = sum(scores)/3 

    return ap 

は、平均値を計算するために、グローバル変数name_marksに見えますが、この変数は、(理由は私の最初の発言の)最後の学生の値が含まれているあなたは何ができるか

、あなたのコードの構造のほとんどを維持するためには、次のとおりです。

for i in range(N): 
    name_marks = input('name & marks').split() #enter name & three different scores 
    name = str(name_marks[0]) 
    arr.append((name,averagepercentage())) 
    print(arr) 

student_name = str(input('student_name')) 

for x in arr: 
    if student_name in x: 
     print ("student :" + x[0]) 
     print("average :" + x[1]) 
+0

あああああありがとう!!!今度は、私は関数averagepercentage()を間違った場所に置いたことに気づいていませんでした。あなたの答えは非常に有益です。ありがとうございました!!! – Komz

関連する問題